C++ Software Engineer/Architect, modern C++ und CMake Experte mit Erfahrung im Modernisieren von C++ Codebases
Aktualisiert am 06.01.2025
Profil
Freiberufler / Selbstständiger
Remote-Arbeit
Verfügbar ab: 01.03.2025
Verfügbar zu: 100%
davon vor Ort: 100%
C++
CMake
C
C++23
C++20
C++17
C++14
C++98
C++11
Conan 2
Python
Border Gateway Protocol
Codebase-Modernisierung
codebase modernization
agile software development
Agile Softwareentwicklung
Linux
Windows
Objektorientierung
object oriented
TDD
Behavior Driven Development
Deutsch
Muttersprache
Englisch
Verhandlungssicher in Wort und Schrift
Computer
Fließend

Einsatzorte

Einsatzorte

Home-Office (+10km) Frankfurt am Main (+20km)
Deutschland

Ich arbeite vornehmlich remote (= 100%).

(Gelegentliche Dienstreisen wären aber möglich.)

möglich

Projekte

Projekte

3 Jahre 4 Monate
2021-09 - heute

Modernisierung von C++ Legacy-Codebase / CMake Einführung / Dependency-Managment

Senior Software Engineer C++ CMake Conan 2 ...
Senior Software Engineer

  • Softwareentwicklung in C++17/20/23 und CMake
  • Modernisierung und Modularisierung der bestehenden Software-Strukturen und Beseitigung Technischer Schulden
  • Portierung von Teilen der Software von Windows auf Linux und in die Cloud
  • 3rd-party Dependency-Management mit Conan 2
  • regelmäßige Teilnahme (auch als Referent) an C++ Konferenzen (Meeting C++, CppCon, Pure Virtual C++)

"DentalCAD" CAD/CAD-Software für die Dental-Branche
C++ CMake Conan 2 Git Bitbucket Atlassian JIRA
exocad GmbH
Home-Office
8 Jahre 2 Monate
2013-07 - 2021-08

Startup-Aufbau von Netzwerk-Analyse Firma

Senior Software Engineer / Architect C++ C++11 C++14 ...
Senior Software Engineer / Architect

  • Softwareentwicklung in C++11/14/17/20 und CMake
  • Design und Implementierung von Backend-Software / Netzwerk-Protokollen (BGP-4, Netflow, Netlink), Build- und CI-Systemen (modern CMake, Jenkins) etc.
  • regelmäßige Teilnahme (auch als Referent) an C++ Konferenzen (Meeting C++, Italian C++, Pure Virtual C++)

Kollaborations-Engine für Internet-Traffic-Routing ISP-Network Traffic-Analyse
C++ C++11 C++14 C++17 CMake Border Gateway Protocol TCP/IP UDP Tcpdump UML 2.0 Agile Softwareentwicklung Git GitLab GitHub Redmine Boost GoogleTest Jenkins Linux Ubuntu Debian
BENOCS GmbH
Home-Office
9 Monate
2012-10 - 2013-06

Mitarbeit im Projekt "PaDIS"

Software Engineer C++ C++11 CMake ...
Software Engineer

  • Softwareentwicklung mit C++11 und CMake

Kollaborations-Engine für Internet-Traffic-Routing
C++ C++11 CMake Border Gateway Protocol TCP/IP UML 2.0 Agile Softwareentwicklung Git Redmine Boost Jenkins Linux Ubuntu Debian
Deutsche Telekom AG, Netzwerktechnologie
Berlin
1 Jahr 9 Monate
2011-04 - 2012-12

Entwicklung von Smartphone Apps

Wiss. Mitarbeiter mit Project-Verantwortung C++ C++98 Java ...
Wiss. Mitarbeiter mit Project-Verantwortung

  • Mitarbeit an Forschungsprojekten im Bereich Ambient Assisted Living (AAL) und e-Health
  • Entwicklung von Smartphone Apps und Software für Microsoft Kinect
  • Präsentation von Forschungsergebnissen auf Messen (IFA, CeBIT) und im Instituts-eigenen Showroom (Musterwohnung für AAL)

