...

Ich berate und unterstütze Sie und Ihr Team bei der Softwareentwicklung in Ihrem Unternehmen und remote aus meinem Büro in Bayreuth.

Schwerpunkt der zuletzt durchgeführten Projekte war die Softwareentwicklung mittels C++17 im Embedded-Linux-Umfeld in Verbindung mit einer Testing-Umgebung in Python. Zwecks Feature-/Defect-Tracking, Implementierung sowie Continuous-Integration/-Delivery kam u.a. GitLab zum Einsatz; Microsoft Teams wurde zur Kommunikation verwendet.

Hier ein kurzer Überblick zu Ausbildung, Erfahrung im Bereich Softwareentwicklung und wissenschaftlichen Publikationen:

Ausbildung

07/2004 - 04/2012
07/2004 - 04/2012
Dr. rer. nat. (Universität Bayreuth)
Dr. rer. nat. (Universität Bayreuth)
Inhalte
Forschung & Entwicklung, Promotion und Lehre am Informatik-Lehrstuhl Robotik und eingebettete Systeme.
Position
Doktorand; Wissenschaftlicher Mitarbeiter
Abschlussbericht
Dissertation: 'Wissens- und sensorbasierte geometrische Rekonstruktion' - Schnelle, dreidimensionale geometrische Rekonstruktion von Objekten unbekannten Aufenthaltsorts und unbekannter Pose (z.B. Menschen) innerhalb geometrisch bekannter Räume (z.B. industrielle Roboter-Arbeitszellen) mittels mehrerer Sensoren (z.B. 2D/3D-Kameras) und zusätzlicher Ausschlusskriterien (z.B. Volumen, Dicke, Schwerkraft, Geschwindigkeit). Implementiert in C/C++ unter Linux. Verwendung einer Voxelraum-Datenstruktur. Evaluiert bei deutschem Automobilhersteller.
Schwerpunkte
Forschung & EntwicklungEingebettete SystemeRobotikMaschinelles SehenDatenstrukturenAlgorithmenLehre (u.a. Softwarepraktikum in C++)
10/1999 - 03/2004
10/1999 - 03/2004
Dipl.-Inf. (TU Kaiserslautern)
Dipl.-Inf. (TU Kaiserslautern)
Inhalte
Studium der Angewandten Informatik mit Vertiefung Eingebettete Systeme; Hilfswissenschaftliche Tätigkeiten (Softwareentwicklung in Java und Perl; Aufsetzen eines File/Print-Servers mittels Debian-Linux).
Position
Student; Hilfswissenschaftlicher Mitarbeiter
Abschlussbericht
Diplom-Arbeit: 'Entwicklung und Analyse von Algorithmen zur Beschreibung der Kinematik und Kinetik parallelkinematischer Strukturen' - Mathematische Modellierung und Ansteuerung (Vorwärts-/Rückwärtstransformation) beliebiger Parallelkinematiken (Parallelroboter, z.B. Hexapod, Tripod). Mathematischer Hintegrund: Iterative Nullstellenbestimmung bzw. Fehlerminimierung eines ggf. überbestimmten Gleichungssystems. Verwendung des gedämpften Newton-Raphson- und Householder-Verfahrens. Codegenerierung (Java/C++) der dreidimensionalen Zusammenhänge (= Gleichungssysteme) von Gelenken/Antrieben und verbundenen Roboter-Gliedern mithilfe der Software 'Wolfram Mathematica'. Implementiert in Java und C++.
Schwerpunkte
Eingebettete SystemeComputer GrafikRobotikSoftwareentwicklung

Softwareentwicklung

