Fachlicher Schwerpunkt dieses Freiberuflers

Software-Entwicklung in C++; embedded Systems; Bluetooth LE2

verfügbar ab
01.04.2020
verfügbar zu
50 %
davon vor Ort
20 %
PLZ-Gebiet, Land

D0

D1

D2

D3

D4

D5

D6

D7

D8

D9

Österreich

Schweiz

Einsatzort unbestimmt

Projekte

02/2018 - Heute

2 Jahre

Bluetooth (BLE) SWD Adapater (BJPA)

Rolle
Software-Entwickler
Kunde
Eigenentwicklung in Zusammenarbeit mit einem Entwicklungspartner für die Hardware
Projektinhalte

Entwicklung eines SWD Adapters, der es erlaubt einen µController über Bluetooth zu flashen und zu debuggen.

  • Hardware-Entwurf und Review.
  • Integration des Bootloaders in den Buildprozess.
  • Implementierung des GDB-Server Protokolls.
  • RPC über Bluetooth.
  • Hardware-Inbetriebnahme.
Produkte

C++ 14 (GCC und MSVC)

Make/NMake/CMake

git

nRF52832

ARM Cortex-M4

Nordic SDK

Boost

03/2019 - 03/2019

1 Monat

SPI - BLE

Rolle
Software-Entwickler
Kunde
Die Entwicklerschmiede GmbH & Co KG
Projektinhalte

Implementierung eines generischen Bluetooth LE auf SPI Umsetzers.

  • Implementierung GATT Server.
  • Ansteuerung der SPI.
Kenntnisse

C++ 17

Produkte

GCC

git

nRF52832

ARM Cortex-M4

Boost

Bluetoe

CMake/Make

11/2018 - 02/2019

4 Monate

CMake Build

Rolle
Software-Entwickler
Kunde
Automobil Zulieferer
Projektinhalte

Umstellung aller Software Projekte des Kunden von OMake auf CMake.

  • Erstellung von Komponenten in CMake Language.
  • Erweiterung von CMake.
  • Einbindung Sphinx.
  • Integration in CI.
Kenntnisse

C++

Produkte

CMake

git

Sphinx

Jenkins

09/2018 - 09/2018

1 Monat

Bluetooth Frontend

Rolle
Software-Entwickler
Kunde
Die Entwicklerschmiede GmbH & Co KG
Projektinhalte

Für die Übermittlung von Konfigurationsparameter an ein FPGA via Bluetooth wurde eine Firmware entwickelt.

  • Implementierung GATT Server.
  • Anbindung des FPGAs via SPI.
Produkte

C++ 17 (GCC)

git

nRF52832

ARM Cortex-M4

Boost

Bluetoe

CMake/Make

08/2015 - 06/2018

2 Jahre 11 Monate

Neue Bluetooth LE Profile

Rolle
Software-Entwickler
Kunde
Unternehmen aus der Pharmabranche
Projektinhalte

Der Kunde arbeitet als Mitglied der Bluetooth SIG an der Entwicklung neuer Bluetooth Low Energy Profile und bekommt dabei von mir Unterstützung in der Software- und Test-Entwicklung.

  • Entwicklung der Testspezifikationen.
  • Implementierung von Interoperable Prototypes für GATT Server.
  • Implementierung von Interoperable Prototypes für GATT Clients.
  • Teilnahme am Interoperable Prototype Test Events.
Produkte

C (Code Composer Studio)

Subversion

ARM Cortex-M3

CC2650

BLE Sniffer

Wireshark

Bluetoe

nRF52

Noble

Coffeescript

CMake

C++ (GCC und Clang)

RCP

IDS

01/2018 - 01/2018

1 Monat

Codereview in einer Bluetooth Firmware

Rolle
Software-Entwickler
Kunde
GWA
Projektinhalte

Der Kunde hatte den Wunsch, seine Firmware mit Fokus auf Stabilität und Bluetooth Performance mal mit einem frischen Paar Augen untersuchen zu lassen.

  • Analyse der Struktur der Software.
  • Codereview kritischer Teile der Software.
Produkte

Subversion

Editor

C99

09/2017 - 01/2018

5 Monate

Bluetooth Bootloader

Rolle
Software-Entwickler
Kunde
Eigenentwicklung
Projektinhalte

Entwicklung eines Bootloaders für verschlüsselte und signierte Firmware-Updates für nRF52 Controller. Über einzelnde Lizenzen kann Firmware bestimmte features freischalten.

  • Protokoll / Dateiformat-Entwicklung und Dokumentation.
  • Entwicklung eines Werkzeuges zur Erstellung und Validierung von Firmware Images.
  • Bibliothek zur GATT-Client Abstraktion unter OS/X und Windows.
  • Entwicklung eines Clients zur Übertragung von Firmware Images an den Bootloader.
