freelance-giosis.com

Inhaltsverzeichnis

Projekte

2014 bis heute

Seit Ende 2013 habe ich meine Position im Bereich Embedded Systems und in der C / C++ Programmierung verstärkt.

  • [04.2015 - 06.2016] Software-Dienstleister, Frankfurt am Main

    iOS Software Architektur und Entwicklung

    Die ersten sieben Monate war ich als Hauptentwickler mit der App Architektur und Entwicklung einer iPad App zur Unterstützung des Verkaufsprozesses in Autohäusern eines namhaften Automobilherstellers tätig.

    Es wurden grundlegende Entscheidungen getroffen, wie z. B. der Einsatz von cocoapods, die branching Struktur bzw. der Umgang mit git, ob storyboards oder xibs genutzt werden sollen, uvm. Bei der Entwicklung ging es im Kern um die Umsetzung von Design-Vorschlägen einer spezialisierten UI, in enger Absprache mit dem Designer.

    Anschließend folgte die Anbindung einer Backend Middleware (apiomat), welches in Abstimmung mit dem Hersteller stattfand.

    Es wurde mit den neuesten Objective-C Technologien entwickelt. Neben dem Einsatz von high level frameworks wie z. B. Bolts war es dennoch notwendig, bis auf libdispatch Ebene zu debuggen oder aber mit Instruments nicht optimale UI Komponenten zu optimieren.


    Java Software Entwicklung

    Nachdem das iOS Team verstärkt wurde und in der Backend-Entwicklung ein hoher Entwicklungsbedarf bestand, wechselte ich meine Rolle als Java Backend-Entwickler um die oben genannte Middleware voran zu treiben. Hier kam hauptsächlich Java 8 mit Eclipse und maven zum Einsatz.

    Highlights

    • Zeitgemäße Entwicklungs-Methodik im Scrum-Modus mit einer 4 Augen-QA nach jedem commit unter Einsatz von jira und git.
    • Moderne, native iOS Entwicklung in Objective-C mit Einsatz des Bolts frameworks.
    • Einsatz von aktuellen Java 8 Sprachkonstrukten in der Backend-Entwicklung.
  • [10.2015 - 06.2016] Hard- und Software-Hersteller, Aschaffenburg

    C++ und Android Software-Entwicklung

    In einer bestehenden Android App auf Basis von Qt entwickelte ich neue Features in C++ und Java. Bei der Software handelt es sich um eine Management App für Außendienst-Mitarbeiter zur Wartung und Inspektion von Stadtwerke-Anlagen.

    Besonderheiten

    • Der Bestandscode (in C++) ist an manchen Stellen bis zu 15 Jahre alt, so dass ich mich mit unterschiedlichen Programmier-Stilen und Standards auseinander setzen musste.
  • [05.2015 - 12.2015] Hardware-Hersteller, Siegen

    C++, Qt- und Android-Entwicklung

    Folgeauftrag: Redesign einer bestehenden UI mit Qt 5 + QML, inkl. Sicherstellung der Funktionalität unter Android, iOS, Linux, Mac OS X und Windows. Die Hauptarbeit wurde mit C++11, Qt 5 und QML realisiert. Es wurden zahlreiche "custom widgets" in Qt entwickelt, um eine moderne und auf allen Plattformen konsistente Darstellung zu gewährleisten. Weitere Hilfsmittel: git zur Quellcode-Verwaltung, jira für pair reviews und ticket management.

    Highlights

    • Entwicklung von custom UI controls (styling und Interaktion).
    • Multi-Plattform Entwicklung auf modernen mobilen und Desktop-Betriebssystemen.
  • [09.2014 - 02.2015] Hardware-Hersteller, Siegen

    C++, Qt- und Android-Entwicklung

    Entwicklung einer Cross Plattform-Anwendung auf Basis von Qt 4.8.6 und C++11. Bei der Anwendung geht es um die Visualisierung und Verarbeitung von Messdaten in Form einer dreidimensionalen Punkte-Wolke. Die Aufnahmen erfolgen mit Hilfe von 3D-Kameras, nach dem Time-Of-Flight Prinzip. Meine Aufgabe war es, die Visualisierung der Punkte-Wolke in einer hohen Qualität wiederzugeben. Mit Hilfe von Algorithmen aus der digitalen Bildverarbeitung in GLSL und diversen Vorverarbeitungs-Algorithmen (in C++) ist mir dies gelungen. Entwicklung von spezialisierten Qt Widgets zur Interaktion mit der Punkte-Wolke und zur Ansteuerung der Verarbeitungskette (Shader, Algorithmen-Parameter, Filterung von Mess-Fehlern usw.). Anschließend wurde eine Anbindung der Kameras an Android Tablets mit Hilfe des NDK und libusb durchgeführt. Umsetzung der Visualisierung auf Android-Systemen mit Hilfe von OpenGL ES 2 und dem Android SDK. Die Hauptarbeit wurde mit Visual Studio 2010 und 2013 realisiert. Als Konfigurations- und Build-Tool wurde CMake verwendet.

    Highlights

    • Native Android Entwicklung in C++ mit dem NDK.
    • Umgang mit komplexen Themen wie der digitalen Bildverarbeitung.
    • GLSL Entwicklung.
  • [05.2014 - 08.2014] Software-Dienstleister, Frankfurt am Main

    iOS-Entwicklung

    Beratung und Umsetzung von Software-Komponenten für die Gelbe Seiten iPhone App. Der größte Teil meiner Arbeit beinhaltete die Umsetzung eines iPhone-ähnlichen dashboards, auf welchem Icons abgelegt, gelöscht und bearbeitet werden, bzw. per Drag And Drop zu Gruppen zusammengefaßt werden können. Die Interaktion und Animation sollte dabei möglichst dem iPhone-Dashboard entsprechen.

    Sonstiges

    • Implementation von Unit-Tests für backend services, die ich in verschiedenen Teilen der App verwendet habe.
    • Die Entwicklung wurde mit Objective-C und diversen Frameworks des iOS SDKs umgesetzt.
    • Entwicklung nach Scrum Prinzipien.
  • [03.2014 - 12.2014] Werbeagentur, remote

    Web-, Backend-, iOS- und Android-Entwicklung

    Design und Umsetzung einer Web Anwendung zur Content-Verwaltung von Web-Inhalten für mobile Apps. Hierfür habe ich ein innovatives Bedienkonzept mit Hilfe von HTML5/CSS, d3 und jQuery entwickelt. Im Prinzip wird ein interaktiver Graph dargestellt, dessen Knoten Web-Inhalten entsprechen. Unterschiedliche Knoten erforderten die Umsetzung von spezialisierten Editoren (z. B. Text-Editor, Bilder-Galerie, usw.)

    Highlights

    • Entwicklung der Backend Software in Common Lisp, um die Business-Logik der Web Anwendung zu realisieren.
    • Entwicklung eines hoch optimierten CGI Programms in ANSI C für Apache um die Kommunikation zwischen Web App und Backend herzustellen. Das C Programm wurde mit verschiedenen C Linter geprüft.
    • Entwicklung des nativen Android und iOS App Containers mit Einsatz von Standard SDK frameworks.
    • Mit Hilfe dieses Systems werden die mobilen Inhalte der jährlichen Kunden-Events (Lighthouse Festival, Technoball, u. a.) verwaltet und veröffentlicht.
  • [09.2013 - 02.2014] Software-Dienstleister, Frankfurt am Main

    C und iOS Entwicklung

    Entwicklung einer 3D Engine in ANSI C auf OpenGL ES 2 Basis, um komplexe 3D-Diagramme aus der Versicherungsbranche wiederzugeben. Entwicklung eines Objective-C wrappers, damit die Engine als Komponente in iOS Apps mehrfach eingesetzt werden kann.

    Entwicklung eines Wavefront Converters in Common Lisp, um 3D-Modelle aus Blender in das engine-spezifische Format zu transformieren, d. h. das Ausgabeformat ist auf vorher ermittelte Vertex Buffer Formate abgestimmt um optimale render performance zu erzielen.

    Entwicklung von GLSL shadern um visuelle Effekte gem. Abstimmung mit den Visual Designern zu erreichen, z. B. Antialiasing, Körnung, etc.

    Mitarbeit an der gesamten App-Entwicklung mit Hilfe von Objective-C, Core Animation, Core Data und weiteren iOS Frameworks.

    Team-Arbeit im Scrum-Modus, mit wöchentlichen Sprints.

    Highlights

    • Hoch optimierte low level C und OpenGL ES Entwicklung.
    • Entwicklung von GLSL shader Programmen.
    • Native iOS Entwicklung.
  • [07.2013 - 09.2013] Werbeagentur, remote

    Web-, Android- und iOS-Entwicklung

    Im Rahmen dieses Projekts wurden native App-Container für das iPhone (in Objective C) und für Android Geräte (in Java) entwickelt.

    Parallel wurde die App mit Hilfe von JavaScript / CSS3 und HTML5 Technologien erstellt. Als Frameworks kamen jQuery und zum Teil raphaeljs zum Einsatz.

    Die Einbindung von Flurry für iOS und Android diente zur Sammlung von Nutzungsdaten, während die Integration von Urban Airship Push Notifications ermöglichte.

    Die Auswahl der Frameworks und Technologien wurde in Absprache mit dem Kunden durchgeführt.

    Die Apps wurden als Marketingkampagne für das Red Bull SummerSplash Event eingesetzt.