Seit 11/2013
Seit 11/2013
Selbständig (Freelancer)
Selbständig (Freelancer)
Inhalte
Entwicklung von Softwarekomponenten für Kunden: Von Beratung über Konzeption und Softwareentwicklung bis zum Testing. Siehe nachfolgenden Abschnitt Projekthistorie.
Positionen
Beratung, Konzeption, Softwareentwicklung und Testing
Ort
Bayreuth und Deutschland (vor Ort und Remote)
Branchen
IndustrieEnergieAutomotiveUnterhaltungForschung & Entwicklung
Schwerpunkte
Eingebettete Systeme2D/3D-Bild- und SensordatenverarbeitungAlgorithmenAutomatisierungVisualisierungBenutzerschnittstellenForschung & Entwicklung
Programmiersprachen
C/C++PythonJavaBashDart (mit Flutter)C#TypeScriptJavaScriptPerl
Betriebssysteme
Embedded LinuxLinux (z.B. Ubuntu, Debian)Microsoft WindowsAndroid
Werkzeuge
CMakegitGitLabGitHubAtlassian (Jira, Bitbucket, Confluence)DockerQT CreatorMicrosoft Visual StudioVSCodeEclipsesvnJupyter notebookJSONJSON SchemaXMLClean CodeOOA/OOD/OOP...
09/2012 - 08/2013
09/2012 - 08/2013
EXIST Gründerstipendium (BMWi)
EXIST Gründerstipendium (BMWi)
Inhalte
Förderung der Umsetzung der Gründungsidee SpatioSense. Für Details siehe im nachfolgenden Abschnitt Projekthistorie -> Eigenes Projekt: Digital Shop Assistant
Positionen
Konzeption und Softwareentwicklung
Ort
Bayreuth
Programmiersprachen
C/C++Java
Betriebssysteme
Microsoft WindowsAndroid
07/2004 - 04/2012
07/2004 - 04/2012
Angestellter wissenschaftlicher Mitarbeiter
Angestellter wissenschaftlicher Mitarbeiter
Inhalte
Implementierung: 3D-Rekonstruktion mittels Multi-Kamera-System unter Linux mit C/C++; Evaluation bei deutschem Automobilhersteller - siehe vorherigen Abschnitt Ausbildung -> Universität Bayreuth, Abschluss: Dr. rer. nat.
Positionen
Forschung, Konzeption und Softwareentwicklung
Ort
Universität Bayreuth
Branche
Forschung & Entwicklung
Programmiersprachen
C/C++JavaBashPerl
Betriebssysteme
Linux
Werkzeuge
EclipsemakeSVNQTgcc/g++
09/2001 - 01/2004
09/2001 - 01/2004
Angestellter hilfswissenschaftlicher Mitarbeiter
Angestellter hilfswissenschaftlicher Mitarbeiter
Inhalte
a) Implementierung einer Javabasierten Webapplikation (Java-Applet) mit Perl-Backend zur interaktiven Darstellung der Daten einer Wetterstation: Diagramme und Verläufe von Messwerten; b) Linuxbasierter Datei- und Druckserver
Positionen
Softwareentwicklung und IT/Admin
Ort
TU Kaiserslautern
Programmiersprachen
JavaPerl
Betriebssysteme
Microsoft WindowsDebian Linux

Projekthistorie