E-Health Assistenzsysteme
C++ C++98 Java JavaScript jQuery Android Windows Linux Subversion Boost
DAI-Labor (TU Berlin)
Berlin
5 Monate
2010-11 - 2011-03

Logistik-Verwaltungstool für Koordination von LKW-Routen Planung/Verfolgung

Software Developer C# FileMaker Windows Forms ...
Software Developer
  • Entwicklung eines grafischen Verwaltungstools mit Anbindung an eine bestehende Filemaker-Datenbank, mit Auftrags-Kalender, Berechnung der sinnvollsten LKW-Beladungs- und Routenplanung, mit Routen-Visualisierung (MS Mappoint) und automatischer Auftragspapier-Erzeugung.
  • Schulung der End-Anwender in der Verwendung dieser Software
Logistikplanung
C# FileMaker Windows Forms Windows Subversion MS Excel Visual Studio 2010
Logistik-Unternehmen
Kandel, Pfalz
1 Jahr 7 Monate
2009-09 - 2011-03

Röntgen-Scanner für die automatisierte Lebensmittelkontrolle in der maschinellen Bandproduktion

Software Developer C++ C++98 Boost ...
Software Developer

  • Softwareentwicklung mit C, C++98 und C#
  • Aufbau und Restrukturierung größerer, objektorientierter SoftwareFrameworks
  • Quellcode-Optimierungen
  • Entwicklung von effizienten Algorithmen zur Bildverarbeitung (SIMD)

Röntgen-Scanner für maschinelle Bandproduktion
C++ C++98 Boost Boost.Build BJam Valgrind GCC Linux Bildverarbeitung Hudson Subversion OpenMP SIMD Optimierung Profiling
Kaiserslautern
6 Monate
2010-05 - 2010-10

Selbstkonfigurierbares und -programmierbares Hardware-Display zur Elektronik-Steuerung

Software Developer C C# Microcontroller ...
Software Developer

  • Design und Implementierung eines Kommunikations-Protokolls zwischen Konfigurations-Software und Mikrocontroller
  • Review von Code zur Steuerung eines Mikrocontrollers
  • Reviewen, Testen und Korrigieren / Überarbeiten großer Teile der Konfigurations-Software


Die Konfiguration stellt verschiedene Funktionsblöcke zur Verfügung, die (ähnlich MATLAB Simulink) graphisch über Verbindungslinien verschaltet werden können, für welche ein sinnvolles und effizientes dynamischen Line-Routing Implementiert wurde.

Hardware-Stecksystem aus frei verschaltbaren Komponenten zur Elektroniksteuerung Konfigurations-Software frei programmierbares Display
C C# Microcontroller AVR Atmel Subversion Windows Visual C++ Visual Studio 2010
Kandel, Pfalz
1 Monat
2009-11 - 2009-11

3D-Visualisierung/Rekonstruktion von menschlichen Zähnen durch CAD/CAM

Software Developer & Code-Profiler/Optimizer C++ C++98 SIMD ...
Software Developer & Code-Profiler/Optimizer

  • Review und Profiling des vorhandenen Verfahrens zur Verwacklungs-Erkennung von Kameraaufnahmen von Zähnen
  • Optimierungspotential erkennen und Optimierungen durchführen
  • Optimierung durch Verwendung von SIMD-Befehlen ("Single-Instruction-Multiple-Data")


Für die 3D-Visualisierung und Rekonstruktion von menschlichen Zähnen (zum Zwecke des Zahnersatzes) werden verschiedene Einzelbilder eines Zahnes zusammengesetzt. Diese Einzelbilder werden mit Hilfe einer "in-mouth" Kamera gemacht, die der Zahnarzt dem Patienten auf den Zahn drückt.
Die automatische Auslösung des Kamerasensors bedarf einer Verwacklungserkennung, welche effizient arbeiten muss.
"in-mouth" Kamera 3D-Visualisierung
C++ C++98 SIMD Visual Studio 2010 Visual C++ Profiling Subversion
Sirona
Kandel, Pfalz
2 Monate
2009-09 - 2009-10