2010 bis 2013

In dieser Phase war ich hauptsächlich als Unternehmer tätig und hatte ein neunköpfiges Team zur Umsetzung von mobilen Apps. Themen wie Coaching, Projekt- und Team-Management standen im Fokus.

Trotzdem kam ich oft genug zum Programmieren, so dass ich meine skills weiterhin aktuell halten konnte. Hier sind die wichtigsten Projekte erwähnt.

  • [08.2013 - 08.2013] Werbeagentur, Schwalbach

    iPad Entwicklung

    Schnelleinsatz wegen zeitkritischem Event.

    Alle Daten wurden mit einem Core Data Datenmodell abgebildet und mit Hilfe einer NSString Kategorie in Form von CSV Daten exportiert.

    Auf diese Weise waren die Daten problemlos für den Kunden in Excel zu importieren und auszuwerten.

    Umfrage-App zur IAA 2013.

  • [04.2013 - 04.2013] Werbeagentur, remote

    C# Entwicklung

    Umfrage-App zur Roadshow einer Zahnpflege-Marke Es handelte sich hierbei um einen Fragebogen zur Zahngesundheit. Die Daten wurden in einer lokalen Datei gesammelt und in Form von CSV Zeilen gespeichert.

  • [08.2012 - 01.2013] Hardware-Hersteller, München

    iPad Entwicklung

    Eine iPad-Anwendung zur Steuerung einer Filmkamera im Profi-Umfeld.

    Die Kamerasteuerung ermöglicht dem Kunden aus der Ferne Aufnahmen zu starten, zu stoppen, Kamera-Logs auszuwerten uvm.

    Die Kommunikation zwischen Kamera und iPad erfolgte in Form eines kundenspezifischen Binärprotokolls, das in C realisiert wurde.

    Um dem Profi-Audio/Video-Umfeld gerecht zu werden, wurden spezialisierte iOS Controls wie z. B. Drehregler oder Digital-Anzeigen in nutzerorientierter Optik programmiert.

    Bei diesem Projekt erfolgte eine sehr enge Abstimmung mit dem Kunden, da zur Entwicklung nur die Simulationsumgebung zur Verfügung stand und die Tests erst auf dem Gerät des Kunden durchgeführt wurden.

  • [02.2011 - 06.2013] Software-Dienstleister, Walldorf

    Web-, iOS-, Android-Entwicklung, Projekt-Coaching

    Januar 2013 - Juni 2013

    Ich war Teil eines Entwicklungsteams, welches die ersten Anwendungen im SAP FIORI Stil entwickelte. Wir begleiteten teilweise die Entwicklung von UI5 und realisierten damit erfolgreich Anwendungen. Im Rahmen des Projekts wurden verschiedene SAP Business Prozesse wie z. B. die Verwaltung von Urlaubsanträgen oder Reisekosten-Abrechnungen umgesetzt. Die Entwicklung wurde mit JavaScript und deklaratives HTML realisiert.

    November 2012 - Dezember 2012

    Entwicklung einer App für die damals neue Blackberry 10 Plattform, teils webbasiert und teils nativ. Der native Teil bestand aus einem C-Kern, um bestimmte Verschlüsselungsfunktionen des Gerätes zu verwenden. Die Hauptanwendung verwendete diese und rief sie via eines JavaScript Protokolls auf. Bei der Anwendung handelte es sich um die Darstellung von Finanzdaten, die in Form von Tabellen dargestellt wurden. Dies wurde mit JavaScript realisiert. 


    August 2012 - Oktober 2012 Ich war Teil des Teams, das beim wichtigsten Kunden des Auftraggebers vor Ort an der Entwicklung von nativen App-Containern und Web-Anwendungen beteiligt war. Damals legten wir wichtige Grundlagen für die spätere Akzeptanz von UI5 bzw. der FIORI Serie. Meine Hauptaufgabe war die Vorstellung und Umsetzung eines nativen App Containers auf der iOS Plattform. 


    Mai 2012 - August 2012

    Es entstand ein Prototyp mit Hilfe von Cocos2D für einfache Spiele zur Konzentrationsförderung und zur Steigerung der Reaktionsfähigkeit. Der Auftrag erfolgte durch einen namhaften Fussballverein (Sponsoring vom Auftraggeber). Die Vorgaben wurden vom entsprechenden Sportmediziner des Vereins gegeben und umfassten die Anbindung des Microsoft Kinect Controllers zur Steuerung der iPad Spiele. Die Entwicklung des Kinect Servers wurde von einem Kollegen mit C# realisiert. Das Kommunikationsprotokoll wurde in Kooperation mit dem C# Entwickler umgesetzt. 


    Januar 2012 - April 2012

    Ich arbeitete an der SAP Visual BI iPad Anwendung mit. Die Software ermöglicht auf einfache Weise, komplexe BI Reports auf dem iPad verständlich wiederzugeben. Dafür realisierte ich einen MDX Parser, um die internen Statements zu analysieren und die entsprechenden UI Aktionen auszuführen bzw. die Daten darzustellen. 


    August 2011 - Dezember 2011

    Ich erstellte ein Web-Framework, welches dem UIKit Framework von Apple sehr ähnlich war. Dies ermöglichte meinem Kollegen und mir eine Web-Anwendung für das iPad zu realisieren, die sich sehr einfach programmieren ließ. Der Kunde beauftragte uns mit der Entwicklung eines Analyse-Tools für SAP Opportunity Objekte. Die sehr zeitgemäße UI verwendete durch kluge CSS Regeln fast ausschließlich die hardwarebeschleunigten Zeichenpfade des iPads. Der Grund für das Apple ähnliche Web Framework kam vom Kunden, da die Vorgabe war, eine Anwendung zu bauen, die vom Look and Feel exakt den damals gängigen iPad Apps entsprechen sollte. 


    Februar 2011 - Juni 2011

    Ich war mit der Entwicklung der ersten Version der Manager Insight iPad App beauftragt. Dazu gehörte die Vorstellung einer App-Architektur und Umsetzung der beschriebenen Komponenten. Durch zahlreiche Custom Controls wurden die Vorstellungen der Designer erfüllt. Die Anbindung von SAP HR Bausteinen wurde via SOAP Services vorgenommen. Die Entwicklung der App erforderte eine genaue Kenntnis und Interpretation komplexer XML Strukturen. Das Projekt verlief in enger Kooperation mit den Visual Designern und wurde mit Hilfe der SCRUM-Methode in zweiwöchigen Sprints durchgeführt.

  • [12.2010 - 02.2011] Software-Dienstleister, Frankfurt am Main

    iOS Entwicklung

    Gemäß Design-Vorgaben wurde eine Universal App (für iPhone und iPad) für die Steuerung von Heizungsanlagen realisiert. Die Entwicklung basierte auf Basis-Technologien des iOS SDK. Die Anbindung an die Heizungsanlagen erfolgte mit Hilfe von SOAP Services. Dafür wurden die entsprechenden XML Parser und das daraus resultierende Datenmodell gebaut.

  • [04.2010 - 06.2013] Pharmaunternehmen, Bad Vilbel

    iPad Entwicklung

    Design, Beratung und Entwicklung einer iPad App zur Verkaufsunterstützung von Außendienstmitarbeitern.

    Die UI wurde in Abstimmung mit einem Designer und dem Kunden realisiert.

    Die Entwicklung beinhaltete, u. a. folgende Punkte:

    • Datenmodellierung und Abbildung mit Core Data.
    • Hoch optimierte XML Parserin C mit Hilfe von memory mapped files, da die klassischen Techniken zu langsam oder speicherhungrig waren. Die App verarbeitet XML Dokumente von mehreren Hundert MB, auf älteren iPad 2 Geräten.
    • Klassische iPad UI Entwicklung und Netzwerk I/O.