Produkte

C++ 14 (GCC und MSVC)

Make/NMake/CMake

git

nRF52832

ARM Cortex-M4

GCM

AES-256

Windows 10

OS/X

Boost

BearSSL

Nordic SDK

Doxygen

08/2017 - 08/2017

1 Monat

Schaltnetzteil

Rolle
Software-Entwickler
Kunde
Die Entwicklerschmiede GmbH & Co. KG
Einsatzort
Hannover
Projektinhalte
  • Testaufbau um Eval-Board herum.
  • Entwicklung und Test der Firmware.
Kenntnisse

Lötkolben

Produkte

C++ (GCC)

Make/CMake

git

nRF52832

ARM Cortex-M4

PCA10040 (Eval-Board)

03/2017 - 05/2017

3 Monate

Firmware-Update über SWD

Rolle
Software-Entwickler
Kunde
Unternehmen aus der Musikinstrumente-Branche
Einsatzort
Hannover / Hamburg
Projektinhalte
  • Zusätzliche Firmware in bestehende Package Format integriert.
  • Tools um zusätzliche Firmware erweitert.
  • SWD Protokoll implementiert.
  • SWD Plugin für Saleae Logic Analyser korregiert.
  • ARM Debug Interface implementiert.
Kenntnisse

Logic Analyser

Oszilloskop

Produkte

C++ (GCC und Clang)

Make/CMake

Catch

git

ARM Cortex-M4/M0

STM32L4

STM32F0

Projekthistorie

Projekt: CAN-Bootloader Anpassung

Thema:

Ein im Quellcode vorliegender CAN-Bootloader musste auf ein bestehendes System angepasst werden.

Tätigkeit:

  • Integration des Bootloaders in das Buildsystem.
  • Anpassung des CAN-Bootloaders an die Zielhardware (NUC240).
  • Implementierung der SPI Kommunikation des CAN-Bootloaders mit anderen Bootloadern im System.

Zeitraum: Dezember 2016

Kunde: Die Entwicklerschmiede GmbH & Co. KG

Projekt:  Bootloader

Thema:

Für ein Consumer Produkt ist ein Bootloader zu entwickeln, bei dem es den Kunden besonders auf den Schutz des eigenen, in der Firmware steckenden Know-hows ankommt.

Tätigkeit:

  • Entwicklung eines USB Bootloaders.
  • Entwicklung eines UART Bootloaders.
  • Buildsystem für den Bau krytographisch gesicherter Firmware-Updates.
  • Implementierung der Display-Ansteuerung.
  • Analyse von Problemen mit Bluetooth-Kommunikation.

Zeitraum: Juni 2016 - Juli 2017

Kunde:  Unternehmen aus der Musikinstrumente-Branche

Werkzeuge:

  • C++ (GCC), Make/CMake, git, ARM Cortex-M4
  • STM32L4, BLE Sniffer, Wireshark, AES

Projekt: Neue Bluetooth LE Profile

Thema:

Der Kunde arbeitet als Mitglied der Bluetooth SIG an der Entwicklung neuer Bluetooth Low Energy Profile und bekommt dabei von mir Unterstützung in der Software- und Test-Entwicklung.

Tätigkeit:

  • Entwicklung der Testspezifikation.
  • Implementierung von Interoperable Prototypes für GATT Server.
  • Implementierung von Interoperable Prototypes für GATT Client.
  • Teilnahme am Interoperable Prototype Test Events.

Zeitraum: seit August 2015

Kunde: Unternehmen aus der Pharmabranche

Werkzeuge:

  • C (Code Composer Studio), Subversion, ARM Cortex-M3
  • CC2650, BLE Sniffer, Wireshark, Bluetoe, nRF52
  • Noble, Coffeescript
  • CMake, C++ (GCC und Clang), RCP, IDS

Projekt: Sensorlager

Thema:

Eine analoge Spannung und drei Beschleunigungen, die auf einer drehenden Welle gemessen werden, mussten aufgenommen und berührungslos (NFC) an ein Lager kommuniziert werden.

 

Tätigkeit:

  • Entwicklung der Firmware für Lager- und Wellenelektronik.
  • Implementierung der Anbindung des Lagers über CAN.
  • Umsetzung eines CAN-Monitors zur Darstellung und Aufzeichnung von Messwerten.
  • Implementierung der NFC-Kommunikation; in Teilen ISO 14443-3.
  • Integration von Komponenten über SPI und I2C.

 

Zeitraum: Juni / Juli 2015

 

Kunde: Die Entwicklerschmiede

 