Seit 05/2022
Seit 05/2022
Integration von FPGAs in Embedded Linux C/C++ Software im Filmkamera-Umfeld
Integration von FPGAs in Embedded Linux C/C++ Software im Filmkamera-Umfeld
Projektinhalte
Entwicklung und Anpassung von Linux-Treibern; Unterstützung bei der Weiterentwicklung von Embedded-Linux Software und benötigten Werkzeugen.
Position
Konzeption, Softwareentwicklung und Testing
Branche
Kamerahersteller / Filmbranche
Skills
CC++14Embedded LinuxYoctoUbuntuVS CodeGITGitLabAgileScrumAtlassianJiraConfluenceCMakeCI/CDDockerJenkinsBashPython
09/2020 - 04/2022
09/2020 - 04/2022
Konzeption, Entwicklung und Testing von C/C++/Qt-Softwarekomponenten für Multi-Sensor-Device (Embedded Linux)
Konzeption, Entwicklung und Testing von C/C++/Qt-Softwarekomponenten für Multi-Sensor-Device (Embedded Linux)
Projektinhalte
Planung, Entwicklung und Analyse von Embedded-Softwarekomponenten in C/C++ unter Linux (Ubuntu und Embedded) für Multi-Sensor-Device im Industrie- und Automatisierungs-Umfeld.
Position
Konzeption, Softwareentwicklung und Testing
Branche
Sensorhersteller / Automatisierung
Skills
CC++17QtEmbedded LinuxUbuntuVS CodeGITGitLabAtlassian BitbucketPolarionJSONJSON SchemaCMakeCI/CDDockerBashPythonPyTestcppcheckclang-formatclang-tidyCatch2
05/2019 - 06/2020
05/2019 - 06/2020
Konzeption und Entwicklung von C/C++/Qt-Softwarekomponenten für Industriekameras (Embedded Linux)
Konzeption und Entwicklung von C/C++/Qt-Softwarekomponenten für Industriekameras (Embedded Linux)
Projektinhalte
Planung, Entwicklung und Analyse von Embedded-Softwarekomponenten in C/C++ unter Linux (Ubuntu und Embedded) mit Eclipse für Sensoren im Industrie- und Automotive-Umfeld.
Position
Konzeption, Softwareentwicklung
Branche
Sensorhersteller / Automatisierung
Skills
CC++QtEmbedded LinuxUbuntuWindowsEclipseGITAtlassian BitbucketPolarionJenkinsRedisJSON
01/2019 - 05/2019
01/2019 - 05/2019
Konzeption, Entwicklung und Test von Algorithmen in Python und C++ im Embedded-Linux-Umfeld für Industriekameras
Konzeption, Entwicklung und Test von Algorithmen in Python und C++ im Embedded-Linux-Umfeld für Industriekameras
Projektinhalte
Planung und Testing von Algorithmen in Python und Umsetzung in C/C++ mit Microsoft Visual Studio und VSCode im Embedded-Linux-Umfeld für Industriekameras.
Position
Konzeption, Softwareentwicklung und Testing
Branche
Sensorhersteller / Automatisierung
Skills
CC++PythonEmbedded LinuxUbuntuWindowsMicrosoft Visual StudioMicrosoft VSCodeSVNPolarionAlgorithmenentwicklungpybind11Jupyter-NotebookMVTec HalconHDevelopUnittestsJSONJSON SchemaSCons
06/2018 - 11/2018
06/2018 - 11/2018
Konzeption, Entwicklung und Test von Algorithmen in Python und C++ im Embedded-Linux-Umfeld für Industriekameras
Konzeption, Entwicklung und Test von Algorithmen in Python und C++ im Embedded-Linux-Umfeld für Industriekameras
Projektinhalte
Planung und Testing von Algorithmen in Python und Umsetzung in C/C++ mit Microsoft Visual Studio und VSCode im Embedded-Linux-Umfeld für Industriekameras.
Position
Konzeption, Softwareentwicklung und Testing
Branche
Sensorhersteller / Automatisierung
Skills
CC++PythonEmbedded LinuxUbuntuWindowsMicrosoft Visual StudioMicrosoft VSCodeSVNPolarionAlgorithmenentwicklungpybind11Jupyter-NotebookMVTec HalconHDevelopUnittestsJSONJSON SchemaSCons
03/2018 - 06/2018
03/2018 - 06/2018
Konzeption und Entwicklung von C/C++/Qt-Softwarekomponenten für Industriekameras (Embedded Linux)
Konzeption und Entwicklung von C/C++/Qt-Softwarekomponenten für Industriekameras (Embedded Linux)
Projektinhalte
Planung, Entwicklung und Analyse von Embedded-Softwarekomponenten in C/C++ unter Linux (Ubuntu und Embedded) mit Eclipse für Sensoren im Industrie- und Automotive-Umfeld.
Position
Konzeption, Softwareentwicklung
Branche
Sensorhersteller / Automatisierung
Skills
CC++QtEmbedded LinuxUbuntuWindowsEclipseGITAtlassian BitbucketPolarionJenkinsRedisJSON
10/2017 - 03/2018
10/2017 - 03/2018
Konzeption und Entwicklung von C++/Qt/Python-Softwarekomponenten für Energiespeicher (Embedded Linux)
Konzeption und Entwicklung von C++/Qt/Python-Softwarekomponenten für Energiespeicher (Embedded Linux)
Projektinhalte
Planung, Entwicklung und Testing von Werkzeugen und Softwarekomponenten zum Einsatz von Z-Wave-Hardware ('Smarthome') in einer Embedded-Linux-Umgebung. Portierung von C#-Programmen vom Windows-Desktop nach C/C++ für Embedded Linux. Automatisierung von Prozessen und Abläufen mittels Python.
Position
Konzeption, Softwareentwicklung und Testing
Branche
Energiebranche
Skills
CC++QtC#PythonBashWindowsEmbedded LinuxDebianQt CreatorMicrosoft VSCodeClean CodeGITGitLabZ-WaveMQTT (Message broker)JSONBackendDebian-packagingUnittests TestingAOP (Aspect-oriented programming)Smarthome
06/2017 - 09/2017
06/2017 - 09/2017
Konzeption und Entwicklung von Software in C# zur Testautomatisierung im Embedded Linux/Automotive-Umfeld.
Konzeption und Entwicklung von Software in C# zur Testautomatisierung im Embedded Linux/Automotive-Umfeld.
Projektinhalte
Planung und Entwicklung neuer Features in C#/.NET unter Windows für ein Test-Framework zum automatisierten Testen von Software im Embedded Linux/Automotive-Umfeld.
Position
Konzeption und Softwareentwicklung
Branche
Auto-Radio/Navigationssysteme / Automotive-Zulieferer
Skills
C#.NETPythonC++Microsoft Visual StudioClean CodeAtlassian ConfluenceAtlassian JiraGITSVNWindowsEmbedded LinuxXMLTestingUnittestsAOP (Aspect-oriented programming)SWIG
03/2017 - 07/2017
03/2017 - 07/2017
Konzeption und Entwicklung von C++/Qt-Softwarekomponenten für 3D-Kameras und -Sensoren (Embedded Linux)
Konzeption und Entwicklung von C++/Qt-Softwarekomponenten für 3D-Kameras und -Sensoren (Embedded Linux)
Projektinhalte
Planung, Entwicklung und Analyse von Embedded-Softwarekomponenten in C/C++ unter Linux (Ubuntu und Embedded) mit Eclipse für Sensoren im Industrie- und Automotive-Umfeld.
Position
Konzeption und Softwareentwicklung
Branche
Sensorhersteller / Automatisierung
Skills
CC++QtEmbedded LinuxUbuntuEclipseWindowsGITGitHubAtlassian BitbucketPolarionBackendClean CodeJenkinsRedisJSONCMake
12/2016 - 05/2017
12/2016 - 05/2017
Visual C# / WPF GUI für Windows zum Testen von Software im Embedded Linux/Automotive-Umfeld.
Visual C# / WPF GUI für Windows zum Testen von Software im Embedded Linux/Automotive-Umfeld.
Projektinhalte
Planung und Entwicklung einer Desktop-GUI für Windows in Visual C# / WPF (MVVM Pattern) für manuelle API-Tests im Embedded Automotive Umfeld.
Position
Konzeption und Softwareentwicklung
Branche
Auto-Radio/Navigationssysteme / Automotive-Zulieferer
Skills
Visual C#WPFMVVMPythonC++Microsoft Visual StudioScrumAtlassian ConfluenceAtlassian JiraGITSVNWindowsLinuxFrontend TestingSWIG
01/2016 - 11/2016
01/2016 - 11/2016
Entwicklung von C++/Qt-Windows-GUI-Komponenten und C++/Qt-Embedded-Softwarekomponenten für 3D-Kameras und -Sensoren
Entwicklung von C++/Qt-Windows-GUI-Komponenten und C++/Qt-Embedded-Softwarekomponenten für 3D-Kameras und -Sensoren
Projektinhalte
Entwicklung von Custom GUI-Komponenten in C/C++ und Qt unter Windows mit QtCreator (7 Monate). Entwicklung von Embedded-Komponenten für Sensoren in C/C++ und Qt unter Linux mit Eclipse (4 Monate).
Position
Konzeption und Softwareentwicklung
Branche
Sensorhersteller / Automatisierung
Skills
CC++QtWindowsEmbedded LinuxUbuntuEclipseQt CreatorSVNGITAtlassian BitbucketPolarionFrontendBackendJenkinsJSON
02/2015 - 12/2015
02/2015 - 12/2015
Eigenes Projekt: Entwicklung von Android-Apps
Eigenes Projekt: Entwicklung von Android-Apps
Projektinhalte
siehe unten, Abschnitt 'Publizierte Android-Apps'
Position
Idee, Planung, Umsetzung, Veröffentlichung
Branche
Consumer
Skills
JavaAndroidAndroid StudioSQLiteOOA, OOD, OOPAnimationVolleyGradleWindowsFrontend (GUI)Google Play StoreGoogle Play ServicesGoogle Cloud Messaging (GCM)Google AdMob
06/2014 - 01/2015
06/2014 - 01/2015
Entwicklung von Android-App GUI-Komponenten für Smartphones und Tablets
Entwicklung von Android-App GUI-Komponenten für Smartphones und Tablets
Projektinhalte
Mitentwicklung an zwei Consumer-Apps für Smartphones und Tablets im Scrum-Team: Implementierung von Custom GUI-Komponenten, u.a. zum Laden und intuitiven Bearbeiten von Bildern (Skalierung, Drehung, Filterung, Ausrichtung) mittels Touch-Gesten.
Position
Konzeption und Softwareentwicklung
Branche
App-Hersteller: Android, iOS, Windows Phone
Skills
AndroidJavaRenderscriptSQLiteGsonGradleGoogle Play ServicesVolleyEclipseAndroid StudioRedmineScrumGITWindowsFrontendCrashlytics
09/2012 - 05/2014
09/2012 - 05/2014
Eigenes Projekt: Digital Shop Assistant
Eigenes Projekt: Digital Shop Assistant
Projektinhalte
System zur Unterstützung des Verkaufspersonals im Fahrradfachhandel durch Einsatz von Tablet-Computern: Aktuelle und multimediale Produktinformationen (Bilder, Videos), Verfügbarkeit/Lieferbarkeit, Cross-Selling sind für den Verkäufer im Kundengespräch direkt griffbereit und können zur Beratung eingesetzt werden. Zusätzliche Multimediasäulen bieten die Möglichkeit, die Inhalte der Tablet-Computer im Großformat zu präsentieren. Integrierte BikeFitting-Erweiterung: Mit Hilfe eines Stereo-Kamerasystems kann der Kunde innerhalb von 2-3 Minuten dreidimensional vermessen und auf Basis dieser Vermessung ein passendes Fahrrad sowie der erforderlichen Einstellungen (Sattelhöhe, Vorbau, ...) ermittelt werden. Gefördert durch EXIST Gründerstipendium des BMWi 2012-2013. Preisträger beim IKT Gründerwettbewerb, IFA 2014, Berlin. Ausgestellt auf der CeBIT 2016, Hannover.
Position
Idee, Planung, Umsetzung Prototyp
Branche
Consumer; Vertrieb
Skills
JavaAndroidC++wxWidgetsEclipseMicrosoft Visual StudioWindowsAlgorithmen & DatenstrukturenComputer VisionMarker-ErkennungMobile AppsVisualisierungKamerakalibrierungEigenOpenCVGUISensordatenverarbeitungStart-UpBMWi EXIST Gründerstipendium 2012/2013IKT Innovativ Gründerwettbewerb 2014Messeaussteller CeBIT 2016