2005 bis 2010

In dieser Periode vollzog ich den Wechsel von der Embedded-Entwicklung über OS X Entwicklung (Objective-C) in Richtung iOS Profi. Es wurden zahlreiche iOS Projekte umgesetzt, die wichtigsten sind hier erwähnt.

  • [08.2010 - 11.2010] Nachrichtenagentur, Dreieich

    iOS Entwicklung

    Entwicklung der iPad Anwendung Audi MediaKiosk iPad App, Version 1. Die UI basiert auf den Frameworks UIKit und Core Animation. Die Anbindung an die Backend-Webservices wurden mit den Standard-Lösungen des iOS SDK realisiert (NSMutableURLRequests, NSURLConnection, NSXMLParser zum Interpretieren der empfangenen Daten). Analyse mit Hilfe von Instruments, da die aufwendigen Grafiken die damaligen iPads ausgereizt hatten. Mit den Erkenntnissen wurden Code-Strategien realisiert, um den Speicherverbrauch zu reduzieren.

  • [05.2010 - 12.2010] Automobil-Hersteller, München

    iOS Entwicklung

    Der Schwerpunkt meiner Mitarbeit an der MINI Connected App (im Apple App Store verfügbar) lag in der Realisierung des Radio Streaming-Clients und des Fahrt-Analyzer, der Fahrleistungen (Verbrauch, Brems-Verhalten) visuell darstellt. Es wurden Gamification-Konzepte eingesetzt, um den Analyser ansprechend zu realisieren.

    Bei der Anwendung kamen Unit-Tests zum Einsatz, um die relativ komplexe Anwendung zuverlässig testen zu können.

  • [06.2010 - 07.2010] Werbeagentur, Darmstadt

    iOS Entwicklungs-Support

    Bei diesem Projekt leistete ich Entwicklungs-Support bei der Erstellung der mobile.de App v1.0. Meine Arbeit beinhaltete die Umsetzung des Datenmodells mit Hilfe von Core Data und die Unterstützung des Hauptentwicklers.

  • [06.2010 - 08.2010] Software-Dienstleister, Singen

    iOS Entwicklung

    Entwicklung der wetter.com Weather App XXL v1.0.

    Die Umsetzung der UI wurde mit Hilfe von UIKit realisiert. Es wurden spezielle XML Parser entwickelt, um die Webservice-Antworten zu interpretieren. In der Folge leistete ich Support bis zur Version 1.0.4.

  • [03.2010 - 05.2010] Hardware-Hersteller, Weiterstadt

    C++ Entwicklung

    In diesem Kurzprojekt sollten OpenGL Bugs in einer bestehenden, recht komplexen, Video Post Processing Software für Linux analysiert und behoben werden. Da ich mit dem Quellcode aus der Vergangenheit schon vertraut war, konnte der Einsatz in kurzer Zeit abgeschlossen werden. Im Anschluss erfolgte eine Anbindung der ffmpeg library zur Unterstützung eines bestimmten Video Codecs. Das Debugging wurde mit gdb durchgeführt.

  • [02.2010 - 02.2010] Software-Dienstleister, Bremen

    Projekt Coaching

    Ich wurde für eine kurze Zeit zur Unterstützung interner Mitarbeiter bei der Anwendungs-Entwicklung für das iPhone im Allgemeinen sowie Entwicklungs-Support für ein laufendes iPhone Projekt eingesetzt.

  • [08.2009 - 12.2009] Telekommunikationsunternehmen, Darmstadt

    iOS Entwicklung

    Das Telekommunikationsunternehmen wünschte eine Anbindung des iPhones an ein SAP CRM System. Dafür wurden bestimmte RFCs bzw. BAPIs als Webservices (SOAP) zur Verfügung gestellt.

    Die Beschreibung der Services lag in WSDL-Dateien vor. Hierfür entwickelte ich einen Transformator in Common Lisp, der die WSDL-Dateien in Lisp-Code umwandelte, welcher automatisierten Objective-C Code generierte. Damit ließen sich die Webservices sehr schnell und einfach in das iPhone-Projekt einbinden.

    Anschließend wurden alle notwendigen grafischen Benutzerschnittstellen entwickelt. Die Kommunikation mit dem Backend geschah asynchron.

  • [05.2009 - 07.2009] Software-Dienstleister, Berlin

    iOS Entwicklung

    Der Schwerpunkt der Mitarbeit an dem Prototypen für eine iPhone Kommunikations-Software lag in der Realisierung der Audio Routinen, um Daten zu streamen, über das Netz zu versenden und zu empfangen und Aufnahmen über das Mikrofon zu machen, sowie in der GUI-Entwicklung und der Durchführung von Fehlerkorrekturen. Hierbei handelte es sich um einen Prototypen, da der Kunde die damals neuartige iOS Plattform evaluieren wollte.

  • [02.2009 - 05.2009] Software-Dienstleister, Singen

    iOS Entwicklung

    Der Auftrag beinhaltete die Entwicklung eines Wetter Anzeige-Programms inkl. Vorhersage, Radar, Karten-Overlays und Videostreaming. Die Kommunikation mit dem Wettersystem basierte auf einfachen Webservices, die XML-Daten austauschten. Das Ganze wurde als Weather App (kostenfrei) v1.0 im App Store veröffentlicht und war monatelang unter den ersten drei Plätzen.

    Zur Entwicklung wurden die Standard Frameworks vom iOS verwendet.

  • [10.2008 - 06.2009] Rundfunk, Baden-Baden

    iOS Entwicklung

    Die Erstellung des iPhone-Radioempfängers umfasste die komplette GUI-Entwicklung, das Design und die Implementierung des Kommunikationsprotokolls zwischen SWR3 Server und App.

    Es waren sehr aufwendige Analysen notwendig, da zu diesem Zeitpunkt kein Instruments zur Verfügung stand und das Problem des hohen Speicherverbrauchs (gestreamte Audiodaten, in Echtzeit abspielen) gelöst werden musste.

    Zu diesem Zweck instrumentierte ich u.a. libc Funktionen, um entsprechende Auswertungen über den Systemzustand zu erstellen.

    Die App war der Rahmen für eine eingebettete Web Anwendung, welche News, Informationen, Play-Listen, uvm. wiedergab. Dafür habe ich einen Web Service für den Versions-Abgleich, einen Download-Mechanismus der Inhalte und ein zlib Interface zum Entpacken der Daten realisiert.

    Das Streaming basierte auf einen eigens entwickelten Ringpuffer, welcher Core Audio stets mit Daten versorgte.

  • [09.2007 - 09.2008] Software-Dienstleister, Frankfurt am Main

    Java und C++ Entwickler

    Für eine Maklersoftware im Bereich Designated Sponsoring wurde eine Server-Komponente in Java programmiert, um Referenz-Märkte und Quoten-Daten zu verwalten. Die Client-Komponente wurde mit Swing, ebenfalls in Java realisiert. Die Datenverwaltung wurde mit Hilfe von SQL Statements an die darunter liegende Oracle-Datenbank umgesetzt.

    Debugging der dazugehörigen C++ Server-Komponenten, die von Kollegen entwickelt wurden.

    Eine bestehende Anwendung sollte das Xetra-Handelssystem nahtlos unterstützen. Bisher wurde diese nur für das XONTRO-System verwendet. Dazu waren Anpassungen und Erweiterungen an der Swing-GUI und in darunter liegende Subsysteme der Anwendung notwendig.

    Performance-Analysen beim Kunden (das Börsen-Parkett) mit dem Netbeans Profiler halfen bei der Identifikation von bottlenecks.

    Als Entwicklungsumgebung diente eine Kombination aus Emacs, Netbeans und Borland JBuilder. In der mittleren Phase des Projekts wurde insbesondere mit Oracle SQL gearbeitet, um die Grundlage und den Zugriff auf Tabellen für den Prototypen der neuen Anwendung zu testen.

    Alle Projekt-Bestandteile wurden strikt nach dem Wasserfall-Modell ausgeführt. Ich war in den Phasen Entwurf, Implementation und Überprüfung beteiligt. In der Überprüfungs-Phase habe ich jedoch nicht meine Komponenten, sondern die von Kollegen geprüft.

  • [05.2007 - 12.2009] Software-Dienstleister, Mainz

    OS X Entwicklung

    In 2007 entwickelte ich eine Software, um den Bildschirminhalt eines Macs als Film, in Echtzeit sowie mehrere Audio-Kanäle parallel aufzunehmen.

    Die Software nutzte zur Aufzeichnung und Komprimierung von Video- und Audiodaten Komponenten des Mac OS X Systems (QuickTime, OpenGL und CoreAudio.) Um Audio-Daten zu grabben, wurde ein Kernel-Modul (.kext) in C++ programmiert.

    Das Produkt wurde im Online Tutorial Bereich beworben, so dass zum Bildschirminhalt auch eine oder mehrere Webcams gleichzeitig aufgenommen werden konnten. Alles zusammen stellte sehr hohe Anforderungen an den Mac und es musste sehr systemnah programmiert werden, um eine geeignete Performance zu erreichen.

    Die Kooperation mit dem Kunden beschränkte sich auf den Vertrieb der Software. Bis Dezember 2009 wurde die Anwendung von mir gepflegt und erweitert.

  • [11.2005 - 08.2007] Hard- und Software-Dienstleister, Weiterstadt

    C++ Entwicklung

    Das Unternehmen beauftrage die Entwicklung und das Design einer grafischen Benutzeroberfläche für einen Pro A/V Mischer (ein komplexes System mit hunderten von Tasten und Reglern zur Echtzeit-Steuerung von Audio- und Videosignalen.)

    Ein Touch-Display diente zur Steuerung der Oberfläche. Um die komplexen Abhängigkeiten des Video-Mischers auf der UI-Seite in den Griff zu bekommen, wurde ein Publish/Subscribe Mechanismus eingeführt.

    Für die Entwicklung der UI entstand ein spezielles Framework auf Basis von FLTK. Die gesamte Anwendung wurde in C++ programmiert.

    Zur Optimierung des speziell angepassten Window Systems MicroWindows wurden Performance-Tests durchgeführt.

    Die Linux Treiberentwicklung für Peripherie-Chips (Video Pixel-Decoder und Encoder) erfolgte in C.

    Das Projekt umfasste zudem die Realisierung von Testsoftware für EEPROM-Chips und Video Pixel-Decoder und Encoder, sowie Code-Erweiterungen und Bugfixing des darunter liegenden X11-Servers und Anpassung des Touchscreen-Treibers.