Werkzeuge:

  • C++ (GCC; clang), Make/CMake, git
  • ARM Cortex-M4, XMC4200
  • STM8, stm8flash, SDCC
  • Oszilloskop, Lötkolben, JLink PRO
  • Tusa Board, PEAK CAN Interface
  • Boost Fusion/MPL, Doxygen

 

 

 

Projekt: Neopulse

 

Thema:

Nach dem kompletten Hardware-Redesign eines medizinischen Geräts für die elektromagnetische Muskelstimulation musste auch die Firmware des Geräts komplett neu entwickelt werden. Das Design besteht aus zwei Mikrocontrollern, die über Funk, galvanisch getrennt, kommunizieren. Bedient wird das Gerät über Bluetooth LE. Die wesentliche Herausforderung bestand in der exakten Ansteuerung der Leistungselektronik bei gleichzeitiger Integration von nötigen Third-Party-Komponenten

 

Tätigkeiten:

  • Design, Implementierung und Test der Firmware.
  • Kleinere Hardware-Aufbauten für Tests.
  • Begleitung der Hardware-Inbetriebnahme.
  • Erweiterung der hausinternen Bibliothek um grundlegende Abstraktionen (GPIO, Timer).

 

Zeitraum: März 2015

 

Kunde: Die Entwicklerschmiede

 

Werkzeuge:

  • C++ (GCC; clang), Make/CMake, git, ARM Cortex-M0
  • Boost Test, BLExplr, nRF51422
  • Oszilloskop, Lötkolben, JLink PRO
  • Doxygen

 

 

 

Projekt: Firmware

 

Thema:

Für eine automatische Gangschaltung für Fahrräder und Pedelecs, bestehend aus mehreren Komponenten, die drahtlos miteinander kommunizieren, wurden Firmwaren entwickelt. Die Gangschaltung wählt selbstständig Gang und Schaltzeitpunkt anhand von Trittfrequenz, Kraft, Radgeschwindigkeit, Neigung und Beschleunigung. Über einen Schaltaktor können bestehende Ketten- und Nabenschaltungen angesteuert werden.

 

Tätigkeiten:

  • Aufbau des Buildsystems, des Toolings und der Unit-Tests.
  • Umsetzung der ANT-Kommunikation (Funk) inkl. Monitoring Tools.
  • Implementierung drahtgebundener Kommunikations-Schnittstellen (SPI und RS-232).
  • Implementierung einer automatischen, konfigurierbaren Gangschaltung.
  • Anbindung der iOS-App über Bluetooth LE.
  • Entwicklung eines BLE/ANT-Bootloaders inkl. Gegenstück (unter OS/X).

 

Zeitraum: August 2014 - März 2015

 

Kunde: Die Entwicklerschmiede

 

Werkzeuge:

  • C++ (GCC; clang), Make/CMake, git, ARM Cortex-M0
  • Boost Test, Boost MPL, Boost Fusion, Boost Unit
  • BLExplr, nRF51422, OS/X, Objectiv-C, JLink PRO
  • Doxygen, bash

 

 

 

Projekt: DC-Analyse

 

Thema:

Zur Analyse bestimmter Parameter bei der Bauteil-Auslegung elektronischer Schaltungen wurde ein System zur halbautomatischen Gleichstromanalyse geschaffen. Das Analyseergebnis kann in Latex oder Word dokumentiert werden.

 

Tätigkeit:

  • Implementierung eines Netzlisten-Imports.
  • Erstellung einer automatischen Bestimmung von Spannungen und Strömen im System.
  • Implementierung einer Bauteilparameter-Prüfung.
  • Automatische Erstellung der Prüfergebnisse.

 

Zeitraum: August 2014

 

Kunde: Die Entwicklerschmiede

 

Werkzeuge: 

  • Python, git, docx

 

 

 

Projekt: Branding einer Telco-Verkaufsplattform

 

Thema:

Eine bestehende Verkaufsplattform für Telekommunikationsprodukte (Unitymedia.de) wurde auf das Branding von kabelbw.de angepasst.

 

Tätigkeiten:

  • Diverse Fehlerbehebungen.
  • Erstellung von Tests.
  • Herausfaktorisierung von Brand-Abhängigkeiten.

 

Zeitraum: März - September 2014

 

Kunde: SinnerSchrader / Hamburg

 

Werkzeuge:

  • Ruby on Rails, JRuby, factory_girl, Capybara,
  • RSpec, Rake, Bundler, Selenium
  • MySql, HTML, CSS, JavaScript
  • git, Sublime, Kanban

 

 

 

Projekt: Feuerwehreinsatz

Thema:

Sporadisch und systematisch auftretende Fehler an Fahrscheinautomaten mussten untersucht werden und eine nachhaltige und zeitnahe Lösung gefunden werden.

 

Tätigkeiten: 

  • Analyse von Spannungsschwankungen in USV.
  • Analyse von Kunden-Bug-Reports.
  • Modernisierung einer Software-Entwicklungs-Umgebung für
  • SuperH-Microcontroller (Umstellung auf GCC/Make/Eclipse).
  • Modernisierung von C-Quellcode.


Zeitraum:  Oktober 2013 - Dezember 2013

Kunde:  Höft & Wessel AG

Werkzeuge:

  • Bugzilla, Oszilloskop, MinGW, GCC-Cross-Compiler (SH-ELF),
  • Make, Eclipse CDT, C/C++, Subversion, ARCnet, GNU Binutils




Thema: Produkterweiterungen und Fehlerbehebungen

Tätigkeit:

  • Refactoring von gewachsenem C und C++ und C# Code.
  • Entwicklung und Dokumentation von Testfällen.
  • Fehlersuche auf Schnittstellen zu Geldscheinlesern.
  • Lieferanten Fehlern in Produkten nachweisen und Behebungen einfordern und monitoren.
  • C und C++ Code Reviews.


Zeitraum: August und September 2013

Kunde: Höft & Wessel AG

Werkzeuge: 

  • Visual Studio 2012, TFS, Subversion, Boost.Asio (RS232)
  • Windows CE, Windows XP Embedded
  • C/C++, C#, Bugzilla




Projekt: Dungeon Pilot; Online-Applikation für Rollenspieler

Thema:

Dungeon Pilot bietet dem Benutzer einen Karten-Editor, der komplett im Browser ohne Plugins läuft. Die Kommunikation mit dem Server läuft asynchron, sodass selbst bei zügigem Bedienen des Editors keine Wartezeiten für den Benutzer sichtbar werden. Über den Comet-Web-Server kann der Benutzer mehrere Computer miteinander verbinden, ohne selbst einen zentralen Server betreiben zu müssen.


Tätigkeiten: 

  • Gesamte Backend-Entwicklung.
  • Datenbank Model. Architektur.
  • Anbindung an Payment Gateways (Braintree und Paymill).
  • Adaptierung von Rails an Comet Server.
  • A/B Testing Framework.
  • Continuous Integration Skripte; Cloud-Automatisierung.
  • JavaScript / CoffeeScript Tests und Test-Automatisierung.
  • Gesamte Frontend-Entwicklung; z.B. Rich Client Karten-Editor mit Undo / Redo und asynchroner Anbindung über AJAX.
  • Layout-Umsetzung nach Vorgaben des Designers.


Zeitraum: Oktober 2012 - heute

Werkzeuge:

  • Eclipse, Ruby, Rails, Rake, Thor, Bundle, MySql
  • Kiel / Capistrano, Sioux, Twitter Bootstrap
  • Amazon Web Services (AWS, EC2, RDS, LB, CloudFront, SES, Route 53, AS)
  • right_aws, HTML, CSS, CoffeeScript, JavaScript
  • git (Bitbucket), SSH, PhantomJS, Jasmine
  • Google Chart Tools



 

Projekt:  Sioux; Comet-/HTTP-Server

Thema:

Comet-/HTTP-Server in C++ implementiert, durchgängig multithreaded und mit asynchronem IO für hohe Skalierbarkeit.


Tätigkeiten: 

  • Erstellung eines Server-Designs, das HTTP-Pipelining mit Long Polling erlaubt.
  • Umsetzung des HTTP 1.1- und Bayeux-Protokolls.
  • Implementierung einer HTTP-Proxy-Komponente.
  • Einfache Datei-Auslieferung.
  • JSON Serialisierung und Deserialisierung.
  • Mockups für boost-asio socket und timer.
  • Rack Web Server handler als Ruby C extension.
  • Implementiert wurde durchgängig mit TDD.

               
Zeitraum: April 2012 - September 2012

Werkzeuge:

  • Eclipse, C++ (gcc; clang), git, Boost, Boost-asio
  • OS/X, Linux, Doxygen, rake, rack, Ruby

 

 


Projekt: EVAplus; Weiterentwicklung des bestehenden Train Planning System (TPS) zu einer Datendrehscheibe für die Fahrplanauskunft.

Thema:

Im Auftrag der Deutschen Bahn wird das bestehende Fahrplanplanungs-Werkzeug TPS zu einer Datendrehscheibe für die unterschiedlichsten Fahrplandaten aus dem Personenverkehr erweitert.


