10.2019 - 06.2020 Hensoldt Optronics Oberkochen
Bereich Border Surveillance
Project Z:Assess /SAGIR
Target/Host OS: Arch Linux
Programmiersprachen : Java SE 10, JUnit mit Mockito Framework
Build : Gradle
VCS : Git
Continuos Integration : Bamboo
Attlassian Toolchain : Jira, Bitbucket, Confluence
IntelliJ Idea IDE (Java 10)
Methode : Agile (SCRUM, Rolle : Developer)
Aufgaben:
Teilprojekt "Karten Lage System": Erstellung eines Java Frontends mittels
der Frameworks "NASA World Wind" zur Darstellung von Informationen
auf einem 3D Globus : Linien, Polygone, taktische Symbole (MILSTD2525C)
Die verschiedenen Objekte können interaktiv vom Operator erstellt, bearbeitet,
verschoben oder gelöscht werden:
- Erstellung/Wartung einer Swing GUI Application für Integrationstests in Java
- Erstellung der Java Packages
- Unit Tests mit JUnit/Mockito
- Integration der Funktionalitäten mit der C++/Qt Welt (JNI)
- Dokumentation (Confluence)
03.2019 - 09.2019 Airbus Defence and Space Friedrichshafen
Bereich Radar User Ground Segments & Payload Data Processing
Projekt SARah
Target/Host OS: Redhat Enterprise Linux 7
Programmiersprachen : Java SE 8, JUnit mit Wiremock Framework
Build : Gradle
VCS : Git
Continuos Integration : Jenkins
Attlassian Toolchain : Jira, Bitbucket, Confluence
IntelliJ Idea IDE (Java 8)
Aufgaben:
Erstellung von XML Schema Dateien (xsd) anhand von bestehenden XML Dateien
Generierung von Java Klassen über JAXB
Design und Implementierung einer Java Api zum Handling von Konfigurationsdateien (XML, HDF5, Text)
Erstellung von Unit Tests.
07.2018 - 03.2019 Airbus Defence and Space Ulm
Bereich Image & Intelligence : Platform Centric Solutions
Projekt AWACS Final Livetime Extension Programme
Mitarbeit an der Entwicklung von Java/C++ Middleware für die Kommunikation
im Netzerk per Data Distribution Service (DDS).
Target/Host OS: Redhat Enterprise Linux 7 / CentOS7
Programmiersprachen : Java SE 8, JUnit mit Mockito, C++11
Kommunikation: RTI DDS 5.3
Build : Maven
VCS : Git
Continuos Integration : Jenkins
Attlassian Toolchain : Jira, Bitbucket, Confluence
IntelliJ Idea IDE (Java 8)
NetBeans IDE (C++11)
Aufgaben:
Design, Implementierung eines Java Services (Middleware) für RHEL 7.
Design, Implementierung einer Java Api (Middleware) für RHEL 7.
Portierung einer Java Api nach C++11 für für RHEL 7.
Erstellung von Unit Tests.
Erstellung von Integration Tests.
10.2015 - 06.2018 Airbus Defence and Space Ulm.
Bereich Security Solutions : Projekt Actacor (Maritime and Land Surveillance)
Mitarbeit an der Entwicklung einer Java Middleware für die Kommunikation
im Netzerk per Data Distribution Service (DDS).
Target/Host OS: Redhat Enterprise Linux 7 / CentOS7
Programmiersprache : Java SE 8, JUnit mit Mockito
Kommunikation: RTI DDS 5.3
Build : Gradle
VCS : Git
Deployment : Ansible
Continuos Integration : Jenkins
Datenbank : Apache Cassandra
Attlassian Toolchain : Jira, Bitbucket, Confluence
IntelliJ Idea IDE
Methode : Agile (SCRUM, Rolle : Developer)
Aufgaben:
Erstellung/Modifikation von Linux Services,
Design/Erstellung/Modifikation von APIs für DDS und Cassandra.
Erstellung von Unit Tests
Erstellung von Software für automatisierte Tests im Test Lab.
Code Reviews
Dokumentation
SCRUM : Sprint Review ( 1 Sprint = 2 Wochen), Sprint Retro, Sprint Planning
02.2015 - 07.2015 Android Tablet App im Bereich Productivity
für ein Unternehmen im Bereich Bausicherheit.
Tablet Samsung Galaxy Note 10.1
Android Studio 1.1
Android SDK API 19 (Kitkat), SQLite 3, Java SDK 1.8,
Samsung SPen SDK 3.1.4
Funktionalitäten:
- Erstellen (Ausfüllen) von Bestellscheinen mit Pen und/oder Tastatur
- Erstellung einer eindeutigen Bestellnummer
- Bestellscheine speichern, laden, bearbeiten
- Automatisches Ausfüllen von konfigurierten Daten (Besteller, Baustelle, Lieferant,
Datum, Unterschrift).
- Konfiguration : Lieferanten, Baustellen, Besteller, Einstellungen
- Protokoll/Verwaltung von allen gespeicherten Bestellscheinen
- Senden von Bestellscheinen per E-Mail an den Lieferanten
- Löschen von Bestellscheinen
01.2015 - ? Weiterentwicklung Android App mit dem Ziel Markteinführung
- Umstellung auf OAUTH2 Autentifizierung
- Umstellung auf Android Studio
07.2014 - 12.2014 Entwicklung eines PC-Tools (Windows/Linux) passend
zur unten genannten Android App.
Entwicklungsumgebung : QtCreator, QtDesigner
Programmiersprache : C++
Framework : Qt 5.3
Funktionalitäten :
- Integrierter TFTP Client ermöglicht Zugriff auf Android Device im LAN.
- Autodetection von Android Device im LAN.
- Automatisches Laden der Sqlite3 Datenbank von Filesystem /Android Device
- Automatisches Laden der Templates von Stundennachweis und Rechnung
(Formate xls , xlsx/xlsm) von SD Card des Android Device
- Anzeige der Templates von Stundennachweis und Rechnung als Excel Tabelle
und grafische Platzierung der Ausgabefelder in den Cells
- Erzeugung von Stundennachweisen und Rechnungen für ein bestimmtes Projekt für ein Jahr/ Monat.
- Anzeige des Ergebnisses vor dem Speichern der Spreadsheets
- Speichern der erzeugten Spreadsheets auf lokalem File System.
- Speichern der Datenbank bei gänderter Konfiguration der Ausgabefelder auf Android Device.
- Senden von Stundennachweisen und Rechnungen an Auftraggeber/Kunde per E-Mail
- Erstellung von Reports mit Überwachung des Projekt Budgets.
- Senden einer Nachricht per E-Mail an den Auftraggeber, wenn ein bestimmter
Teil des Budgets verbraucht ist.
01.2014 - 06.2014 Entwicklung einer Smartphone Android App im Bereich Productivity
Thema : Zeiterfassung für Freelancer
Android SDK API 19 (Kitkat), Java SDK 1.6, SQLite 3,
Google Spreadsheet API
IDE : Android Development Tools (Eclipse)
Funktionalitäten:
- Konfiguration von Projekten und Firmen (Auftraggeber, Kunden)
- Konfiguration von Kontakten
- Zeiterfassung mit Aktivitäten für einen beliebigen Arbeitstag
- Zeiterfassung mit Stoppuhr für den aktuellen Tag
- Erstellung von Reports
- Erstellung von Stundenzetteln und Rechnungen für einen Monat durch
Senden der Daten an Spreadsheets auf Google Drive
10.2011 - 12.2013 Rohde&Schwarz SIT GmbH Stuttgart
Projekt SVFuA (Streitkräfte gemeinsame Funkgeräteausstattung)
Voraussetzung : Sicherheitsüberprüfung Ü2.
Software Entwicklung für das Infosec Modul.
Entwicklungsumgebung : Eclipse
Programmiersprache : MISRA C 1998, C++ (Unit Test), Java SE 6
Software Version Management : SVN, Rational Clearcase
Testenvironment : CPP Unit
UML Tool : Enterprise Architect
Methode : Model Driven Development
- Design und Entwicklung eines GUI basierten PC-Tools für die Erstellung und Bearbeitung
von ASN.1 codierten Datenstrukturen :
Sprache : Java SE 6
Entwicklungsumgebung : Eclipse
Framework : Bouncy Castle API
ASN.1 Encoding Rules : DER
- Entwicklung von 3 Software Komponenten für das Infosec Modul/Kryptogerät :
- Zusammenarbeit mit den Software Designern (Review Software Model,
Optimierungen im Model)
- Codierung der Komponenten in MISRA C 1998 nach den Vorgaben des Designs des UML
Models.
- Erstellung und Durchführung von Unit Tests in C++ mit CPP Unit.
- Erstellung von Host Simulationen von Hardware Komponenten für den Unit-Test.
- Bearbeitung von Change Requests, Bugfixes.
- Dokumentation (MS Word, Doxygen, Enterprise Architect ).
07.2011 - 09.2011 Weiterbildung im Bereich Android Apps für Smartphones
09.2010 - 06.2011 Nokia Siemens Networks GmbH Ulm
Embedded Softwareentwicklung für LTE eNodeB Control Plane
(agile Softwareentwicklung/SCRUM)
Entwicklungsumgebung : Eclipse/CDT unter Red Hat Linux
Programmiersprache : C++, TTCN3 (Componenttest)
Software Version Management : SVN
Testenvironment : gdb, CPP-Unit, TTCN3
Mitarbeit in einem SCRUM Feature Team :
- Teilnahme an Meetings zur Vorstellung neuer Features
- Daily Scrum Meetings
- Sprint Planning
- Sprint Review
- Für die SW-Komponente User Equipment Controller (UEC) :
- Implementierung neuer Features (vorwiegend Handover Scenarios)
- Bearbeitung von Change Requests für bestehende Features
- Portierung von bestehenden Features von LTE Release 8 nach Release 9
- Bugfixing
- Unit Test : Erstellung neuer Tests, Anpassung bestehender Tests (CPP Unit).
- Component Test : Erstellung neuer Tests, Anpassung bestehender Tests
mit einem vorhanden TTCN3 Framework (Message basiert).
- Validierung : Valgrind (Memory Leaks), Klocwork
Für die Erstellung/Berabeitung aller Features innerhalb eines Sprints gab es
folgende Vorgehensweise :
- Verteilung der Features innerhalb des Teams, gegebenenfalls Splitting
eines Features in verschiedene Teile.
- Implementierung des Features
- Implementierung/Änderung von Unit Tests
- Durchführung Unit Tests und Bugfixing
- Implementierung/Änderung von Component Tests
- Durchführung Component Tests und Bugfixing
- Validierung
- Merging und Commitment in SVN Repository
- Kontrolle des Ergenisses im CI (Hudson/Jenkins)
10.2009 - 06.2010 Hirschmann Automation & Control GmbH Neckartenzlingen
Projektunterstützung bei der Implementierung des Multiple Spanning Tree
Protokolls (MSTP) auf einem Layer 2 Switch
Hardware : PowerPC Familie
Entwicklungsumgebung : Windriver Workbench 3
Programmiersparache : ANSI C
Betriebssystem : VxWorks 6
Software Version Management : CVS
Testenvironment : Windriver Workbench Debugger (GDB),
NET-O2 CTS MSTP Testsuite
Für eine vorhandene Third Party Implementierung des MSTP Protokolles
wurden folgende Aufgaben bearbeitet :
- Einarbeitung in vorhandene Implementierung und in den
Standard IEEE 802.1Q 2005
- Periphere Erweiterungen des Codes : Erweiterung des
Command Line Interfaces (Telnet/RS232) um die MSTP
Funktionalität
- Code Merge für die neueste Version der MSTP Implementierung
- Erweiterung MSTP Implementierung um eine proprietäre
Funktionalität
- Bugfixing in MSTP Implementierung
- Conformance Testsuite :
NET-O2 CTS MSTP Testsuite prüft die Konformität zum Standard
durch Testskripte in denen einer oder mehrere Switches auf
dem PC simuliert werden. Das Testdevice (ein realer Switch)
wird mit den benötigten Ports mit dem Test PC verbunden.
Für alle fehlgeschlagenen Testfälle war zu prüfen :
- wenn Test Case fehlerhaft : Fehlerbschreibung und
Lösungsvorschlag an den Hersteller weiterleiten
- wenn Bug in MSTP Implementierung : Lösung erarbeiten,
Fehlermeldung generieren, Bugfix durchführen.
08.2009 - 12.2009 : privates Projekt:
Erstellung einer SQL Datenbank basierten RIA Webapplikation
mit Schwerpunkt auf mobile Devices :
Programmiersprache : J2SE 6
Entwicklungssystem : Eclipse Ganymede
Datenbank : PostgreSQL
Server : Apache TomCat 6
RIA Framework : Vaadin 6
02.2009 - 07.2009 Weiterbildung
- Embedded Linux mit Evaluationboard phyCore MPC5200B Tiny
- Java : J2SE 6, Desktopapplikationen mit Swing/AWT, Netbeans IDE
- Datenbanken : SQL Sprache, mySQL, PostgreSQL
07.2007 - 01.2009 Rohde & Schwarz GmbH München
07.2007 - 12.2007
Softwareintegration im Projekt M3TR (Taktisches Truppenfunkgerät) :
Taktisches Truppenfunkgerät M3TR:
Dual Prozessor System, PPC Familie
Betriebssysteme : OSE 4.0, VxWorks 6.4
Programmiersprache : C++, STL
Testenvironment : Lauterbach T32, Systemsimulation unter Win32, Visual C++ 2003
Software Version Management : Rational ClearCase 7.0
Eine Besonderheit in diesem Projekt ist, dass in der Software-
integration nicht nur die üblichen Aufgaben bearbeitet werden,
sondern auch teilweise Entwicklungsaufgaben (selbstständige Bugfixes,
Redesign und Neuerstellung von einzelnen Modulen) wahrgenommen werden.
Der Grund ist, dass sich die ursprünglichen Entwickler zum Teil nicht
mehr im Projekt befinden.
01.2008 - 01.2009 :
SW-Entwicklung im Projekt M3TR im Teilprojekt "IP over Air (IPoA)".
Die Funktionalität IPoA ist ein propetiärer Protokollstack für die ISO/OSI
Layer 2 bis 4, der dem M3TR Radio eine IP Funktionalität hinzufügt. IPoA
befindet sich auf einem separaten Controller Board (PPC 405, VxWorks 6.4)
und kommuniziert mit dem Radio Kommunikationssystem Controller (MPC 860,
OSE 4.0) über ein Dual Port Ram.
Das PPC Controllerboard kommuniziert mit
einem PC/Router über eine Ethernetschnittstelle mit einem LAN.
Die Protokollumsetzung erfolgt folgendermassen:
LAN nach Air-Network:
Eth-IP-TCP(UDP)-Application --> RadioWaveform-LLC-IP-TCP(UDP)-Appl.
und vice versa.
Aufgabe:
Erweiterung des IPoA Protokollstacks um den Logical Link Control Layer
(OSI Layer 2) mit einem ARQ Mechanismus
10.2006 - 03.2007 Siemens Networks GmbH Ulm
04.2007 - 06.2007 Nokia Siemens Networks GmbH Ulm
Projekt Core Controller NodeB (UMTS Mobilfunknetz)
Der Core Controller (CC) ist Bestandteil des NodeB (Basisstation im
UMTS Mobilfunknetz) und stellt das Interface (Iub-Interface) zum Radio
Network Controller (RNC) dar.
Die Funktionalität des CC-Boards (MPC 8541, UTOPIA2, RT-Linux (Kernel 2.6.x),
GNU C++ 3.0) beinhaltet einen ATM-Switch (AAL2, AAL5) und ein Interworking
System (IP-ATM). Vorhandene physikalische Schnittstellen : E1/J1/T1, STM1,
electrical Ethernet 1000BASE-SX/L, optical Ethernet 1000BASE-T.
Aufgabe : Erstellung von Komponenten des automatisierten Test-Environments
(Target, Host, Mess-Equipment) für Hardware-Integration, Software-Integration und
Performance-Test.
10.2006 - 05.2007
Erstellung von Tcl-Skripts zur Testautomatisierung der Surpass HiD 3120.
Die Ansteuerung der Surpass HiD 3120 erfolgt über SNMP.
Erstellung eines Tcl-Skriptes zur Abfrage von Statusinformationen
und zum automatischen Laden einer Systemkonfiguration. Für die
Kommunikation zum Messgerät wurde Net-SNMP verwendet.
Erstellung einer API in Tcl für die IP- und ATM Funktionalität des AX4000.
Die API setzt auf der Tcl-Library von Spirent auf.
06.2007
Erstellung einer Demo zum Thema PWE3 (Packet Wire Emulation)
12.2004 - 07.2006 Contec GmbH Darmstadt / Datacard Group Minneapolis
Projekt PB6500 :
Personalisierungsstation für Reisepässe/Personalausweise
Die Personalisierungsstation besteht aus diversen Modulen, von denen jedes
eine definierte Aufgabe erfüllt (Input Station, Output Station, Laser Engraver,
Inkjet Drucker, RFID-Chip Closer Modul(Chipprogrammierung und Schliessen
des geöffneten Booklets), Leafer(Aufblättern der Booklets).
Ein zentraler Controller PC (Windows XP) steuert die Produktion, wobei
die Module als Server agieren (Anbindung über TCP/IP).
Die Module steuern den Transport des Booklets durch Optosensoren und
Schrittmotoren. Auf dem Mainboard kommt ein PPC405 zum Einsatz.
Aufgabe: Entwicklung von Modulfirmware (VxWorks 5.5, Tornado 2.2, GNU C++ 3.0 mit
Standard Template Library STL)
12.2004 - 01.2005
Einarbeitung mit Workshop
02.2005 - 06.2005
Erstellung eines C++-Frameworks für die Modul-Firmware
07.2005 - 10.2005
Erstellung der Betaversion der Modulfirmware (nur Transport Funktionalität):
11.2005
Integration aller Module und des zentralen Controllers:
12.2005 - 02.2006
Erstellung der Releaseversion der Modulfirmware:
03.2006 - 07.2006
Inbetriebnahme/Systemtest/Dokumentation der kundenspezifischen Personalisierungsstationen
03.2004 - 09.2004
- Service für kleinere Netzwerke (Hardwarekonfiguration, Softwareinstallation,
Fehlerbehebung, Routerkonfiguration, Troubleshooting, Beratung)
- Analyse und Erstellung eines Gutachtens für die Software eines elektronischen
Kassensystemes für das Gastronomie- und Hotelgewerbe (Desktop-PC mit Touchscreen)
bezüglich der Qualität der vorhandenen Software
03.2000 - 01.2004 Siemens AG ICN : XpressLink (SDSL,SHDSL)
03.2000 - 09.2000
Devicedriver SDSL/SHDSL linecard
- Design eines Devicedrivers für eine 16-fach SDSL und SHDSL linecard
- Modellierung der Klassen (C++ , Visual C++)
- Codierung, Test und Dokumentation
10.2000 - 02.2001
Onboard-Menüsystem (C++) zur direkten Steuerung des Devicedrivers der SDSL/SHDSL linecard
03.2001 - 02.2004
Erstellunhg eines PC-Tools
Testenvironment für automatisierte Messdatenerfassung und Steuerung des Devicedrivers
der SDSL/SHDSL linecard
- Target : WindowsXP/2000/NT (Win32)
- Programmiersprache : C
- Environment: National Instruments LabWindows/CVI
- Architektur: Multithreading-Application (Win32). Threads kommunizieren über
Messages, propetiäre API zur Realisierung der Messages und der Threadsynchronisierung
Devicedriver für Linesimulatoren : NI-IVI, NI-VISA, GPIB
Bis 2000 : Anstellung Siemens AG München
Developer für Embedded Realtime Systems
Senior Developer Java/C++
- Realtime Embedded Systems:
Analyse, Design (OOD), Programmierung (OOP), Unit-Test, Dokumentation, Wartung
- Studien, Konzepte, Spezifikationen für Embedded Systems
- Entwicklung von PC-Tools zum automatisierten Test von Microcontroller-
Baugruppen
- Layer 2/3 Protocolstacks
- Mobilfunk eNodeB (LTE) C-Plane
- Entwicklung von Applications in Java SE, C++/Qt
- Entwicklung von Android Apps
- Entwicklung von Java APIs
- Entwicklung von Java Middleware
- Entwicklung von Java Frontend fur 3D Globus
- C++ Standard Template Library
- Design Patterns
- Qt 5
- Boost Library (C++)
- Cpp Unit
- JUnit
- Mockito
- Wiremock
- Java SE 11 Framework
- Android Framework
- Samsung SPen SDK 3.1.4 für Android
- NASA World Wind Java 2.1.0
- OOA, OOD, OOP
- UML 2.0
- XML
- XML Schema (xsd)
- JAXB
- Context and Dependeny Injection (CDI)
- JSON
- Eventgesteuerte Programmierung
- Multithreading Programmierung unter Windows NT/2000/XP
- Multithreading Programmierung unter Linux in Java
- ISO/OSI Layer
- TCP/IP
- ITU-T G.991.2 (SHDSL)
- Interchangable Virtual Instruments (IVI) Model
- ANSI/IEEE 488.2 (Virtual Instruments System Architecture VISA)
- SNMPv3
- TFTP
- PWE3 (RFC 4717)
- ATM, AAL2, AAL5
- STP, RSTP, MSTP
- MISRA C 1998
- MISRA C++ 2008
- Valgrind
- SCRUM (agile SW Entwicklung)
- Model Driven Development
- Sparx Enterprise Architect
- Topcased
- Rational DOORS
- Jira
- Confluence
- Bitbucket
- Microsoft Office
- Microsoft Visual C++ 2003
- Microsoft Visual Studio 2003/2005
- Eclipse /CDT
- Android Develpment Tools (Eclipse)
- Android Studio
- Eclipse Ganymede/Helios (J2SE)
- QtCreator
- QtDesigner
- Apache TomCat 6
- Netbeans IDE
- IntelliJ Idea
- National Instruments LabWindows/CVI
- ActiveState Kommodo (IDE für Scriptsprachen)
- Microtec C-Compiler/Linker
- GNU-C/C++ Compiler
- Windriver C/C++ Compiler
- Windriver Tornado 2.2
- Windriver Workbench 3
- Wireshark
- ClearCase
- CVS, WinCVS
- SVN
- Git
- Maven
- Gradle
- Ansible
- Doxygen
- Hitex-ICE
- Lauterbach T32
- VisionICE
- Spirent (Adtech) AX4000
- Surpass (Seabridge) HiD 3120
- Vaadin 6 (Java Web Application Framework für
Rich Internet Applications (RIA)
- Hudson/Jenkins (Continous Integration)
- Bouncy Castle (Java Framework)
ISO/OSI Layer 2 :
- Spanning Tree Protocol (STP)
- Rapid Spanning Tree Protocol (RSTP)
- Multiple Spanning Tree Protocol (MSTP)
- Realtime Publish Subscribe Protocol (RTPS)
Mobilfunk:
- S1,
- X2,
- RRC
10.2019 - 06.2020 Hensoldt Optronics Oberkochen
Bereich Border Surveillance
Project Z:Assess /SAGIR
Target/Host OS: Arch Linux
Programmiersprachen : Java SE 10, JUnit mit Mockito Framework
Build : Gradle
VCS : Git
Continuos Integration : Bamboo
Attlassian Toolchain : Jira, Bitbucket, Confluence
IntelliJ Idea IDE (Java 10)
Methode : Agile (SCRUM, Rolle : Developer)
Aufgaben:
Teilprojekt "Karten Lage System": Erstellung eines Java Frontends mittels
der Frameworks "NASA World Wind" zur Darstellung von Informationen
auf einem 3D Globus : Linien, Polygone, taktische Symbole (MILSTD2525C)
Die verschiedenen Objekte können interaktiv vom Operator erstellt, bearbeitet,
verschoben oder gelöscht werden:
- Erstellung/Wartung einer Swing GUI Application für Integrationstests in Java
- Erstellung der Java Packages
- Unit Tests mit JUnit/Mockito
- Integration der Funktionalitäten mit der C++/Qt Welt (JNI)
- Dokumentation (Confluence)
03.2019 - 09.2019 Airbus Defence and Space Friedrichshafen
Bereich Radar User Ground Segments & Payload Data Processing
Projekt SARah
Target/Host OS: Redhat Enterprise Linux 7
Programmiersprachen : Java SE 8, JUnit mit Wiremock Framework
Build : Gradle
VCS : Git
Continuos Integration : Jenkins
Attlassian Toolchain : Jira, Bitbucket, Confluence
IntelliJ Idea IDE (Java 8)
Aufgaben:
Erstellung von XML Schema Dateien (xsd) anhand von bestehenden XML Dateien
Generierung von Java Klassen über JAXB
Design und Implementierung einer Java Api zum Handling von Konfigurationsdateien (XML, HDF5, Text)
Erstellung von Unit Tests.
07.2018 - 03.2019 Airbus Defence and Space Ulm
Bereich Image & Intelligence : Platform Centric Solutions
Projekt AWACS Final Livetime Extension Programme
Mitarbeit an der Entwicklung von Java/C++ Middleware für die Kommunikation
im Netzerk per Data Distribution Service (DDS).
Target/Host OS: Redhat Enterprise Linux 7 / CentOS7
Programmiersprachen : Java SE 8, JUnit mit Mockito, C++11
Kommunikation: RTI DDS 5.3
Build : Maven
VCS : Git
Continuos Integration : Jenkins
Attlassian Toolchain : Jira, Bitbucket, Confluence
IntelliJ Idea IDE (Java 8)
NetBeans IDE (C++11)
Aufgaben:
Design, Implementierung eines Java Services (Middleware) für RHEL 7.
Design, Implementierung einer Java Api (Middleware) für RHEL 7.
Portierung einer Java Api nach C++11 für für RHEL 7.
Erstellung von Unit Tests.
Erstellung von Integration Tests.
10.2015 - 06.2018 Airbus Defence and Space Ulm.
Bereich Security Solutions : Projekt Actacor (Maritime and Land Surveillance)
Mitarbeit an der Entwicklung einer Java Middleware für die Kommunikation
im Netzerk per Data Distribution Service (DDS).
Target/Host OS: Redhat Enterprise Linux 7 / CentOS7
Programmiersprache : Java SE 8, JUnit mit Mockito
Kommunikation: RTI DDS 5.3
Build : Gradle
VCS : Git
Deployment : Ansible
Continuos Integration : Jenkins
Datenbank : Apache Cassandra
Attlassian Toolchain : Jira, Bitbucket, Confluence
IntelliJ Idea IDE
Methode : Agile (SCRUM, Rolle : Developer)
Aufgaben:
Erstellung/Modifikation von Linux Services,
Design/Erstellung/Modifikation von APIs für DDS und Cassandra.
Erstellung von Unit Tests
Erstellung von Software für automatisierte Tests im Test Lab.
Code Reviews
Dokumentation
SCRUM : Sprint Review ( 1 Sprint = 2 Wochen), Sprint Retro, Sprint Planning
02.2015 - 07.2015 Android Tablet App im Bereich Productivity
für ein Unternehmen im Bereich Bausicherheit.
Tablet Samsung Galaxy Note 10.1
Android Studio 1.1
Android SDK API 19 (Kitkat), SQLite 3, Java SDK 1.8,
Samsung SPen SDK 3.1.4
Funktionalitäten:
- Erstellen (Ausfüllen) von Bestellscheinen mit Pen und/oder Tastatur
- Erstellung einer eindeutigen Bestellnummer
- Bestellscheine speichern, laden, bearbeiten
- Automatisches Ausfüllen von konfigurierten Daten (Besteller, Baustelle, Lieferant,
Datum, Unterschrift).
- Konfiguration : Lieferanten, Baustellen, Besteller, Einstellungen
- Protokoll/Verwaltung von allen gespeicherten Bestellscheinen
- Senden von Bestellscheinen per E-Mail an den Lieferanten
- Löschen von Bestellscheinen
01.2015 - ? Weiterentwicklung Android App mit dem Ziel Markteinführung
- Umstellung auf OAUTH2 Autentifizierung
- Umstellung auf Android Studio
07.2014 - 12.2014 Entwicklung eines PC-Tools (Windows/Linux) passend
zur unten genannten Android App.
Entwicklungsumgebung : QtCreator, QtDesigner
Programmiersprache : C++
Framework : Qt 5.3
Funktionalitäten :
- Integrierter TFTP Client ermöglicht Zugriff auf Android Device im LAN.
- Autodetection von Android Device im LAN.
- Automatisches Laden der Sqlite3 Datenbank von Filesystem /Android Device
- Automatisches Laden der Templates von Stundennachweis und Rechnung
(Formate xls , xlsx/xlsm) von SD Card des Android Device
- Anzeige der Templates von Stundennachweis und Rechnung als Excel Tabelle
und grafische Platzierung der Ausgabefelder in den Cells
- Erzeugung von Stundennachweisen und Rechnungen für ein bestimmtes Projekt für ein Jahr/ Monat.
- Anzeige des Ergebnisses vor dem Speichern der Spreadsheets
- Speichern der erzeugten Spreadsheets auf lokalem File System.
- Speichern der Datenbank bei gänderter Konfiguration der Ausgabefelder auf Android Device.
- Senden von Stundennachweisen und Rechnungen an Auftraggeber/Kunde per E-Mail
- Erstellung von Reports mit Überwachung des Projekt Budgets.
- Senden einer Nachricht per E-Mail an den Auftraggeber, wenn ein bestimmter
Teil des Budgets verbraucht ist.
01.2014 - 06.2014 Entwicklung einer Smartphone Android App im Bereich Productivity
Thema : Zeiterfassung für Freelancer
Android SDK API 19 (Kitkat), Java SDK 1.6, SQLite 3,
Google Spreadsheet API
IDE : Android Development Tools (Eclipse)
Funktionalitäten:
- Konfiguration von Projekten und Firmen (Auftraggeber, Kunden)
- Konfiguration von Kontakten
- Zeiterfassung mit Aktivitäten für einen beliebigen Arbeitstag
- Zeiterfassung mit Stoppuhr für den aktuellen Tag
- Erstellung von Reports
- Erstellung von Stundenzetteln und Rechnungen für einen Monat durch
Senden der Daten an Spreadsheets auf Google Drive
10.2011 - 12.2013 Rohde&Schwarz SIT GmbH Stuttgart
Projekt SVFuA (Streitkräfte gemeinsame Funkgeräteausstattung)
Voraussetzung : Sicherheitsüberprüfung Ü2.
Software Entwicklung für das Infosec Modul.
Entwicklungsumgebung : Eclipse
Programmiersprache : MISRA C 1998, C++ (Unit Test), Java SE 6
Software Version Management : SVN, Rational Clearcase
Testenvironment : CPP Unit
UML Tool : Enterprise Architect
Methode : Model Driven Development
- Design und Entwicklung eines GUI basierten PC-Tools für die Erstellung und Bearbeitung
von ASN.1 codierten Datenstrukturen :
Sprache : Java SE 6
Entwicklungsumgebung : Eclipse
Framework : Bouncy Castle API
ASN.1 Encoding Rules : DER
- Entwicklung von 3 Software Komponenten für das Infosec Modul/Kryptogerät :
- Zusammenarbeit mit den Software Designern (Review Software Model,
Optimierungen im Model)
- Codierung der Komponenten in MISRA C 1998 nach den Vorgaben des Designs des UML
Models.
- Erstellung und Durchführung von Unit Tests in C++ mit CPP Unit.
- Erstellung von Host Simulationen von Hardware Komponenten für den Unit-Test.
- Bearbeitung von Change Requests, Bugfixes.
- Dokumentation (MS Word, Doxygen, Enterprise Architect ).
07.2011 - 09.2011 Weiterbildung im Bereich Android Apps für Smartphones
09.2010 - 06.2011 Nokia Siemens Networks GmbH Ulm
Embedded Softwareentwicklung für LTE eNodeB Control Plane
(agile Softwareentwicklung/SCRUM)
Entwicklungsumgebung : Eclipse/CDT unter Red Hat Linux
Programmiersprache : C++, TTCN3 (Componenttest)
Software Version Management : SVN
Testenvironment : gdb, CPP-Unit, TTCN3
Mitarbeit in einem SCRUM Feature Team :
- Teilnahme an Meetings zur Vorstellung neuer Features
- Daily Scrum Meetings
- Sprint Planning
- Sprint Review
- Für die SW-Komponente User Equipment Controller (UEC) :
- Implementierung neuer Features (vorwiegend Handover Scenarios)
- Bearbeitung von Change Requests für bestehende Features
- Portierung von bestehenden Features von LTE Release 8 nach Release 9
- Bugfixing
- Unit Test : Erstellung neuer Tests, Anpassung bestehender Tests (CPP Unit).
- Component Test : Erstellung neuer Tests, Anpassung bestehender Tests
mit einem vorhanden TTCN3 Framework (Message basiert).
- Validierung : Valgrind (Memory Leaks), Klocwork
Für die Erstellung/Berabeitung aller Features innerhalb eines Sprints gab es
folgende Vorgehensweise :
- Verteilung der Features innerhalb des Teams, gegebenenfalls Splitting
eines Features in verschiedene Teile.
- Implementierung des Features
- Implementierung/Änderung von Unit Tests
- Durchführung Unit Tests und Bugfixing
- Implementierung/Änderung von Component Tests
- Durchführung Component Tests und Bugfixing
- Validierung
- Merging und Commitment in SVN Repository
- Kontrolle des Ergenisses im CI (Hudson/Jenkins)
10.2009 - 06.2010 Hirschmann Automation & Control GmbH Neckartenzlingen
Projektunterstützung bei der Implementierung des Multiple Spanning Tree
Protokolls (MSTP) auf einem Layer 2 Switch
Hardware : PowerPC Familie
Entwicklungsumgebung : Windriver Workbench 3
Programmiersparache : ANSI C
Betriebssystem : VxWorks 6
Software Version Management : CVS
Testenvironment : Windriver Workbench Debugger (GDB),
NET-O2 CTS MSTP Testsuite
Für eine vorhandene Third Party Implementierung des MSTP Protokolles
wurden folgende Aufgaben bearbeitet :
- Einarbeitung in vorhandene Implementierung und in den
Standard IEEE 802.1Q 2005
- Periphere Erweiterungen des Codes : Erweiterung des
Command Line Interfaces (Telnet/RS232) um die MSTP
Funktionalität
- Code Merge für die neueste Version der MSTP Implementierung
- Erweiterung MSTP Implementierung um eine proprietäre
Funktionalität
- Bugfixing in MSTP Implementierung
- Conformance Testsuite :
NET-O2 CTS MSTP Testsuite prüft die Konformität zum Standard
durch Testskripte in denen einer oder mehrere Switches auf
dem PC simuliert werden. Das Testdevice (ein realer Switch)
wird mit den benötigten Ports mit dem Test PC verbunden.
Für alle fehlgeschlagenen Testfälle war zu prüfen :
- wenn Test Case fehlerhaft : Fehlerbschreibung und
Lösungsvorschlag an den Hersteller weiterleiten
- wenn Bug in MSTP Implementierung : Lösung erarbeiten,
Fehlermeldung generieren, Bugfix durchführen.
08.2009 - 12.2009 : privates Projekt:
Erstellung einer SQL Datenbank basierten RIA Webapplikation
mit Schwerpunkt auf mobile Devices :
Programmiersprache : J2SE 6
Entwicklungssystem : Eclipse Ganymede
Datenbank : PostgreSQL
Server : Apache TomCat 6
RIA Framework : Vaadin 6
02.2009 - 07.2009 Weiterbildung
- Embedded Linux mit Evaluationboard phyCore MPC5200B Tiny
- Java : J2SE 6, Desktopapplikationen mit Swing/AWT, Netbeans IDE
- Datenbanken : SQL Sprache, mySQL, PostgreSQL
07.2007 - 01.2009 Rohde & Schwarz GmbH München
07.2007 - 12.2007
Softwareintegration im Projekt M3TR (Taktisches Truppenfunkgerät) :
Taktisches Truppenfunkgerät M3TR:
Dual Prozessor System, PPC Familie
Betriebssysteme : OSE 4.0, VxWorks 6.4
Programmiersprache : C++, STL
Testenvironment : Lauterbach T32, Systemsimulation unter Win32, Visual C++ 2003
Software Version Management : Rational ClearCase 7.0
Eine Besonderheit in diesem Projekt ist, dass in der Software-
integration nicht nur die üblichen Aufgaben bearbeitet werden,
sondern auch teilweise Entwicklungsaufgaben (selbstständige Bugfixes,
Redesign und Neuerstellung von einzelnen Modulen) wahrgenommen werden.
Der Grund ist, dass sich die ursprünglichen Entwickler zum Teil nicht
mehr im Projekt befinden.
01.2008 - 01.2009 :
SW-Entwicklung im Projekt M3TR im Teilprojekt "IP over Air (IPoA)".
Die Funktionalität IPoA ist ein propetiärer Protokollstack für die ISO/OSI
Layer 2 bis 4, der dem M3TR Radio eine IP Funktionalität hinzufügt. IPoA
befindet sich auf einem separaten Controller Board (PPC 405, VxWorks 6.4)
und kommuniziert mit dem Radio Kommunikationssystem Controller (MPC 860,
OSE 4.0) über ein Dual Port Ram.
Das PPC Controllerboard kommuniziert mit
einem PC/Router über eine Ethernetschnittstelle mit einem LAN.
Die Protokollumsetzung erfolgt folgendermassen:
LAN nach Air-Network:
Eth-IP-TCP(UDP)-Application --> RadioWaveform-LLC-IP-TCP(UDP)-Appl.
und vice versa.
Aufgabe:
Erweiterung des IPoA Protokollstacks um den Logical Link Control Layer
(OSI Layer 2) mit einem ARQ Mechanismus
10.2006 - 03.2007 Siemens Networks GmbH Ulm
04.2007 - 06.2007 Nokia Siemens Networks GmbH Ulm
Projekt Core Controller NodeB (UMTS Mobilfunknetz)
Der Core Controller (CC) ist Bestandteil des NodeB (Basisstation im
UMTS Mobilfunknetz) und stellt das Interface (Iub-Interface) zum Radio
Network Controller (RNC) dar.
Die Funktionalität des CC-Boards (MPC 8541, UTOPIA2, RT-Linux (Kernel 2.6.x),
GNU C++ 3.0) beinhaltet einen ATM-Switch (AAL2, AAL5) und ein Interworking
System (IP-ATM). Vorhandene physikalische Schnittstellen : E1/J1/T1, STM1,
electrical Ethernet 1000BASE-SX/L, optical Ethernet 1000BASE-T.
Aufgabe : Erstellung von Komponenten des automatisierten Test-Environments
(Target, Host, Mess-Equipment) für Hardware-Integration, Software-Integration und
Performance-Test.
10.2006 - 05.2007
Erstellung von Tcl-Skripts zur Testautomatisierung der Surpass HiD 3120.
Die Ansteuerung der Surpass HiD 3120 erfolgt über SNMP.
Erstellung eines Tcl-Skriptes zur Abfrage von Statusinformationen
und zum automatischen Laden einer Systemkonfiguration. Für die
Kommunikation zum Messgerät wurde Net-SNMP verwendet.
Erstellung einer API in Tcl für die IP- und ATM Funktionalität des AX4000.
Die API setzt auf der Tcl-Library von Spirent auf.
06.2007
Erstellung einer Demo zum Thema PWE3 (Packet Wire Emulation)
12.2004 - 07.2006 Contec GmbH Darmstadt / Datacard Group Minneapolis
Projekt PB6500 :
Personalisierungsstation für Reisepässe/Personalausweise
Die Personalisierungsstation besteht aus diversen Modulen, von denen jedes
eine definierte Aufgabe erfüllt (Input Station, Output Station, Laser Engraver,
Inkjet Drucker, RFID-Chip Closer Modul(Chipprogrammierung und Schliessen
des geöffneten Booklets), Leafer(Aufblättern der Booklets).
Ein zentraler Controller PC (Windows XP) steuert die Produktion, wobei
die Module als Server agieren (Anbindung über TCP/IP).
Die Module steuern den Transport des Booklets durch Optosensoren und
Schrittmotoren. Auf dem Mainboard kommt ein PPC405 zum Einsatz.
Aufgabe: Entwicklung von Modulfirmware (VxWorks 5.5, Tornado 2.2, GNU C++ 3.0 mit
Standard Template Library STL)
12.2004 - 01.2005
Einarbeitung mit Workshop
02.2005 - 06.2005
Erstellung eines C++-Frameworks für die Modul-Firmware
07.2005 - 10.2005
Erstellung der Betaversion der Modulfirmware (nur Transport Funktionalität):
11.2005
Integration aller Module und des zentralen Controllers:
12.2005 - 02.2006
Erstellung der Releaseversion der Modulfirmware:
03.2006 - 07.2006
Inbetriebnahme/Systemtest/Dokumentation der kundenspezifischen Personalisierungsstationen
03.2004 - 09.2004
- Service für kleinere Netzwerke (Hardwarekonfiguration, Softwareinstallation,
Fehlerbehebung, Routerkonfiguration, Troubleshooting, Beratung)
- Analyse und Erstellung eines Gutachtens für die Software eines elektronischen
Kassensystemes für das Gastronomie- und Hotelgewerbe (Desktop-PC mit Touchscreen)
bezüglich der Qualität der vorhandenen Software
03.2000 - 01.2004 Siemens AG ICN : XpressLink (SDSL,SHDSL)
03.2000 - 09.2000
Devicedriver SDSL/SHDSL linecard
- Design eines Devicedrivers für eine 16-fach SDSL und SHDSL linecard
- Modellierung der Klassen (C++ , Visual C++)
- Codierung, Test und Dokumentation
10.2000 - 02.2001
Onboard-Menüsystem (C++) zur direkten Steuerung des Devicedrivers der SDSL/SHDSL linecard
03.2001 - 02.2004
Erstellunhg eines PC-Tools
Testenvironment für automatisierte Messdatenerfassung und Steuerung des Devicedrivers
der SDSL/SHDSL linecard
- Target : WindowsXP/2000/NT (Win32)
- Programmiersprache : C
- Environment: National Instruments LabWindows/CVI
- Architektur: Multithreading-Application (Win32). Threads kommunizieren über
Messages, propetiäre API zur Realisierung der Messages und der Threadsynchronisierung
Devicedriver für Linesimulatoren : NI-IVI, NI-VISA, GPIB
Bis 2000 : Anstellung Siemens AG München
Developer für Embedded Realtime Systems
Senior Developer Java/C++
- Realtime Embedded Systems:
Analyse, Design (OOD), Programmierung (OOP), Unit-Test, Dokumentation, Wartung
- Studien, Konzepte, Spezifikationen für Embedded Systems
- Entwicklung von PC-Tools zum automatisierten Test von Microcontroller-
Baugruppen
- Layer 2/3 Protocolstacks
- Mobilfunk eNodeB (LTE) C-Plane
- Entwicklung von Applications in Java SE, C++/Qt
- Entwicklung von Android Apps
- Entwicklung von Java APIs
- Entwicklung von Java Middleware
- Entwicklung von Java Frontend fur 3D Globus
- C++ Standard Template Library
- Design Patterns
- Qt 5
- Boost Library (C++)
- Cpp Unit
- JUnit
- Mockito
- Wiremock
- Java SE 11 Framework
- Android Framework
- Samsung SPen SDK 3.1.4 für Android
- NASA World Wind Java 2.1.0
- OOA, OOD, OOP
- UML 2.0
- XML
- XML Schema (xsd)
- JAXB
- Context and Dependeny Injection (CDI)
- JSON
- Eventgesteuerte Programmierung
- Multithreading Programmierung unter Windows NT/2000/XP
- Multithreading Programmierung unter Linux in Java
- ISO/OSI Layer
- TCP/IP
- ITU-T G.991.2 (SHDSL)
- Interchangable Virtual Instruments (IVI) Model
- ANSI/IEEE 488.2 (Virtual Instruments System Architecture VISA)
- SNMPv3
- TFTP
- PWE3 (RFC 4717)
- ATM, AAL2, AAL5
- STP, RSTP, MSTP
- MISRA C 1998
- MISRA C++ 2008
- Valgrind
- SCRUM (agile SW Entwicklung)
- Model Driven Development
- Sparx Enterprise Architect
- Topcased
- Rational DOORS
- Jira
- Confluence
- Bitbucket
- Microsoft Office
- Microsoft Visual C++ 2003
- Microsoft Visual Studio 2003/2005
- Eclipse /CDT
- Android Develpment Tools (Eclipse)
- Android Studio
- Eclipse Ganymede/Helios (J2SE)
- QtCreator
- QtDesigner
- Apache TomCat 6
- Netbeans IDE
- IntelliJ Idea
- National Instruments LabWindows/CVI
- ActiveState Kommodo (IDE für Scriptsprachen)
- Microtec C-Compiler/Linker
- GNU-C/C++ Compiler
- Windriver C/C++ Compiler
- Windriver Tornado 2.2
- Windriver Workbench 3
- Wireshark
- ClearCase
- CVS, WinCVS
- SVN
- Git
- Maven
- Gradle
- Ansible
- Doxygen
- Hitex-ICE
- Lauterbach T32
- VisionICE
- Spirent (Adtech) AX4000
- Surpass (Seabridge) HiD 3120
- Vaadin 6 (Java Web Application Framework für
Rich Internet Applications (RIA)
- Hudson/Jenkins (Continous Integration)
- Bouncy Castle (Java Framework)
ISO/OSI Layer 2 :
- Spanning Tree Protocol (STP)
- Rapid Spanning Tree Protocol (RSTP)
- Multiple Spanning Tree Protocol (MSTP)
- Realtime Publish Subscribe Protocol (RTPS)
Mobilfunk:
- S1,
- X2,
- RRC
Direktester geht's nicht! Ganz einfach Freelancer finden und direkt Kontakt aufnehmen.
"Die Zusammenarbeit klappte von Anfang sehr gut und reibungslos. Die entwickelte App entspricht voll und ganz unserer Spezifikation und erfüllt alle Anforderungen. Beurteilung für den Entwickler in Bezug auf Kommunikation und Fachkompetenz: Note 1."
— Projekt Android Tablet App im Bereich Productivity, 02/15 - 05/15 Referenz durch Geschäftsführer, Gebrüder Hörner Bauschutztechnik GmbH, vom 18.06.15
"Der Consultant unterstützte unser Team bei der Portierung des Multiple Spanning Tree auf Layer 2 Switches. Er hat sich in kurzer Zeit in die komplexe Thematik eingearbeitet und hat seine Aufgabe termingerecht zu unser vollsten Zufriedenheit bearbeitet."
— Projekt Portierung des Multiple Spanning Tree Protokolls auf La, 10/09 - 06/10
Referenz durch Head of Development Embedded Software, Spezialist für Automatisierungs- und Netzwerktechnologie, vom 06.07.10