Freelancer: Softwareentwicklung
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
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
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