Mobiles (hands-free) Interkom-System für Rettungseinsätze der Feuerwehr

Software Developer C# C Microcontroller ...
Software Developer
  • Entwicklung (mit C# und .NET) einer Windows GUI-Software zur Konfiguration eines Interkom-Systems
  • Design und Implementierung der Kommunikation zwischen GUI-Anwendung und dem auf dem Interkom-System verwendeten Microprocessor (Atmel AVR ATmega64) über einen seriellen Port (RS232).
Mobiles Interkom-System GUI-Konfigurationssoftware
C# C Microcontroller Atmel AVR Visual Studio 2008 Windows Forms
Kandel, Pfalz
4 Monate
2009-02 - 2009-05

Entwicklung anwenderfreundlicher Software zur Ansteuerung eines remote Eye-Trackers mit C++

Wiss. Hilfskraft, Angestellter in Teilzeit
Wiss. Hilfskraft, Angestellter in Teilzeit


Lehrstuhl Kognitive Neurowissenschaft der Universität Tübingen, Tübingen
4 Monate
2009-02 - 2009-05

Entwicklung von Software und Algorithmen zur Steuerung von autonomen, Fußball-spielenden Robotern

Stud. Hilfskraft, Angestellter in Teilzeit
Stud. Hilfskraft, Angestellter in Teilzeit
  • Mitglied im ?Attempto Tübingen RobotSoccer Team?
  • Entwicklung von Software und Algorithmen zur Steuerung von autonomen, Fußball-spielenden Robotern (RoboCup) mit C++
Wilhelm-Schickard-Institut für Informatik der Universität Tübingen, Tübingen),

Aus- und Weiterbildung

Aus- und Weiterbildung

7 Jahre 4 Monate
2001-10 - 2009-01

Bioinformatik-Studium

Diplom-Informatiker, Eberhard-Karls-Universität, Tübingen
Diplom-Informatiker
Eberhard-Karls-Universität, Tübingen

  • Mobile Robotik
  • angewandte Software-Entwicklung
  • Neurobiologie


Diplomarbeit: auf Anfrage, Diplom-Note: sehr gut

11 Monate
2003-08 - 2004-06

Auslandsstudienjahr in USA

University of Missouri, Columbia (MO), USA
University of Missouri, Columbia (MO), USA

  • Auslandsstudienjahr in USA mit Studium von ?computer science? 

Position

Position

  • Experte in der Softwareentwicklung mit modernem C++ und CMake
  • Software Engineer und Architect
  • Software-Design und Software-Entwicklung mit (modern) C++ und (modern) CMake
  • Modernisieren von C++ (Legacy-) Codebases
  • Beseitigung von technischen Schulden ("technical debt") in der Software-Entwicklung (speziell bei C++)
  • Einführung von Conan 2 für sinnvolles Dependency-Management

Kompetenzen

Kompetenzen

Top-Skills

C++ CMake C C++23 C++20 C++17 C++14 C++98 C++11 Conan 2 Python Border Gateway Protocol Codebase-Modernisierung codebase modernization agile software development Agile Softwareentwicklung Linux Windows Objektorientierung object oriented TDD Behavior Driven Development

Produkte / Standards / Erfahrungen / Methoden

