JavaScript , jQuery, Ajax, HTML, CSS, Google Maps API
Beschreibung :
Für ein großes Internet-Portal sollte eine individuelle Suchmöglichkeit nach
a). günstigsten Hotels und b). günstigsten Flügen implementiert werden.
Das System bzw. die HTML-basierte API zum Abfragen unterschiedlicher Anbieter
existierte bereits als Rails-Applikation. Es galt hier jeweils eine eigene,
schlanke Rails-Applikation zu entwickeln, die das Backend-API mit seinen
umfangreichen Parsern entlastet und ihrerseits ein Interface zum Frontend
bietet. Das jeweilige Frontend wurde unter sparsamen Einsatz von jQuery
implementiert. Es bietet dem Anwender umfangreiche Such- und Filter-
Möglichkeiten, während es sich nahtlos in die Portalseiten des Kunden
integrieren läßt. Bei der Hotelsuche is auch ein reger Gebrauch von dem Google
Maps API V3 gemacht worden. Mein Aufgaben-Schwerpunkt lag bei diesem Projekt auf
der Implementierung der Karten-Funktionalität und des Anbieter-Pollings im
Frontend sowie auf der Entwicklung der Controller in 'unserem' (schlanken)
Rails-Backend.
Zeitraum : 05/2009 - 06/2009
Projekttitel : Eine Community-Site zur gegenseitigen Hilfe und Beratung
Branche : Softwareentwicklung
Rolle : alleiniger Auftragnehmer
Umgebung : Linux, OSX, Merb / SQLITE, DataMapper, HAML, SASS, JavaScript ,
jQuery, Ajax, HTML, CSS
Beschreibung :
In diesem Projekt ist eine Community-Site zum Austausch von Informationen und
Ratschlägen entstanden. Die bewusst schlank gehaltene Web App wurde mit Merb,
DataMapper (SQLITE) und HAML/SASS im Backend sowie mit jQuery als JavaScript-
Bibliothek im Frontend realisiert.
Zeitraum : 01/2009 ? 03/2009
Projekttitel : Remote-Trace-Funktionalität im Web-Browser
Branche : Gerätebau
Rolle : Senior Entwickler
Umgebung : NET, COM / C++, PHP, JavaScript, DOJO, Ajax, HTML, CSS
Beschreibung :
Für ein auf Windows basierendes Messgerät sollte eine Möglichkeit zur Analyse
von Remote-Kommandos (SCPI-Befehle) mit Hilfe eines Web-Interfaces geschaffen
werden. Als erstes habe ich eine existierende, in C++ geschriebene COM
Komponente um die Möglichkeit erweitert, Kommandos und Geräte-Meldungen in
einer SQLITE-Datenbank zu protokollieren. Danach wurde diese Komponente um die
Möglichkeit erweitert, eine Queue von Live-Meldungen zu verwalten, um diese auf
Anfrage direkt ? d.h. ohne den ?Umweg? über die Datenbank ? zum Client zu senden.
Diese COM-Komponente kommuniziert mit dem PHP-Backend über eine PHP-Extension
(nicht von mir entwickelt). Das PHP-Backend wiederum nimmt Anfragen aus der Web-
Applikation über XHR entgegen und bearbeitet diese entweder durch einen direkten
Lese-Zugriff auf die Datenbank über SQL oder durch Delegation von Anfragen an
die .COM-Komponente. Das Frontend schließlich macht regen Gebrauch von Ajax
(über dojo) und zeichnet sich durch eine sehr elegante Möglichkeit zur
Navigation und Fehlersuche in Remote-Scripts aus.
Zeitraum : 10/2008 ? 12/2008
Projekttitel : OSE Web-Server-Erweiterungen / LXI Frontend als Web-App
Branche : Gerätebau
Rolle : Senior Entwickler
Umgebung : OSE, C / Ruby on Rails, JavaScript, ExtJS, Ajax, HTML, CSS
Beschreibung :
Für ein auf OSE basierendes Embedded System (Messgerät) sollte eine Web-
Anwendung entwickelt werden, die eine Anzeige und Modifikation diverser
Parameter ? insbesondere Netzwerk-Parameter) nach dem LXI-Standard 1.2 ermöglicht.
Dazu habe ich zunächst einen Web-Server unter OSE integriert, der ohne
Dateisystem auskommt. D.h. alle relevanten Daten wie HTML, CSS, JavaScript,
Bilder etc. werden aus dem im Flash hinterlegten, virtuellen Filesystem geholt.
Diesen Web-Server habe ich dann sukzessive um die sogenannten CGI-Hook-
Funktionen so erweitert, dass ein Zugriff auf die relevanten Geräte-Parameter
vom Client aus (über Ajax) möglich wurde. Um das Frontend zügig und ohne häufige
Neu-Kompilation und Flashen der Firmware entwickeln zu können, habe ich einen
interessanten Kunstgriff eingesetzt: mit Ruby on Rails habe ich ein Geräte-
Mockup entwickelt, welches sich im Hinblick auf die XHR-Anfragen der Web-
Anwendung so weit es möglich ist wie die echte Hardware verhält. Mit Hilfe
dieser Ruby on Rails Zwischenschicht ist es gelungen, den geplanten zeitlichen
Aufwand ganz wesentlich zu reduzieren und sogar Zusatz-Funktionalitäten zu
implementieren, mit denen niemand mehr gerechnet hat.
Zeitraum : 09/2007 - 08/2008
Branche : Softwareentwicklung
Projekttitel : Portierung einer Java-basierten Web-Applikation auf
Ruby on Rails.
Im Rahmen dieses Projektes wurde eine ehemals mit Java + Hibernate als Backend
entwickelte Web-Anwendung im Rahmen dieses Projektes auf Ruby on Rails + MySQL
portiert und anschließend weiterentwickelt. Neben der reinen Funktionalität
spielten dabei solche Aspekte wie Skalierbarkeit, automatische Rekonfiguration,
Ladezeit-Optimierung sowie Indizierbarkeit durch Suchmaschinen eine große Rolle.
Plattform : Ruby on Rails, JavaScript / MySQL, Ajax, HTML, CSS
Verantwortlichkeit : Senior Entwickler
Zeitraum : 09/2006 - 07/2007
Branche : Softwareentwicklung
Projekt : Design und Implementierung einer Internet-basierten
Kompetenz-Börse
Es handelt sich hier um eine im hohen Maße dynamische, interaktive Web-
Anwendung. Arbeitnehmer erstellen und verwalten ihre persönlichen Kompetenz-
Profile, welche ihre beruflich relevanten Kenntnisse und Fähigkeiten
beschreiben. In ihrer Gesamtheit, definieren diese persönlichen Kompetenz-
Profile das Angebot an Kompetenzen. Firmen und Organisationen, auf der anderen
Seite, fragen Kompetenzen nach und sind bereit, für bestimmte Qualifikationen
(sprich für bestimmte Kompetenz-Profile) ein bestimmtes Entgelt zu zahlen.
Jede Änderung eines Profils und natürlich auch jedes neu erstellte bzw.
gelöschte Profil bedingen eine sofortige Änderung wichtiger Kennziffern des
Gesamtsystems. Beide Seiten mit immer aktuellen und aussagekräftigen - weil
wissenschaftlich fundierten - Kennziffern zu versorgen, ist eine der
Hauptaufgaben dieser Web-Anwendung. Eine weitere Aufgabe ist es, auf der
Angebots-Seite sowie auf der Nachfrage-Seite geeignete Werkzeuge zur Verfügung
zu stellen, mit deren Hilfe der ständig wachsende Datenbestand aktualisiert
und ausgewertet werden kann. Außerdem bedürfen Unternehmen und Organisationen
spezieller Werkzeuge zum Im- und Export von Daten in / aus ihren hauseigenen
Systemen.
Plattform : Java, JavaScript / Hibernate, Tapestry, GWT, Ajax, HTML, CSS
Verantwortlichkeit : Senior Entwickler
Zeitraum : 05/2005 - 07/2006
Branche : Luft- und Raumfahrt
Projekt : Spezification, Design und Entwicklung eines Netztwerk
Management Systems für Internet on Board und GSM on Board
Anwendungen
Aus der Sicht des Anweders (Flugbegleiter und Flugzeug-Wartungstechniker),
dient das entwickelte System zur Status-Abfrage und Steuerung der beteiligten
Geräte sowie zum Data-Loading. Unter Data-Loading verstehen wir hierbei die
Installation bzw. Update von gerätespezifischer Firmware, Anwendungs-Software
und Configurationsdaten. Außerdem überwacht das Software Management System die
meisten beteiligten Subsysteme (Hard- und Software) auf korrekte Funktion
(Error-Detection) und erstellt im Hintergrund alle erforderlichen Log-Einträge.
Aus technischer Sicht handelt es sich um ein erweiterungsfähiges Framework
oberhalb von Spring. Als solches ermöglicht es ein Zusammenspiel von eng
spezialisierten Modulen, die um eine zentrale Komponente - den sogenannten
CoreContainer - gruppiert sind. Dieses Framework ist sehr weitgehend und fein
kofigurierbar. Es kann mit minimalem Aufwand um weitere Module erweitert werden,
die neue Aufgaben übernehmen und nahtlos in das Gesamtsystem integriert werden
können. Während der Spezifikationsphase war ich für die Module DataLoader und
ConfigurationsManager verantwortlich. Als technischer Proektleiter habe ich
dann später das Gesamtsystem entworfen und schließlich in einem hervorragenden
Team von Programmierern innerhalb eines Zeitrahmens entwickelt, der anfangs
sehr unrealistisch zu sein schien.
Plattform : Linux, Windows / C, Java, JavaScript / Spring, Hibernate, Ajax
Verantwortlichkeit : technischer Projektleiter und Senior Entwickler
Zeitraum : 08/2004 - 04/2005
Branche : Softwareentwicklung
Projekt : Entwicklung eines neuen Wissensmanagement Systems
Auf der Basis der im Rahmen eines früheren Projektes entwickelten
Kernelsoftware wurde ein kundenspezifisches Wissensmanagement-System in seiner
ersten Ausbaustufe realisiert. Schwerpunkt war hier vor allem eine Mitarbeiter-
freundliche Einführung der neuen Modelle und Sichtweisen. Es wurden Module und
Schnittstellen zum Import von Unternehmensdaten aus Excel-Tabellen, zur
Erfassung und Bewertung der individuellen Kenntnisse und Fähigkeiten einzelner
Mitarbeiter sowie zur Berechnung, Darstellung und zum Export der Ergebnisdaten
nach dem zugrundeliegenden mathematisch-physikalischen Modell
eigenverantwortlich entwickelt.
Plattform : Java (J2SE)
Verantwortlichkeit : Senior Entwickler
Zeitraum : 11/2003 - 06/2004
Branche : Softwareentwicklung
Projekt : Software für mobile Geräte
Für einen großen Hersteller von Mobiltelefonen wurden im Rahmen dieses
mehrteiligen Projektes diverse Softwaremodule programmiert. Für
Evaluationszwecke wurde ein PIF-Treiber unter OSE entwickelt. Danach arbeitete
ich mit am Design und Realisierung von Systemsoftware zum Message-Passing
innerhalb eines Multimedia Frameworks unter Symbian OS. Meine dritte und
letzte Aufgabe bestand in der Nachbildung eines Video-Capture Chips in System-C
unter Linux.
Plattform : UNIX, Windows, OSE, Symbian OS / C++, System-C / ADS
Verantwortlichkeit : Senior Entwickler
Zeitraum : 03/2003 - 08/2003
Branche : Mikroelektronik / Chip Design
Projekt : Delta / SGOLD II
Der Auftraggeber betreibt kundenspezifisches IC-Design (digital, analog und
mixed signal). Während der Entwicklungsphase werden so genannte Testbench-
Elemente (TBEs) definiert, zu einer Testbench zusammengefügt und mit Hilfe
eines Emulators verifiziert. Dabei kommt es immer wieder vor, dass einzelne
TBEs oder auch komplexere Gebilde wie Interfaces oder Module zunächst in
Software, in Form so genannter C-Modelle realisiert werden. Einerseits wird
damit eine frühere Simulation ermöglicht (bevor das TBE in Hardware realisiert
ist), andererseits können durch Vergleich der Ergebnisse aus Software- und
Hardware-Simulation z.B. auch algorithmische Fehler aufgedeckt werden.
Entwicklung solcher C-Modelle war ein wesentlicher Teil meiner Aufgaben.
Außerdem habe ich einige Werkzeuge und Utilities in Java und C++ entwickelt -
etwa einen Assembler für einen proprietären Sequencer oder einen Sample Data
Generator zum Erzeugen von Pixel-Daten.
Plattform :
Verantwortlichkeit : Senior Entwickler
Zeitraum : 11/2002 - 02/2003
Branche : Softwareentwicklung
Projekt : Rasterdaten Server und ein interaktiver Viewer für GIS
In Anlehnung an ein vorhandenes, Windows-basiertes GIS (Geographisches
Informations-System) sollte ein Viewer programmiert werden, der ein
komfortables Betrachten von Kartenmaterial im Internet und/oder Intranet
ermöglicht. Als erstes habe ich einen kleinen Rasterdaten-Server in PHP
implementiert. Dieser empfängt Kommandos über HTTP POST, führt sie aus (wobei
in den meisten Fällen auf die Datenbank - MySQL - zugegriffen wird) und sendet
einen Fehler-Code sowie eine evtl. Fehlermeldung im Klartext zurück.
Rasterdaten werden an den Java-Client als einzelne Kacheln gesendet ("Content-
Type: application/octet-stream"). Eine Kachel (und damit auch die ganze Karte)
kann bis zu 32 Ebenen enthalten und wird komprimiert (GZIP) übertragen.
Dekomprimierung und Ebenenverwaltung erfolgt on-the-fly beim Client. Um auch
bei langsameren Verbindungen akzeptable Reaktionszeiten zu gewährleisten, ist
im Viewer ein Cache Manager implementiert. Neben der Standard-Funktionalität
Scrollen / Zoomen / Ebenen Ein-Ausblenden kann im Viewer ein rechtwinkliger
Ausschnitt im beliebigen Winkel definiert (gezeichnet) und ausgedruckt werden.
Beim Ausdruck erfolgt eine automatische Ausrichtung an die vertikale oder an
die horizontale Achse (Image Rotation). Der Viewer ist sowohl als Applet als
auch als Standalone-Applikation lauffähig und für spätere Erweiterungen durch
einen Bezug zu Fachdaten offen. Gemeint ist hier eine Zuordnung von Datenbank-
Einträgen zur Position auf der Karte. Begleitende Utilities zum Upload und
Management von Kacheln sind ebenfalls in Java und JavaScript realisiert worden.
Plattform : Java, JavaScript, PHP, MySQL
Verantwortlichkeit : Senior Entwickler
Zeitraum : 05/2002 - 10/2002
Branche : Softwareentwicklung
Projekt : Umsetzung eines neuen mathematisch-physikalischen Modells
Bei diesem Modell bzw. Formelwerk handelt es sich um einen völlig neuen Ansatz,
der es ermöglicht, das menschliche Wissen "operabel" zu machen. Um die
Vorgehensweise sowie die Ergebnisse zu veranschaulichen, war ein Programm
zu entwickeln, welches eine flexible Erfassung von menschlichen Kenntnissen
und Fähigkeiten, deren Zuordnung zu den Einzelpersonen (z.B. Mitarbeiter eines
Unternehmens) und Bewertung sowie eine graphische Präsentation der Rechen-
ergebnisse ermöglicht. Um mehrere Alternativen bzw. Tendenzen bequem
miteinander vergleichen zu können, sind sog. Szenarios eingeführt worden.
Einem Szenario entspricht jeweils eine Kurve (mit einer bestimmten Linienart
und Farbe) im Result Set. Ein Result Set besteht seinerseits aus mehreren
Graphen, welche die jeweiligen Rechenergebnisse (geliefert vom Kernel)
darstellen.
Plattform : Java (J2SE)
Verantwortlichkeit : Senior Entwickler
Zeitraum : 02/2002 - 03/2002
Branche : Schifffahrt
Projekt : Erweiterung einer bestehenden Adressverwaltung
Diese im Rahmen eines früheren Projektes entwickelte Adressverwaltung stellt
eine Speziallösung dar und konnte seinerzeit trotz umfangreicher Recherchen
nicht mit Hilfe eines Standard-Pakets zufriedenstellend realisiert werden.
Es handelt sich um eine Multiuser-Lösung. Die Änderungen und Erweiterungen
Anfang 2002 betrafen insbesondere Verbesserungen im User-Management (Rechte-
Vergabe) sowie Anpassungen der Druck-Formulare.
Plattform : Windows, NetWare, Delphi
Verantwortlichkeit : Senior Entwickler
Zei/>
Zeitraum : 03/2000 - 10/2001
Branche : Softwareentwicklung
Projekt : Entwicklung eines Java-basierten Werkzeuges
zur Gestaltung von Internet-Seiten
Zur Gestaltung von Internet-Seiten (oder allgemeiner : von browserfähigen,
animierten Präsentationen) wurde das WYSIWYG-Werkzeug "ES Designer" entwickelt.
Entsprechend dem zugrundeliegenden Komponentenmodell können dabei einzelne
Gestaltungselemente weitestgehend unabhängig voneinander bzw. vom Designer-
Hauptmodul entwickelt werden. Das "Einblenden" in die Designer-Toolbars kann
nachträglich mittels eines Konfigurationsscripts oder auch dynamisch (beim
Start) erfolgen. Zur Anzeige der mit dem Designer erstellten Seiten (im Browser)
dient das Modul Interpreter, das als Applet realisiert ist. Der Interpreter
wird über eine HTML-Seite gestartet und übernimmt dann die Anzeige und
Animation von bzw. die Navigation zwischen den einzelnen Seiten. Das Besondere
an diesem Werkzeug ist zweifelsohne seine sehr einfache Bedienung. Selbst
komplexe Animationen konnten von Nicht-Fachleuten und Kindern innerhalb von
Minuten erstellt werden.
Plattform : Java 1.1.x (Browser-VM) für den Interpreter,
Java 2 (1.3.1) für den Designer
Verantwortlichkeit : Projektleiter
Zeitraum : 08/1999 - 02/2000
Branche : Softwareentwicklung
Projekt : Entwicklung von Internet-Tools und -Goodies
- JS Veil = JavaScript Code "verstecken"
- FTP Streamer = Java I/O-Streams zum Host File System
- HTML Datastore = Mini DB für HTML Formen (data aware controls !)
- ZIP Streamer = komprimiertes Lesen / Schreiben von Texten (FTP)
Plattform : Browser-VM
Verantwortlichkeit : selbständige Realisierung
Zeitraum : 11/1998 - 07/1999
Branche : Personalzeiterfassung / Modehaus
Projekt : Integration einer neuen Datenerfassungsebene
für Personalzeiterfassung (PZE)
Bis Ende 1998 betrieb der Kunde in seinen 22 Filialen Personalzeiterfassung
mit Hilfe der am UNIX-Host angeschlossenen VT-Terminals.
Seit Ende 1998 werden dafür die von mir im Rahmen eines früheren Projektes
entwickelten Datenerfassungsterminals eingesetzt (schrittweise Ablösung).
Diese Terminals sind mit einem Barcode-Ausweisleser und einem LAN-Controller
ausgestattet. Als Schnittstelle zwischen den Endgeräten und dem Zeitwirt-
schaftssystem (Oracle) dient ein vollständig in Java realisiertes Modul -
der PortMonitor.
Sowohl die Terminal-Applikation (BASIC-Dialekt) als auch der PortMonitor
(Java) sind im Dialog mit dem Kunden spezifiziert und dann entsprechend
entwickelt worden.
Plattform : SCO OpenServer 5.4, Java
Verantwortlichkeit : selbständige Realisierung
Zeitraum : 04/1997 - 10/1998
Branche : Betriebsdatenerfassung / Flugzeugwartung
Projekt : Konzeption und Entwicklung einer BDE-Lösung
Bei diesem Großprojekt eines in der Flugzeugwartung tätigen Unternehmens
wurde in den Jahren 1997-1998 die gesamte Ebene der Betriebsdatenerfassung
erneuert. Das betraf sowohl die Endgeräte (Terminals) in den Produktions-
hallen und an den Eingangstoren als auch die Software zum Management
anfallender Bewegungsdaten - einschl. der Schnittstelle zum eingesetzten
PPS-System (Aircraft Maintenance System). Sowohl die Hardware (Daten-
erfassungsterminals basierend auf einem Einchip-Mikrorechner) einschl.
Firmware (Terminal-Applikation) als auch die gesamte BDE-Softwareebene mit
dem BDE-Server im Mittelpunkt habe ich in enger und sehr konstruktiver
Zusammenarbeit mit dem Auftraggeber spezifiziert und dann eigenverantwort-
lich realisiert. Außerdem wurden diverse Client-Module für die einzelnen
Fachabteilungen entwickelt. Das System läuft in den letzten 2 Jahren
praktisch wartungsfrei (vom Ausfall einiger weniger Barcode-Leser abgesehen).
Plattform : Windows, HP-UX / C, C++, Delphi
Verantwortlichkeit : selbständige Realisierung
Zeitraum : 1992 - 1997
Branche : Softwareentwicklung
Projekt : diverse Projekte mit folgenden Schwerpunkten
- portable Netzwerk- und Schnittstellenprogrammierung
- Inter-Process-Communication (IPC) / verteilte Systeme
- Programmierung in Assembler, C und C++
- ODMS-Programmierung (POET)
- Anwendungsentwicklung mit zApp (portable GUI-Library)
- Systemintegration, Kundenbetreuung
- OOA, OOD, OOP (Rational Rose + OEW)
Plattform : MS-DOS, OS/2, UNIX, Windows / Assembler, C, C++
Verantwortlichkeit : festangestellter System-Ingenieur,
später Niederlassungsleiter
Zeitraum : 1990 - 1992
Branche : Prozessautomatisierung
Projekt : diverse Projekte mit folgenden Schwerpunkten
- Prozessautomatisierung
- SPS- und Schnittstellenprogrammierung
- systemnahe Programmierung in Assembler und C
Plattform : MS-DOS, OS/2, UNIX, Windows / Assembler, C, C++
Verantwortlichkeit : Angestellter und Anteilseigner
Zeitraum : 1986 - 1990
Branche : Bau (DDR-VEB)
Projekt : diverse Projekte mit folgenden Schwerpunkten
- Entwicklung von Software für statische Berechnungen (BASIC)
- Entwicklung betriebswirtschaftlicher Software (Rechnungswesen) in dBASE
- Entwicklung eines netzwerkfähigen CP/M in Zusammenarbeit mit der TU Rostock
(Assembler)
Plattform : CP/M (Clone) / Assembler, FORTH, BASIC, dBASE, Pascal
Verantwortlichkeit : RZ-Leiter
Zeitraum : 1983 - 1986
Branche : Chemische Industrie (DDR-Kombinat)
Projekt : - Durchführung verfahrenstechnischer Berechnungen
- numerische Lösung von Integralgleichungen in
Fortran und BASIC
Plattform : Großrechner (Fortran 77) und
proprietäre Kleinrechner (BASIC)
Verantwortlichkeit : Fachingenieur (Absolventenstelle)