Ich habe im Laufe der Jahre einige Male die Technologien geändert. Anfangs war es handcodiertes HTML, dann habe ich mein eigenes Templating-System auf Basis von m4 eingerichtet. Als nächstes migrierte ich zum Python-basierten Genshi-Toolkit, bevor ich mich für hugo entschieden habe.
Als externer Berater habe ich den Build-Prozess vor Ort überarbeitet und dann die CI/CD-Toolchain angepasst und ergänzt, um sowohl das Framework als auch die Integration in die App vorzunehmen. Während dieses Prozesses habe ich weitere Automatisierungen in den bestehenden Toolchains identifiziert und verbessert.
Als externer Berater habe ich die CI-Infrastruktur sowohl für iOS als auch für Android auf Microsoft Azure aufgebaut, UI- und Unit-Testfälle geschrieben und Dokumentationen für Stakeholder in englischer Sprache verfasst. Auf iOS ist das Framework in Swift und auf Android in Java geschrieben.
Home Connect verbindet Haushaltsgeräte wie Backöfen, Geschirrspüler etc. mit nativen Apps auf iOS und Android. Es verfügt über eine riesige Codebasis, wobei allein die Apps mehr als eine Million Codezeilen überschreiten.
Als Senior Software Engineer hatte ich schon früh (seit 2012) die Möglichkeit Teil des Teams zu werden. Dabei habe ich die Architektur mitentworfen und anschließend die in C++ geschriebene Kommunikationsbibliothek entwickelt, die sowohl in den Android- als auch in den iOS-Apps verwendet wird. Ich habe auch Teile der Benutzeroberfläche der iOS-App geschrieben, zunächst in Objective-C und später in Swift. Ich habe die Architekturdokumentation geschrieben und auch verschiedene unterstützende Bibliotheken und Skripte in Python und Bash beigetragen. Diese dienten dem Betrieb und der Wartung der CI/CD-Infrastruktur für verschiedene Plattformen.
Dieses Projekt war aus mehreren Gründen spannend. Es hat mir beigebracht, wie wichtig Continuous Integration und Continuous Deployment sind, wie essentiell die Feinheiten komplexer Softwarearchitekturen und die Zusammenarbeit großer abteilungsübergreifender Teams für eine App sind, die mit einer Vielzahl von Geräten funktioniert.
Ich habe in einer Präsentation auf der Developer Week 2016-Konferenz über technische Lehren aus der mehrjährigen Entwicklung gesprochen.
Als Mitgründer und CTO habe ich den Webauftritt, die Cloud-Infrastruktur auf Microsoft Azure und die Architektur der Web-App konzipiert und aufgebaut. Zusammen mit meinem Mitgründer leiteten wir das Unternehmen und führten die Mitarbeiter in der Organisation.
Wir waren ein Team von sechs Personen (Vollzeit und Teilzeit) mit fünf weiteren freien Mitarbeitern und Studenten, die in Teilzeit für uns arbeiteten. Unsere App verwendete Clojurescript basierend auf Reframe, das wiederum auf Facebooks React basiert. Das Backend führte eine Clojure-Anwendung auf Java 8 aus, die Daten in einer PostgreSQL-Datenbank speicherte und Inhalte über eine REST-API und eine Websockets-API mit nginx bereitstellte. Für Wartungs- und Supportaufgaben wurde eine Reihe von Python-Skripten verwendet.
Während meiner Arbeit im Startup habe ich viel über Oauth-Workflows, die Google-Contacts-API, die Microsoft-Graph-API, CalDAV und vCards, die Nylas-API, die Zahlungs-APIs von PayOne, Stripe und Chargebee, DSGVO-Konformität und In-App-Analytics mit Segment.io, Google Tag Manager, Google Analytics und Heapanalytics gelernt. Ausserdem habe ich mich mit dem Aufbau einer Architektur für die Cloud-Infrastruktur auf Microsoft Azure beschäftigt, die auf Hunderte von Benutzern skaliert werden kann. Es war auch sehr aufschlussreich, die Benutzerinterviews zu führen und zu verstehen, wie Investoren Startups mit Konzepten wie den Marmer-Stages und ihrem Begriff der Konsistenz sehen. Ich durfte ein bisschen von allem lernen, was diese Erfahrung so einzigartig machte.
Zu meiner Bestürzung hatte Apple die Programmiersprache mehrfach erheblich überarbeitet, sodass dieses Buch sehr schnell veraltet war. Ich kann es nicht mehr empfehlen. Auf der anderen Seite kann ich mein Buch über Objective-C immer noch uneingeschränkt unterstützen und empfehlen (wenn Sie diese Sprache heute lernen möchten).
Auch wenn Objective-C aufgrund des Aufstiegs von Swift stark an Popularität verloren hat, ist dieses Buch immer noch als Einführung für alle Menschen geeignet, die heute mit Objective-C arbeiten müssen.
Als technischer Projektleiter habe ich die grundlegenden Architekturentscheidungen getroffen und ein Team von vier Entwicklern während der Entwicklung der App in Objective-C geleitet.
Ich habe die Architektur der ersten Version in Objective-C entwickelt. Ich habe auch beim Debuggen geholfen und Best Practices für zukünftige Entwicklungen empfohlen. Dies war ein kleineres Projekt; dennoch habe ich gelernt, wie das Team einige sehr gründliche Usability-Tests durchführte und wie sie stark in hervorragende Inhalte investierten ? die Übungen und ihre Beschreibungen mit zwei verschiedenen Trainern, einem Mann und einer Frau.
Als Hauptentwickler habe ich eine iPad-App für den internen Gebrauch in einer Tochtergesellschaft eines im DAX notierten Energiemanagementunternehmens konzipiert und implementiert. Die App nutzte die (damals recht neuen) Fähigkeiten der Plattform wie GPS, Fotos, Airprint, asymmetrische RSA-Verschlüsselung und mehrere Synchronisationsmethoden mit dem Backend. Teile der Enterprise-Datenbank mussten mithilfe von Core Data lokal repliziert werden.
Computersimulation von Elementarteilchen (Quantenchromodynamik)
Computersimulation von Eichtheorien
DevOps CI/CD Build und Test Automatisierung
Cloud/Hybrid Infrastructure Konfiguration und Management
Schulung / Training
Ich habe im Laufe der Jahre einige Male die Technologien geändert. Anfangs war es handcodiertes HTML, dann habe ich mein eigenes Templating-System auf Basis von m4 eingerichtet. Als nächstes migrierte ich zum Python-basierten Genshi-Toolkit, bevor ich mich für hugo entschieden habe.
Als externer Berater habe ich den Build-Prozess vor Ort überarbeitet und dann die CI/CD-Toolchain angepasst und ergänzt, um sowohl das Framework als auch die Integration in die App vorzunehmen. Während dieses Prozesses habe ich weitere Automatisierungen in den bestehenden Toolchains identifiziert und verbessert.
Als externer Berater habe ich die CI-Infrastruktur sowohl für iOS als auch für Android auf Microsoft Azure aufgebaut, UI- und Unit-Testfälle geschrieben und Dokumentationen für Stakeholder in englischer Sprache verfasst. Auf iOS ist das Framework in Swift und auf Android in Java geschrieben.
Home Connect verbindet Haushaltsgeräte wie Backöfen, Geschirrspüler etc. mit nativen Apps auf iOS und Android. Es verfügt über eine riesige Codebasis, wobei allein die Apps mehr als eine Million Codezeilen überschreiten.
Als Senior Software Engineer hatte ich schon früh (seit 2012) die Möglichkeit Teil des Teams zu werden. Dabei habe ich die Architektur mitentworfen und anschließend die in C++ geschriebene Kommunikationsbibliothek entwickelt, die sowohl in den Android- als auch in den iOS-Apps verwendet wird. Ich habe auch Teile der Benutzeroberfläche der iOS-App geschrieben, zunächst in Objective-C und später in Swift. Ich habe die Architekturdokumentation geschrieben und auch verschiedene unterstützende Bibliotheken und Skripte in Python und Bash beigetragen. Diese dienten dem Betrieb und der Wartung der CI/CD-Infrastruktur für verschiedene Plattformen.
Dieses Projekt war aus mehreren Gründen spannend. Es hat mir beigebracht, wie wichtig Continuous Integration und Continuous Deployment sind, wie essentiell die Feinheiten komplexer Softwarearchitekturen und die Zusammenarbeit großer abteilungsübergreifender Teams für eine App sind, die mit einer Vielzahl von Geräten funktioniert.
Ich habe in einer Präsentation auf der Developer Week 2016-Konferenz über technische Lehren aus der mehrjährigen Entwicklung gesprochen.
Als Mitgründer und CTO habe ich den Webauftritt, die Cloud-Infrastruktur auf Microsoft Azure und die Architektur der Web-App konzipiert und aufgebaut. Zusammen mit meinem Mitgründer leiteten wir das Unternehmen und führten die Mitarbeiter in der Organisation.
Wir waren ein Team von sechs Personen (Vollzeit und Teilzeit) mit fünf weiteren freien Mitarbeitern und Studenten, die in Teilzeit für uns arbeiteten. Unsere App verwendete Clojurescript basierend auf Reframe, das wiederum auf Facebooks React basiert. Das Backend führte eine Clojure-Anwendung auf Java 8 aus, die Daten in einer PostgreSQL-Datenbank speicherte und Inhalte über eine REST-API und eine Websockets-API mit nginx bereitstellte. Für Wartungs- und Supportaufgaben wurde eine Reihe von Python-Skripten verwendet.
Während meiner Arbeit im Startup habe ich viel über Oauth-Workflows, die Google-Contacts-API, die Microsoft-Graph-API, CalDAV und vCards, die Nylas-API, die Zahlungs-APIs von PayOne, Stripe und Chargebee, DSGVO-Konformität und In-App-Analytics mit Segment.io, Google Tag Manager, Google Analytics und Heapanalytics gelernt. Ausserdem habe ich mich mit dem Aufbau einer Architektur für die Cloud-Infrastruktur auf Microsoft Azure beschäftigt, die auf Hunderte von Benutzern skaliert werden kann. Es war auch sehr aufschlussreich, die Benutzerinterviews zu führen und zu verstehen, wie Investoren Startups mit Konzepten wie den Marmer-Stages und ihrem Begriff der Konsistenz sehen. Ich durfte ein bisschen von allem lernen, was diese Erfahrung so einzigartig machte.
Zu meiner Bestürzung hatte Apple die Programmiersprache mehrfach erheblich überarbeitet, sodass dieses Buch sehr schnell veraltet war. Ich kann es nicht mehr empfehlen. Auf der anderen Seite kann ich mein Buch über Objective-C immer noch uneingeschränkt unterstützen und empfehlen (wenn Sie diese Sprache heute lernen möchten).
Auch wenn Objective-C aufgrund des Aufstiegs von Swift stark an Popularität verloren hat, ist dieses Buch immer noch als Einführung für alle Menschen geeignet, die heute mit Objective-C arbeiten müssen.
Als technischer Projektleiter habe ich die grundlegenden Architekturentscheidungen getroffen und ein Team von vier Entwicklern während der Entwicklung der App in Objective-C geleitet.
Ich habe die Architektur der ersten Version in Objective-C entwickelt. Ich habe auch beim Debuggen geholfen und Best Practices für zukünftige Entwicklungen empfohlen. Dies war ein kleineres Projekt; dennoch habe ich gelernt, wie das Team einige sehr gründliche Usability-Tests durchführte und wie sie stark in hervorragende Inhalte investierten ? die Übungen und ihre Beschreibungen mit zwei verschiedenen Trainern, einem Mann und einer Frau.
Als Hauptentwickler habe ich eine iPad-App für den internen Gebrauch in einer Tochtergesellschaft eines im DAX notierten Energiemanagementunternehmens konzipiert und implementiert. Die App nutzte die (damals recht neuen) Fähigkeiten der Plattform wie GPS, Fotos, Airprint, asymmetrische RSA-Verschlüsselung und mehrere Synchronisationsmethoden mit dem Backend. Teile der Enterprise-Datenbank mussten mithilfe von Core Data lokal repliziert werden.
Computersimulation von Elementarteilchen (Quantenchromodynamik)
Computersimulation von Eichtheorien
DevOps CI/CD Build und Test Automatisierung
Cloud/Hybrid Infrastructure Konfiguration und Management
Schulung / Training
"Der Berater ist eine signifikante Bereicherung für alle Schritte der Projektarbeit. Bei der Einführung unserer Entwicklungssparte für Mac, iPhone und iPad-Produkte hat er hervorragende Fachkompetenz und die Fähigkeit bewiesen, auch neue Technologien schnell zu begreifen und einsatzfähig zu machen. Besonders hervorheben kann ich auch seine analytischen Problemlösungsfähigkeiten, Kreativität, langjährige internationale Erfahrung und Offenheit für Herausforderungen. Wir freuen uns sehr, ihn als starken Projektpartner mit an Bord zu haben."
— Projekt Beratung/Entwicklung: IT-Security,iPhone-iPad Development, 01/10 - dato
Referenz durch Geschäftsführer Strategic Scientific Consulting, global prognostics GmbH, vom 27.08.10
"Der Berater verfügt über ein breites Wissen in verschiedenen Betriebssystemen und Programmiersprachen und hat sich in kürzester Zeit in neue Software eingearbeitet. Er hat alle Aufgabenstellungen innerhalb des Budgets erfolgreich abgeschlossen und organisiert in unserem Auftrag Schulungen und Informationsveranstaltungen, je nach Kundenwunsch auf Deutsch oder auf Englisch. Neben seiner technischen Expertise heben wir insbesondere seine Präsentationsfähigkeiten hervor. Wir bedanken uns für die erfolgreiche Zusammenarbeit und können den Berater anderen Projektanbietern weiterempfehlen. Das Projekt wird in gewissem Umfang fortgesetzt. Wir arbeiten gern weiterhin mit dem Berater zusammen."
— Projekt Spracherkennung-Service-Seminare, 08/09 - 12/10
Referenz durch Geschäftsführerin, ABITZ.COM GmbH, vom 25.08.10
"The consultant has worked as a visiting professor on several projects at our University. He has played a leading role in an international collaboration with more than a dozen members from three continents. This has resulted in the successful conclusion of a multi-year research project. The consultant thus has proven his ability to independently manage and carry out a large-scale project. In addition he has served on the organizing committee of a successful summer school and presented several lectures both within and outside of his special field. We would like to thank the consultant and recommend him for other projects."
— Project Visiting senior specialist (visiting professor), 10/07 - 01/09
Reference from Professor, National Taiwan University, from 13.10.10