Agile Software-Entwicklung (Kanban, SCRUM)
Experte
Extreme Programming (XP)
Experte
Objektorientierte Programmierung
Experte
Meta-(Template) Programmierung
Experte
Funktionale Programmierung
Experte
Design-Patterns
Experte
Test-getriebene Entwicklung (TDD)
Experte
Verhalten-getriebene Entwicklung (BDD)
Fortgeschritten
Clang / LLVM
Experte
GCC
Experte
MSVC / Visual Studio
Fortgeschritten
Git
Experte
Gitlab
Experte
Github
Experte
Vim
Fortgeschritten
Border Gateway Protocol (BGP)
Fortgeschritten
Jenkins
Fortgeschritten
Valgrind
Fortgeschritten
Sanitizers
Fortgeschritten
Boost
Experte
Qt
Fortgeschritten
GDB / LLDB (Cmdline-Debugger)
Fortgeschritten

Profil

Als Softwareingenieur, insbesondere im Bereich C++, mit mehr als 15 Jahren Berufserfahrung in der Softwareentwicklung, konzentriere ich mich darauf, Software zu entwerfen, die nicht nur schnell, zuverlässig und sicher, sondern auch zukunftssicher ist. In meiner bisherigen beruflichen Laufbahn ist es mir bereits mehr als einmal gelungen, alte, gewachsene C++-Codebasen zu modernisieren, um sie leichter handhabbar zu machen, neue Features einfacher hinzufügen zu können und von den neuesten Entwicklungen der Programmiersprache und Softwaretechniken im Allgemeinen zu profitieren.

Die Beseitigung von technischen Schulden (?technical debt?) bzw. deren Vermeidung ist daher einer meiner Hauptaugenmerke. Darüber hinaus setzte ich  starken Fokus und große Anstrengungen darauf, dass Software sich leicht und reproduzierbar automatisiert bauen, testen und deployen lässt. Daher rührt auch mein Engagement im Open-SourceProjekt CMake, dem de-facto Standard-Buildsystem für C++.

Kenntnisse

C++ Toolchains / Bibliotheken / Verschiedenes

  • Toolchains: GCC, Clang/LLVM, MSVC
  • Bibliotheken: Boost, Qt, diverse von Github etc.
  • Debugger: GDB, LLDB, Visual Studio Debugger, WinDbg
  • Paket-Mgmt.: Conan 2, APT, CMake FetchContent
  • Verschiedenes: Sanitizers, Fuzzers, Valgrind, GoogleTest, Catch2
  • SoftwareKonzepte: Meta-(Template-)Programmierung, Objektorientierte Programmierung, Funktionale Programmierung, Design-Patterns, Test-getriebene Entwicklung (TDD), Verhalten-getriebene Entwicklung (BDD)

Werkzeuge und verschiedene Skills

  • Plattformen: Windows, Linux (diverse, bevorzugt Debian-basiert), Android, DOS
  • IDEs: Vim, Visual Studio 2013-2022, Visual Studio Code, Notepad++
  • VCS / SCM Git (command-line, Github, Gitlab, Bitbucket), Subversion
  • Ticket-Sys: Jira, Redmine, Github Issues, Gitlab Issues
  • Verschiedene Kenntnisse: Netzwerk-Protokolle (BGP-4, IS-IS, OSPF), WireShark/tcpdump, LATEX, Office (MS-Office, LibreOffice), Bildverarbeitung (GIMP, Photoshop), UML2, agil (Kanban, Scrum)

Betriebssysteme

Linux
Experte
Windows
Fortgeschritten
Unix
Fortgeschritten
MS-DOS
Basics
Echtzeitbetriebssysteme
Basics
RTOS (Real Time OS)
Basics

Programmiersprachen