2001 bis 2005

Mit der professionellen Software-Entwicklung startete ich als Werkstudent und nach Abschluss des Informatik-Studiums, als Festangestellter. Hier wurden wichtige Grundsteine für meine weitere Laufbahn als Software-Entwickler gelegt.

  • [04.2005 - 10.2005] Hardware-Hersteller, Dreieich

    C Entwicklung

    Für einen Auftraggeber sollte ein Lastenheft entwickelt werden, um diesen beim Einsatz des firmenspezifischen Grafik-Controllers zu unterstützen. Die Demonstration arbeitete auf einem embedded System mit einer MPC5200 CPU.

    Die Demo-Software wurde in C mit Hilfe einer eigens entwickelten 3D Engine, die abgestimmt auf die Hardware war, verwirklicht.

    Zu dem Auftrag zählte ebenfalls die Umsetzung von grafischen 3D Effekten wie z. B. toon shading. Damals wurden noch keine Shader eingesetzt, bzw. die vorhandene Hardware unterstützte diese nicht.

    Die Umsetzung des Projekts erfolgte während meiner Festanstellung bei obiger Firma.

  • [11.2002 - 03.2005] Hardware-Hersteller, Geisenheim

    Assembler, C, C++ Entwicklung (Projekt OPUS-A2)

    Als Lead Software Developer für die Plattform OPUS A2 betreute ich die Architektur und Entwicklung des Software-Stacks (BIOS, API) und der Basis-Software (das eigentliche Betriebssystem zum Verwalten von System-Ressourcen). Die Entwicklung wurde in Assembler (primär für den bootloader und spezialisierte Routinen) und in C realisiert.

    Zum Zeichnen von Linien, Kreisen oder gefüllten Flächen wurden optimierte Grafik-Algorithmen implementiert.

    Im Zuge des Projekts wurden Treiber für verschiedene Peripherie-Chips (z. B. RS-232 / UART, SPI, I2C, CAN, Grafik-Controller) zur Ansteuerung mit dem C167 sowie Treiber für das SD-CARD Interface und zur Implementierung des FAT16 Dateisystems entwickelt.

    Ferner entstand Treiber-Software für die Grafik-Controller FUJITSU Jasmine, EPSON und HITACHI (ältere 8-Bit chips) sowie Treiber-Software für das MontaVista Linux System (z. B. Touch-Screen, UART, I2C, …).

    Die Analyse der Hardware und die Fehlersuche, insbesondere bei den neu angebundenen Grafik-Chips und den SD-CARD Interfaces, wurde mit dem Oszilloskop durchgeführt.

    Die Software-Modellierung erfolgte in UML.


    C, C++ Entwicklung (Projekt OPUS-A1)

    Die Software für das neuartige Bedienterminal mit ARM7TDMI CPU und Touchscreen-Interface basierte auf MontaVista Linux.

    Dafür musste das X11 System angepasst werden, damit die Messwerte des Touchsensors als Mauskoordinaten interpretiert werden.

    Anschließend wurde auf Basis der Xlib ein Widget Toolkit und ein Window Manager programmiert, welcher die Vorgaben und das spezialisierte Bedieninterface des Kunden entsprach.

    Entwicklung eines Task Switchers zum Umschalten von parallel laufenden, grafischen Anwendungen innerhalb des speziellen Window Managers.

    Die zusätzliche Entwicklung einer Benutzer-Software ermöglichte über CAN-BUS eine Kontrolle der angeschlossenen Landfahrzeug-Geräte.

    Die Hard- und Software wurde primär vor Ort, direkt beim Kunden in Betrieb genommen.

    Die Umsetzung des Auftrags erfolgte in Festanstellung bei zuvor genannter Firma.

  • [09.2001 - 07.2002] Software-Dienstleister, Wiesbaden

    C++ Entwicklung

    Die zu entwickelnde Fax Server-Software erhielt von mehreren TANDEM Systemen Daten (via TCP/IP), welche über den angeschlossenen ISDN-Bus ans Ziel weitergeleitet wurden. Die Entwicklung basierte auf C++ unter Linux.

    Erweiterung einer datenbankorientierten Software zur Auswertung von Datenbank-Trails ("Logs"). Als Benutzer-Interface wurde ein SQL-Interpreter mit den Lex/Yacc Tools umgesetzt. Der Rest der Anwendung wurde in C++ entwickelt.

    Die Software erstellte ich im Rahmen meiner Tätigkeit als Werksstudent und Praktikant.

  • [01.2001 - 08.2001] Software-Dienstleister, Frankfurt am Main

    C und ARM Assembler Entwicklung

    Basis-Entwicklung für den Gameboy Advance.

    Während meiner Anstellung als Werksstudent entwickelte ich für obige Firma OS-ähnliche Routinen um Speicherbereiche und weitere Hardware-Ressourcen zu verwalten.

    Prozessor-Module wie DMA, Sound- und Grafikchip wurden mit diesen Routinen genutzt.

    Zum Projekt zählten zudem Performance-Analysen der Grafikroutinen. Im Zuge des Projekts konnte ich mich in die Hardware (ARM7TDMI) gut einarbeiten.