Tätigkeiten: 

  • Implementierung eines Fahrplanimports aus dem NSS-Format der Deutschen Bahn nach EVAplus.
  • Implementierung eines Fahrplanexports in das HAFAS-Rohdatenformat aus EVAplus.
  • Optimierung bestehender TPS-Komponenten.
  • Erweiterungen und Fehlerbehebungen an TPS.


Zeitraum: März 2011 - März 2012

Kunde: HaCon Ingenieurgesellschaft mbH

Werkzeuge:

  • Eclipse, C++ (gcc; msvc), CVS, Mantis, boost, Qt
  • linux (Ubuntu), Google-Perftool

 

 

 

Projekt: F125; Systemmonitoring und Redundanzmanagement von Brückenkomponenten

Thema:

Für die neuen Fregatten der Deutschen Marine wurden Erweiterungen bezüglich Verfügbarkeit und Redundanz am bestehenden Integrated Navigation System vorgenommen.


Tätigkeiten:

  • Anforderungsanalyse und Spezifikation des Systemmonitorings und Redundanzmanagments.
  • Konfigurierbare Abfrage von SNMP-fähigen Netzwerkkomponenten.
  • Entwicklung und Implementierung einer DSL zur Beschreibung von Funktionsgruppen, Redundanzbeziehungen und der daraus resultierenden Verfügbarkeit.
  • Überwachung der Brückenrechner und der darauf laufenden Prozesse.
  • Implementierung einer automatischen Umschaltung von redundanten Komponenten.


Zeitraum: Oktober 2010 - Januar 2011

Kunde: Raytheon Anschütz

Werkzeuge:

  • C++ (gcc), Doors, objectiF (UML), Subversion, Doxygen
  • SNMP++, boost, boost spirit, linux (Ubuntu)




Projekt: Nautopilot 5000; Entwicklung eines Autopiloten für Schiffe ab 100 m Länge.

Thema:

Die bisherigen Modelle an genauen und hochgenauen Autopiloten wurden durch ein einziges Gerät mit einem einzigen Software-Stand ersetzt. Umgesetzt wurde das Projekt von einem kleinem Team bestehend aus ca. 7 internen und externen Mitarbeitern.


Tätigkeit: 

  • Anforderungsaufnahme aus Gesprächen mit Mitarbeitern, Analysen der bestehenden Software und aus Vorschriften der Zulassenungsbehörden wie dem BSH.
  • Hardware/OS-Abstraktions-Layer für threading, files, timer, CAN-Bus und TCP/IP für jeweils Win32 und WinCE. Allgemeine Komponenten wie logging, timer, shared_ptr, function etc. (boost war nicht verwendbar).
  • Umsetzung eines Protokolls für ausfallsichere Kommunikation auf einem redundant ausgelegten CAN-Bus.
  • Implementierung des Software-Updates über USB-Stick und über CAN-Bus.
  • Anbindung von Bedien-Clients über ein proprietäres Text-Protokoll via TCP/IP.
  • Anbindung elektronischer Seekarten (ECDIS).
  • Integration der bestehenden Kurs-, Kurs-Über-Grund- und Bahnregler.
  • Sensor-Auswahl und Überwachung.
  • Implementierung Dead Reckoning und Position Monitoring.
  • Implementierung einer Drift-Schätzung.
  • Code Reviews.
  • Integration der Code Coverage Analyse in den Build-Prozess.
  • PC und callstack sampler für WinCE zur Performance Analyse mit Google-Perftool.
  • Anpassung der PC-Lint-Konfiguration an die Projektbedürfnisse.
  • Sämtlicher Quellcode und Dokumentation wurde in Englisch erstellt.


Zeitraum: Juni 2008 - August 2010

Kunde: Raytheon Anschütz

Werkzeuge: 

  • Microsoft Visual Studio C++, Subversion, Doxygen
  • UnitTest++, PC-Lint, Testwell CTC++ (code coverage)
  • Doors, Windows Embedded, Win32, Winsock
  • Bugzilla, CAN (IXXAT), UML (objectiF), Google-Perftool




Projekt: Nautosteer Service Tool

Thema:

Beim Kunden wurde für die Konfiguration von Schiffssteuerungskomponenten (Tiller, Feedback Unit, Ruder-Verstärker etc.) über CAN-Bus, intern, für die eigene Entwicklung ein grafisches Tool entwickelt. Um eigenen und fremden Service-Technikern das Werkzeug anbieten zu können, musste es deutlich stabiler und konfortabler gemacht werden


Tätigkeiten: 

  • Analyse der bestehenden, auf Windows Forms basierenden Software.
  • Fehlerbehebungen und Erweiterung um neue Funktionalitäten.


Zeitraum: Mai 2008 - Juni 2008

Kunde: Raytheon Anschütz