C++
Experte
C
Experte
CMake
Experte
C#
Fortgeschritten
Python
Fortgeschritten
Java
Basics
Groovy / Pipeline
Basics (meist in Form von Jenkins-CI's "Pipeline"
JavaScript
Basics
BASH / Shell
Experte
TeX, LaTeX
Fortgeschritten
HTML / CSS / JavaScript

Datenbanken

SQL
Basics

Datenkommunikation

Border Gateway Protocol (BGP)
Experte
TCP/IP
Fortgeschritten
Proprietäre Protokolle
Fortgeschritten

Hardware

Embedded Systems
Basics
Mikrocontroller
Fortgeschritten
PC
Experte

Branchen

Branchen

  • Telekommunikation
  • Medizintechnik

Einsatzorte

Einsatzorte

Home-Office (+10km) Frankfurt am Main (+20km)
Deutschland

Ich arbeite vornehmlich remote (= 100%).

(Gelegentliche Dienstreisen wären aber möglich.)

möglich

Projekte

Projekte

3 Jahre 4 Monate
2021-09 - heute

Modernisierung von C++ Legacy-Codebase / CMake Einführung / Dependency-Managment

Senior Software Engineer C++ CMake Conan 2 ...
Senior Software Engineer

  • Softwareentwicklung in C++17/20/23 und CMake
  • Modernisierung und Modularisierung der bestehenden Software-Strukturen und Beseitigung Technischer Schulden
  • Portierung von Teilen der Software von Windows auf Linux und in die Cloud
  • 3rd-party Dependency-Management mit Conan 2
  • regelmäßige Teilnahme (auch als Referent) an C++ Konferenzen (Meeting C++, CppCon, Pure Virtual C++)

"DentalCAD" CAD/CAD-Software für die Dental-Branche
C++ CMake Conan 2 Git Bitbucket Atlassian JIRA
exocad GmbH
Home-Office
8 Jahre 2 Monate
2013-07 - 2021-08

Startup-Aufbau von Netzwerk-Analyse Firma

Senior Software Engineer / Architect C++ C++11 C++14 ...
Senior Software Engineer / Architect

  • Softwareentwicklung in C++11/14/17/20 und CMake
  • Design und Implementierung von Backend-Software / Netzwerk-Protokollen (BGP-4, Netflow, Netlink), Build- und CI-Systemen (modern CMake, Jenkins) etc.
  • regelmäßige Teilnahme (auch als Referent) an C++ Konferenzen (Meeting C++, Italian C++, Pure Virtual C++)

Kollaborations-Engine für Internet-Traffic-Routing ISP-Network Traffic-Analyse
C++ C++11 C++14 C++17 CMake Border Gateway Protocol TCP/IP UDP Tcpdump UML 2.0 Agile Softwareentwicklung Git GitLab GitHub Redmine Boost GoogleTest Jenkins Linux Ubuntu Debian
BENOCS GmbH
Home-Office
9 Monate
2012-10 - 2013-06

Mitarbeit im Projekt "PaDIS"

Software Engineer C++ C++11 CMake ...
Software Engineer

  • Softwareentwicklung mit C++11 und CMake

Kollaborations-Engine für Internet-Traffic-Routing
C++ C++11 CMake Border Gateway Protocol TCP/IP UML 2.0 Agile Softwareentwicklung Git Redmine Boost Jenkins Linux Ubuntu Debian
Deutsche Telekom AG, Netzwerktechnologie
Berlin
1 Jahr 9 Monate
2011-04 - 2012-12

Entwicklung von Smartphone Apps

Wiss. Mitarbeiter mit Project-Verantwortung C++ C++98 Java ...
Wiss. Mitarbeiter mit Project-Verantwortung

  • Mitarbeit an Forschungsprojekten im Bereich Ambient Assisted Living (AAL) und e-Health
  • Entwicklung von Smartphone Apps und Software für Microsoft Kinect
  • Präsentation von Forschungsergebnissen auf Messen (IFA, CeBIT) und im Instituts-eigenen Showroom (Musterwohnung für AAL)

E-Health Assistenzsysteme
C++ C++98 Java JavaScript jQuery Android Windows Linux Subversion Boost
DAI-Labor (TU Berlin)
Berlin
5 Monate
2010-11 - 2011-03

Logistik-Verwaltungstool für Koordination von LKW-Routen Planung/Verfolgung

Software Developer C# FileMaker Windows Forms ...
Software Developer
  • Entwicklung eines grafischen Verwaltungstools mit Anbindung an eine bestehende Filemaker-Datenbank, mit Auftrags-Kalender, Berechnung der sinnvollsten LKW-Beladungs- und Routenplanung, mit Routen-Visualisierung (MS Mappoint) und automatischer Auftragspapier-Erzeugung.
  • Schulung der End-Anwender in der Verwendung dieser Software
Logistikplanung
C# FileMaker Windows Forms Windows Subversion MS Excel Visual Studio 2010
Logistik-Unternehmen
Kandel, Pfalz
1 Jahr 7 Monate
2009-09 - 2011-03

Röntgen-Scanner für die automatisierte Lebensmittelkontrolle in der maschinellen Bandproduktion

Software Developer C++ C++98 Boost ...
Software Developer

  • Softwareentwicklung mit C, C++98 und C#
  • Aufbau und Restrukturierung größerer, objektorientierter SoftwareFrameworks
  • Quellcode-Optimierungen
  • Entwicklung von effizienten Algorithmen zur Bildverarbeitung (SIMD)

Röntgen-Scanner für maschinelle Bandproduktion
C++ C++98 Boost Boost.Build BJam Valgrind GCC Linux Bildverarbeitung Hudson Subversion OpenMP SIMD Optimierung Profiling
Kaiserslautern
6 Monate
2010-05 - 2010-10

Selbstkonfigurierbares und -programmierbares Hardware-Display zur Elektronik-Steuerung

Software Developer C C# Microcontroller ...
Software Developer

  • Design und Implementierung eines Kommunikations-Protokolls zwischen Konfigurations-Software und Mikrocontroller
  • Review von Code zur Steuerung eines Mikrocontrollers
  • Reviewen, Testen und Korrigieren / Überarbeiten großer Teile der Konfigurations-Software


Die Konfiguration stellt verschiedene Funktionsblöcke zur Verfügung, die (ähnlich MATLAB Simulink) graphisch über Verbindungslinien verschaltet werden können, für welche ein sinnvolles und effizientes dynamischen Line-Routing Implementiert wurde.

Hardware-Stecksystem aus frei verschaltbaren Komponenten zur Elektroniksteuerung Konfigurations-Software frei programmierbares Display
C C# Microcontroller AVR Atmel Subversion Windows Visual C++ Visual Studio 2010
Kandel, Pfalz
1 Monat
2009-11 - 2009-11

3D-Visualisierung/Rekonstruktion von menschlichen Zähnen durch CAD/CAM

Software Developer & Code-Profiler/Optimizer C++ C++98 SIMD ...
Software Developer & Code-Profiler/Optimizer

  • Review und Profiling des vorhandenen Verfahrens zur Verwacklungs-Erkennung von Kameraaufnahmen von Zähnen
  • Optimierungspotential erkennen und Optimierungen durchführen
  • Optimierung durch Verwendung von SIMD-Befehlen ("Single-Instruction-Multiple-Data")


Für die 3D-Visualisierung und Rekonstruktion von menschlichen Zähnen (zum Zwecke des Zahnersatzes) werden verschiedene Einzelbilder eines Zahnes zusammengesetzt. Diese Einzelbilder werden mit Hilfe einer "in-mouth" Kamera gemacht, die der Zahnarzt dem Patienten auf den Zahn drückt.
Die automatische Auslösung des Kamerasensors bedarf einer Verwacklungserkennung, welche effizient arbeiten muss.
"in-mouth" Kamera 3D-Visualisierung
C++ C++98 SIMD Visual Studio 2010 Visual C++ Profiling Subversion
Sirona
Kandel, Pfalz
2 Monate
2009-09 - 2009-10

Mobiles (hands-free) Interkom-System für Rettungseinsätze der Feuerwehr

Software Developer C# C Microcontroller ...
Software Developer
  • Entwicklung (mit C# und .NET) einer Windows GUI-Software zur Konfiguration eines Interkom-Systems
  • Design und Implementierung der Kommunikation zwischen GUI-Anwendung und dem auf dem Interkom-System verwendeten Microprocessor (Atmel AVR ATmega64) über einen seriellen Port (RS232).
Mobiles Interkom-System GUI-Konfigurationssoftware
C# C Microcontroller Atmel AVR Visual Studio 2008 Windows Forms
Kandel, Pfalz
4 Monate
2009-02 - 2009-05

Entwicklung anwenderfreundlicher Software zur Ansteuerung eines remote Eye-Trackers mit C++

Wiss. Hilfskraft, Angestellter in Teilzeit
Wiss. Hilfskraft, Angestellter in Teilzeit


Lehrstuhl Kognitive Neurowissenschaft der Universität Tübingen, Tübingen
4 Monate
2009-02 - 2009-05

Entwicklung von Software und Algorithmen zur Steuerung von autonomen, Fußball-spielenden Robotern

Stud. Hilfskraft, Angestellter in Teilzeit
Stud. Hilfskraft, Angestellter in Teilzeit
  • Mitglied im ?Attempto Tübingen RobotSoccer Team?
  • Entwicklung von Software und Algorithmen zur Steuerung von autonomen, Fußball-spielenden Robotern (RoboCup) mit C++
Wilhelm-Schickard-Institut für Informatik der Universität Tübingen, Tübingen),

Aus- und Weiterbildung

Aus- und Weiterbildung

7 Jahre 4 Monate
2001-10 - 2009-01

Bioinformatik-Studium

Diplom-Informatiker, Eberhard-Karls-Universität, Tübingen
Diplom-Informatiker
Eberhard-Karls-Universität, Tübingen

  • Mobile Robotik
  • angewandte Software-Entwicklung
  • Neurobiologie


Diplomarbeit: auf Anfrage, Diplom-Note: sehr gut

11 Monate
2003-08 - 2004-06

Auslandsstudienjahr in USA

University of Missouri, Columbia (MO), USA
University of Missouri, Columbia (MO), USA

  • Auslandsstudienjahr in USA mit Studium von ?computer science? 

Position

Position

  • Experte in der Softwareentwicklung mit modernem C++ und CMake
  • Software Engineer und Architect
  • Software-Design und Software-Entwicklung mit (modern) C++ und (modern) CMake
  • Modernisieren von C++ (Legacy-) Codebases
  • Beseitigung von technischen Schulden ("technical debt") in der Software-Entwicklung (speziell bei C++)
  • Einführung von Conan 2 für sinnvolles Dependency-Management

Kompetenzen

Kompetenzen

Top-Skills

C++ CMake C C++23 C++20 C++17 C++14 C++98 C++11 Conan 2 Python Border Gateway Protocol Codebase-Modernisierung codebase modernization agile software development Agile Softwareentwicklung Linux Windows Objektorientierung object oriented TDD Behavior Driven Development

Produkte / Standards / Erfahrungen / Methoden

Agile Software-Entwicklung (Kanban, SCRUM)
Experte
Extreme Programming (XP)
Experte
Objektorientierte Programmierung
Experte
Meta-(Template) Programmierung
Experte
Funktionale Programmierung
Experte
Design-Patterns
Experte
Test-getriebene Entwicklung (TDD)
Experte
Verhalten-getriebene Entwicklung (BDD)
Fortgeschritten
Clang / LLVM
Experte
GCC
Experte
MSVC / Visual Studio
Fortgeschritten
Git
Experte
Gitlab
Experte
Github
Experte
Vim
Fortgeschritten
Border Gateway Protocol (BGP)
Fortgeschritten
Jenkins
Fortgeschritten
Valgrind
Fortgeschritten
Sanitizers
Fortgeschritten
Boost
Experte
Qt
Fortgeschritten
GDB / LLDB (Cmdline-Debugger)
Fortgeschritten

Profil

Als Softwareingenieur, insbesondere im Bereich C++, mit mehr als 15 Jahren Berufserfahrung in der Softwareentwicklung, konzentriere ich mich darauf, Software zu entwerfen, die nicht nur schnell, zuverlässig und sicher, sondern auch zukunftssicher ist. In meiner bisherigen beruflichen Laufbahn ist es mir bereits mehr als einmal gelungen, alte, gewachsene C++-Codebasen zu modernisieren, um sie leichter handhabbar zu machen, neue Features einfacher hinzufügen zu können und von den neuesten Entwicklungen der Programmiersprache und Softwaretechniken im Allgemeinen zu profitieren.

Die Beseitigung von technischen Schulden (?technical debt?) bzw. deren Vermeidung ist daher einer meiner Hauptaugenmerke. Darüber hinaus setzte ich  starken Fokus und große Anstrengungen darauf, dass Software sich leicht und reproduzierbar automatisiert bauen, testen und deployen lässt. Daher rührt auch mein Engagement im Open-SourceProjekt CMake, dem de-facto Standard-Buildsystem für C++.

Kenntnisse

C++ Toolchains / Bibliotheken / Verschiedenes

  • Toolchains: GCC, Clang/LLVM, MSVC
  • Bibliotheken: Boost, Qt, diverse von Github etc.
  • Debugger: GDB, LLDB, Visual Studio Debugger, WinDbg
  • Paket-Mgmt.: Conan 2, APT, CMake FetchContent
  • Verschiedenes: Sanitizers, Fuzzers, Valgrind, GoogleTest, Catch2
  • SoftwareKonzepte: Meta-(Template-)Programmierung, Objektorientierte Programmierung, Funktionale Programmierung, Design-Patterns, Test-getriebene Entwicklung (TDD), Verhalten-getriebene Entwicklung (BDD)

Werkzeuge und verschiedene Skills

  • Plattformen: Windows, Linux (diverse, bevorzugt Debian-basiert), Android, DOS
  • IDEs: Vim, Visual Studio 2013-2022, Visual Studio Code, Notepad++
  • VCS / SCM Git (command-line, Github, Gitlab, Bitbucket), Subversion
  • Ticket-Sys: Jira, Redmine, Github Issues, Gitlab Issues
  • Verschiedene Kenntnisse: Netzwerk-Protokolle (BGP-4, IS-IS, OSPF), WireShark/tcpdump, LATEX, Office (MS-Office, LibreOffice), Bildverarbeitung (GIMP, Photoshop), UML2, agil (Kanban, Scrum)

Betriebssysteme

Linux
Experte
Windows
Fortgeschritten
Unix
Fortgeschritten
MS-DOS
Basics
Echtzeitbetriebssysteme
Basics
RTOS (Real Time OS)
Basics

Programmiersprachen

C++
Experte
C
Experte
CMake
Experte
C#
Fortgeschritten
Python
Fortgeschritten
Java
Basics
Groovy / Pipeline
Basics (meist in Form von Jenkins-CI's "Pipeline"
JavaScript
Basics
BASH / Shell
Experte
TeX, LaTeX
Fortgeschritten
HTML / CSS / JavaScript

Datenbanken

SQL
Basics

Datenkommunikation

Border Gateway Protocol (BGP)
Experte
TCP/IP
Fortgeschritten
Proprietäre Protokolle
Fortgeschritten

Hardware

Embedded Systems
Basics
Mikrocontroller
Fortgeschritten
PC
Experte

Branchen

Branchen

  • Telekommunikation
  • Medizintechnik

Vertrauen Sie auf Randstad

Im Bereich Freelancing
Im Bereich Arbeitnehmerüberlassung / Personalvermittlung

Fragen?

Rufen Sie uns an +49 89 500316-300 oder schreiben Sie uns:

Das Freelancer-Portal

Direktester geht's nicht! Ganz einfach Freelancer finden und direkt Kontakt aufnehmen.