Sonstiges

Interessen / Skills

In diesem Abschnitt sind nur Skills erwähnt, welche ich sicher und ohne nennenswerte Vorlaufzeit sofort einsetzen kann. Die Reihenfolgen sind alphabetisch sortiert und geben keine Aussage bzgl. Priorität oder Präferenz.

  • Interessen
    • Common Lisp
    • Elektronik Entwicklung
    • GNU/Linux
    • High Level Software-Entwicklung in C++, Java und ähnliche Sprachen
    • Low Level (hardwarenahe) Software-Entwicklung in C und/oder Assembler
    • Mikrocontroller Programmierung
    • Mobile Software-Entwicklung (iOS, Android)
    • OpenGL (2D und 3D)
    • User Interfaces und UI frameworks
    • Web-Entwicklung
  • Skills
    • Tabellarische Auflistung
      Sprachen Tools Frameworks API / SDK Betriebssysteme
      Atmel AVR Assembler CMake Cocoa Android NDK GNU/Linux
      Bash Eclipse Qt 5.x Android SDK iOS
      C Emacs UIKit iOS SDK Mac OS X (macOS)
      C++ GCC   OpenGL ES  
      Common Lisp GNU make      
      GLSL Git      
      JavaScript Jira      
      Objective-C Xcode      
      x86 (32 und 64 Bit) Assembler clang / llvm      

Kontakt

Walantis Giosis, Dipl-Inform. (FH)

Goldgasse 18, 65183 Wiesbaden

Telefon: +49 160 9037 7146

E-Mail: wg@freelance-giosis.com

Umsatzsteuer-Identifikationsnummer: DE 248338376

Impressum

Haftungshinweis: Trotz sorgfältiger inhaltlicher Kontrolle übernehme ich keine Haftung für die Inhalte externer Links. Für den Inhalt der verlinkten Seiten sind ausschließlich deren Betreiber verantwortlich.

Autor: Walantis Giosis

Created: 2016-07-04 Mon 09:23

Emacs 25.0.92.1 (Org mode 8.2.10)

Validate