Werkzeuge:

  • C#, Subversion, CAN (IXXAT), Windows Forms




Projekt: vereine-mobil.de

Thema:

Entwicklung eines Online-Registrationsprozesses für eine Telecom-Vertriebsgesellschaft.


Tätigkeit:

  • Datenbankentwurf, Implementierung Frontend / Backoffice
  • automatisches Erstellen von Anmelde-Formularen als PDF-Anhang und Versand per EMail.


Kunde: c4society GmbH

Zeitraum:  Dezember 2007 - Januar 2008

Werkzeuge: 

  • Ruby on Rails, mySQL, DBDesigner, Subversion
  • PDF (pdf-writer), SMTP




Projekt: Financial-Rumors.de

Thema:

Financial-Rumors.de ist eine Browser-basierte Online-Wirtschaftssimulation, bei der Spieler mit einem virtuellen Startkapital starten, durch die Produktion und dem Handel von Gütern, Immobilien und Schiffen, versuchen können, ein virtuelles Vermögen zu erlangen.

 

Die Applikation basiert technisch komplett auf Ajax und Comet.

Der Benutzer hat damit eine Benutzererfahrung, wie sie sonst nur bei fat clients möglich ist. Benutzereingaben werden direkt auf dem Client validiert, Änderungen der Spielwelt werden ohne Zutun des Benutzers aktualisiert.

 

Tätigkeiten:

  • Implementierung eines Comet Servers auf Basis eines (monkey) gepatchten Mongrel Servers.
  • Entwurf eines Protokolls zur asynchronen Datenübertragung vom Server in Richtung Client.
  • Publish/Subscribe Library (client- und Server-Seitig), die transparent Datenansichten vom Server auf den Client spiegelt.
  • Library zur Beschreibung von Datenansichten, deren Parameter, ihren Daten-Quellen, und wie sie zu aktualisieren sind. Mit direkter Anbindung an Active Record ergibt dies echtes MVC.
  • GUI-Library, zur einfachen Erstellung von Formularen auf Client Seite und zur einfachen Darstellung von Datenansichten (z.B. als Tabelle oder Grafik).
  • Datenbankentwurf (~100 Tabellen).
  • Implementierung der Applikationslogik in Ruby.
  • Implementierung des Clients in JavaScript.


Zeitraum: Januar 2007 - März 2008

Kunde: Torrox GmbH & Co. KG

Werkzeuge:

  • Ruby on Rails (RoR), JavaScript, mySQL
  • Subversion, Eclipse, DBDesigner
  • Linux (Suse), Ajax, JSON, Comet (HTTP push)
  • mongrel, diverse Browser




Projekt: Entwicklung einer Betriebszentrale (BZ 2000) für die Deutsche Bahn

Thema:

In dem Projekt "Betriebszentralen (BZ)" der DB Netz AG wurden die bisher räumlich und personell getrennten Ebenen Steuerung und Disposition zusammengeführt. In den sieben Betriebszentralen werden alle Prozesse der Betriebsführung gebündelt und automatisiert. Damit überwachen die Betriebszentralen 15.000 km des 35.000 km langen Streckennetzes mit täglich 33.000 Zugfahrten und ermöglichen so eine neue Qualität der Betriebsführung.

Tätigkeiten:

  • Entwicklung eines über Prozess- und Thread-Grenzen hinweg nutzbaren allocator, mit dessen Hilfe sich STL container über Prozessgrenzen hinweg nutzen lassen.
  • Implementierung von threading Primitiven (mutex, read/write mutex, condition variable, semaphore), die sowohl Prozesse als auch threads synchronisieren.
  • Zentrales locking und caching von Domain-Objekten in shared memory für Daten, die ansonsten in der Datenbank standen.
  • Entwurf und Implementierung von objektorientierten Domain-Datenmodellen.
  • OR-Mapper, Beschreibung von Daten-Änderungen in Form von Event-Klassen, die eine redundante Datenhaltung erlauben und genutzt werden, um geänderte Objekte mit nur sehr wenigen Datenbankzugriffen in die DB zu schreiben.
  • Interprozesskommunikation inklusive Subscribe-Mechanismus für bestimmte Daten-Änderungen.
  • Entwicklung von Querschnittskomponenten für logging, TCP/IP, threading,fixed size strings, framework für unit tests und mehr.
  • Verteilung von Dispositions-Fahrplänen an Umsysteme; Pufferung und Akkumulieren von Fahrplanänderungen, wenn die abnehmenden Systeme nicht erreichbar sind. Eine priorisierte queue führt zu einer Versorgung mit aktuellen Daten unter sehr hoher Last.
  • Für das Fahrzeug-Management der S-Bahn Berlin wurde eigens eine einfache Serialisierungs-Bibliothek geschrieben, um Fahrplan-Daten einfach über TCP/IP transportieren zu können.
  • Verarbeitung von Zugstandortmeldungen.
  • Zuglaufüberwachung.
  • Zeitliche Überwachung von geplanten (Fahrplan-)Ereignissen.
  • Räumliche Überwachung von Zugfahrten.
  • Netzweite Suche nach alternativer Fahrweise, bei vom Fahrplan abweichenden Fahrweisen (Graphentheorie/Dijkstra).
  • Suche nach kleinstmöglichen Änderungen bei der Anpassung von Fahrplänen.
  • Wiederaufrüsten von Prozessdaten nach Doppelrechner-Umschaltung oder Systemstart.
  • Profiling von eigenem und fremdem Code auf Prozess und Systemebene.
  • code reviews (C++ und Java).         