Publizierte Android Apps

07/2015
07/2015
Trainiere Einmaleins - 1x1
Trainiere Einmaleins - 1x1
Inhalte
Lernspiel für Kinder zum Erlernen des 1x1
Store-Eintrag
Google Play Store: Download
05/2015
05/2015
Minigolf Punktekarte
Minigolf Punktekarte
Inhalte
Digitaler Punkte-Notizblock zum Minigolfen
Store-Eintrag
Google Play Store: Download

Wissenschaftliche Publikationen

07/2012
07/2012
S. Kuhn:
Wissens- und sensorbasierte geometrische Rekonstruktion
S. Kuhn:
Wissens- und sensorbasierte geometrische Rekonstruktion
Typ
Dissertation
In
Universität Bayreuth, 2012
07/2012
07/2012
M. Hänel, S. Kuhn, D. Henrich, L. Grüne, J. Pannek:
Optimal Camera Placement to Measure Distances Regarding Static and Dynamic Obstacles
M. Hänel, S. Kuhn, D. Henrich, L. Grüne, J. Pannek:
Optimal Camera Placement to Measure Distances Regarding Static and Dynamic Obstacles
Typ
Journal
In
International Journal of Sensor Networks Vol. 12, No. 1, pp. 25-36 (2012)
05/2012
05/2012
M. Hänel, M. Fischer, S. Kuhn, D. Henrich:
Sensor- and Plausibility-based Surveillance of Human/Robot-Workspaces
M. Hänel, M. Fischer, S. Kuhn, D. Henrich:
Sensor- and Plausibility-based Surveillance of Human/Robot-Workspaces
Typ
Conference
In
ROBOTIK 2012, 7th German Conference on Robotics, Publisher: VDE, Year: 2012
03/2010
03/2010
S. Kuhn, D. Henrich:
Multi-View Reconstruction in-between Known Environments
S. Kuhn, D. Henrich:
Multi-View Reconstruction in-between Known Environments
Typ
Technical Report
In
Universität Bayreuth
11/2009
11/2009
S. Kuhn, D. Henrich:
Multi-view Reconstruction of Unknown Objects within a Known Environment
S. Kuhn, D. Henrich:
Multi-view Reconstruction of Unknown Objects within a Known Environment
Typ
Conference
In
Advances in Visual Computing, 5th International Symposium, ISVC 2009, Las Vegas, NV, USA, November 30 - December 2, 2009, Proceedings, Part I
07/2009
07/2009
S. Kuhn, D. Henrich:
Multi-View Reconstruction of Unknown Objects in the Presence of Known Occlusions
S. Kuhn, D. Henrich:
Multi-View Reconstruction of Unknown Objects in the Presence of Known Occlusions
Typ
Technical Report
In
Universität Bayreuth
06/2008
06/2008
D. Henrich, M. Fischer, T. Gecks, S. Kuhn:
Sichere Mensch/Roboter-Koexistenz und Kooperation
D. Henrich, M. Fischer, T. Gecks, S. Kuhn:
Sichere Mensch/Roboter-Koexistenz und Kooperation
Typ
Conference
In
Robotik 2008, München, Germany
10/2007
10/2007
S. Kuhn, D. Henrich:
Fast Vision-Based Minimum Distance Determination Between Known and Unknown Objects
S. Kuhn, D. Henrich:
Fast Vision-Based Minimum Distance Determination Between Known and Unknown Objects
Typ
Conference
In
Intelligent Robots and Systems; IROS 2007, IEEE/RSJ International Conference on Intelligent Robots and Systems, pp. 2186-2191, San Diego, CA, USA, October 2007
09/2006
09/2006
S. Kuhn, T. Gecks, D. Henrich:
Velocity control for safe robot guidance based on fused vision and force/torque data
S. Kuhn, T. Gecks, D. Henrich:
Velocity control for safe robot guidance based on fused vision and force/torque data
Typ
Conference
In
IEEE Conference on Multisensor Fusion and Integration for Intelligent Systems, Heidelberg, Germany, Year: 2006
05/2006
05/2006
D. Henrich, S. Kuhn:
Modeling Intuitive Behavior for Safe Human/Robot Coexistence and Cooperation
D. Henrich, S. Kuhn:
Modeling Intuitive Behavior for Safe Human/Robot Coexistence and Cooperation
Typ
Conference
In
IEEE International Conference on Robotics and Automation, Orlando, FL, USA, ICRA 2006