Zeitraum: Oktober 1999 - Dezember 2006

Kunde: Funkwerk IT (Konsortium BZ 2000: Funkwerk IT, Thales und Siemens)

Werkzeuge: 

  • C++, UML (OOA/OOD), Oracle-DB, Oracle-Designer
  • OpenVMS, ClearCase, ClearQuest, Doors, Rational Rose
  • TIBCO SmartSockets, PCA (Performance and Coverage Analyzer)
  • MMS (Module Management System), Telnet, FTP
  • Rogue Wave SourcePro, Rogue Wave STL, AlphaServer ES80/AS4100




Projekt: Wartung Rechnergestützten Zugüberwachung (RZÜ)

Thema:

Die RZÜ des Kunden war bei der Deutsche Bahn AG in den Standorten Hannover, Köln, Erfurt und Berlin als Dispositions- und Fahrplanplanungssystem eingesetzt. Meine Aufgabe war es, das mehrere Millionen Zeilen Quellcode große, verteilte System zu warten und funktional zu erweitern.


Tätigkeiten: 

  • Diverse Fehlerbehebungen.
  • Funktionale Erweiterungen.
  • Kundenbetreuung.


Zeitraum:  Februar 1998 - September 1999

Kunde:  Vossloh Systemtechnik GmbH

Werkzeuge:

  • DEC Pascal, C/C++, DCL, CMS, OpenVMS




Projekt: Umstellungen von DECnet auf TCP/IP

Thema:

Bei der Rechnergestützten Zugüberwachung (RZÜ) wurden mehrere Kommunikationsbeziehungen zu Umsystemen von DECnet auf TCP/IP umgestellt.

 


Tätigkeiten: 

  • Identifikation der Kommunikationsbeziehungen.
  • Implementierung eines TCP/IPDECnet-Umsetzers.
  • Tool zum Monitoring bestehender Verbindungen und Konfigurationen.


Positiontion: Halbtags neben dem Studium                

Zeitraum: August 1997 - Januar 1998

Kunde: Vossloh Systemtechnik GmbH

Werkzeuge: 

  • DEC Pascal, C, DCL, CMS, OpenVMS

Referenzen

Projekt Navigationssystem Fregatte F125 und Einsatzgruppenversorger (EGV), Deutsche Bundesmarine, 10/10 - 01/11
Referenz durch Department Manager Engineering Advanced Programs (EAP), Hersteller aus Bereich Navigationslösungen im Marineumfeld, vom 27.07.11

"[...] Der Consultant überzeugte dabei vor allem durch sein exzellentes Fachwissen im Bereich des Softwaredesign mit C++, was sich insbesondere in der Codequalität und der Geschwindigkeit, in der selbst komplexe Sachverhalte abschließend gelöst wurden, widerspiegelt. Außerdem konnte er immer wieder im Team Denkanstöße geben, die zu optimierten Lösungen in angrenzenden Arbeitspaketen führten. Die in unserem Hause gültigen Prozesse (fußend auf CMMI und zertifiziert nach Maturity ML 3) wurden, insbesondere was die Review Kultur und die Umsetzung eines kontinuierlichen Softwaretests betrifft, beispielhaft umgesetzt. Da der Consultant in einem anderen Projekt (Entwicklung eines Autopiloten für die kommerzielle Berufsschifffahrt) einen vergleichbar herausragenden Eindruck hinterließ, ist er sicherlich einer der ersten Ansprechpartner, wenn ein Projekt mit externen Ressourcen unterstützt werden soll."

Projekt Betriebszentralen eines Logistikunternehmens, 10/98 - 12/06
Referenz durch technischer Projektleiter, Funkwerk Information Technologies GmbH, vom 25.04.08

"Das oben aufgeführte Projekt stellt eines der weltweit größten Automatisierungsprojekte der Eisenbahn dar. In der Spitze waren ca. 200 SW-Entwickler in der Anwendungsentwicklung eingebunden. Der Consultant hat in allen Phasen des Projekts von der Spezifikation über die Realisierung bis hin zur Inbetriebnahme und Wartung hochmotiviert mitgearbeitet. Auch für Fragen, die in der aktuellen Wartungsphase auftreten, steht er uns immer zeitnah und kompetent zur Verfügung. Seine sehr guten C++-Programmierskills wurden in zahlreichen internen und externen Reviews immer wieder bestätigt. Neben seiner technischen Kompetenz machte ihn sein ausgeprägter Teamgeist zu einem wichtigen Mitglied des Architektenteams. Unsere hohe Zufriedenheit mit seinen Arbeitsresultaten macht ihn zu einem unserer ersten Ansprechpartnern bei Anfragen zur Einbindung externer Ressourcen in unserem Haus."

Branchen

  • Bahn/Verkehr
  • Web
  • Schiffselelektronik/Nautik
  • Maschinenbau
  • Automatenhersteller
  • Telekommunikation

Kompetenzen

Programmiersprachen
Assembler
8086, 8051, 80c166
C
C (Code Composer Studio)
C++
Über 10 Jahre Projekterfahrung; STL, Boost, MSVC, GCC, DEC, Clang
C++ (GCC und Clang)
CMake
CoffeeScript
Fundierte Kenntnisse / Projekterfahrung
JavaScript
Fundierte Kenntnisse / Projekterfahrung
Python
Projekterfahrung
Ruby
Fundierte Kenntnisse / Projekterfahrung
Scala
Erfolgreiche Teilnahme am Online-Kurs der Universität Lausanne (with distinction)

Betriebssysteme
Mac OS
Unix / Linux
VMS
Windows
Windows 10
Windows CE

Datenbanken
MySQL
Oracle
SQL

Sprachkenntnisse
C++ 17
Deutsch
Englisch

Hardware
ARM Cortex-M3
ARM Cortex-M4
Bus
CAN
CC2650
Echtzeitsysteme
Autopilot für Seeschiffe; Zugdisposition
embedded Systeme
WinCE, ARM, bare metal
Emulatoren
Diplomarbeit: Entwurf eines 80(c)51 Emulators
Hardware entwickelt
ROM-/8051-Emulatoren
Messgeräte
Oszilloskop, Multimeter
Mikrocontroller
8051, C166, ARM, nRF51, XMC, STM8, STM32
nRF52
PC
PLD, FPGA

Datenkommunikation
Bluetoe
Bluetooth
Low Energy
Bus
CAN
Ethernet
Internet, Intranet
HTTP, SMTP, FTP, Telnet, SSH
ISDN
CAPI
NFC
Proprietäre Protokolle
DECnet, ARCnet
RS232
SMTP
SNMP
TCP/IP
Mehrjährige Projekterfahrung; Posix, Boost/ASIO
Winsock
TIBCO SmartSockets
HTTP 1.1 im Rahmen eines Open-Source-Projekts selbst implementiert

Produkte / Standards / Erfahrungen
BLE Sniffer
Boost
CMake/Make
Doxygen
GCC
git
IDS
Jenkins
Noble
nRF52832
Oszilloskop
RCP
Sphinx
Subversion
Wireshark
Produkte:
  • Ruby on Rails
  • Rational Rose, objectiF
  • MSVC 6.0, 7.1, Microsoft Visual Studio 2005, 2012, gcc, cygwin gcc, Clang
  • Rational ClearCase, CVS, MS SourceSave, Subversion, git
  • Oracle Designer, DBDesigner
  • Make, MMS, rake, CMake
  • BugBase, ClearQuest, Bugzilla, Mantis
  • PCA, Google-Perftool
  • SmartSockets
  • RogueWave
  • Qt
  • Boost / Boost ASIO / Boost Thread

Standards:
  • C++, posix, pthread, STL
  • UML, Unified Software Develpoment Process

besondere Erfahrung / Interessen:
  • HTTP push / Comet
  • asynchroner IO
  • Test Driven Development (TDD)
  • Domain Specific Languages (DSLs)
  • Continuous Integration
  • Clean Code
  • Multithreading
  • Kommunikation über shared memory
  • Optimierung, Profiling
  • Arbeit in großem Projekt
  • Hardwarenahe Software-Entwicklung

Berechnung / Simulation / Versuch / Validierung

Boost.Test, UnitTest++

Jasmine, Mocha, Chai

Ruby MiniTest

RSpec, Capybara, Selenium


Ausbildungshistorie

Kommunikationselektroniker
Dipl. Ing. Technische Informatik