Software-Entwicklung, Code Review, Performance-Optimierung C/C++
Aktualisiert am 17.12.2022
Profil
Freiberufler / Selbstständiger
Remote-Arbeit
Verfügbar ab: 09.01.2023
Verfügbar zu: 100%
davon vor Ort: 100%
Deutsch
Muttersprache
Englisch
verhandlungssicher

Einsatzorte

Einsatzorte

Darmstadt (+75km) Homburg (Saar) (+50km) Tübingen (+100km) Titisee-Neustadt (+75km) München (+100km) Mindelheim (+100km)
möglich

Projekte

Projekte

4 Jahre 10 Monate
2019-06 - heute

Konzeptionierung und Implementation eines Programms für die Analyse von aufgezeichnetem Netzwerktraffic und Ermittlung statistischer Zahlen

Deep Packet Inspection offline Protokollanalyse C ...

Konzeptionierung und Implementation eines Programms für die Analyse von aufgezeichnetem Netzwerktraffic und Ermittlung statistischer Zahlen


siehe

https://www.microsoft.com/enus//packetcapturefilescanner/9ph4wjfrbms2?activetab=pivot:overviewtab


Aufgaben, jeweils Konzeptionierung und Implementation:

  • I/O-Modul: Einlesen von PCAP/PCAPNG Dateien
  • Extraktion von Basisinformationen aus den eingelesenen
    Paketen, z.B. IP-Adressen, Portnummern, usw.
  • Restaurierung von TCP-Verbindungen inkl. der zugrunde
    liegenden Flusssteuerung
  • Restaurierung von Request-Reply-Vorgängen von UDP-basierten Protokollen (z.B. DNS-Anfragen)
  • für den unterstützten Satz an Applikationsprotokollen: jeweils ein Modul
  • Ausarbeiten der jeweils nötigen Analyseschritte für die
    Zusammenfassung der extrahierten Informationen (Benutzer braucht z.B. Indikatoren über Engpässe, Auslastung, usw.)
  • Backend portabel gehalten, momentan Windows und Linux
  • Backend in C/C++ implementiert mit Wrapper f. eine P/Invoke kompatible DLL f. Anbindung des Frontends (nur Windows)
  • WPF-basiertes Frontend, das das Backend per P/Invoke benutzt
  • Backend ist C-artiger Code (nicht objektorientiert) mit
    Verwendung von STL-Containern (C++)
  • Analyse-Durchsatz von 100 MB/s und mehr erreichbar

Deep Packet Inspection offline Protokollanalyse C C++ .NET C# WPF P/Invoke Catch (Unit-Test Framework f. C++)
1 Jahr 2 Monate
2017-04 - 2018-05

Konzeptionierung und Implementation eines Programms zur Erzeugung von Videos aus Einzelbildern (Slideshow) inkl. einem Satz an Übergangseffekten, in C++ und CUDA

Software-Entwickler C++ SIMD CUDA ...
Software-Entwickler

Konzeptionierung und Implementation eines Programms zur
Erzeugung von Videos aus Einzelbildern (Slideshow) inkl. einem Satz an Übergangseffekten, in C++ und CUDA

  • Benutzung der eigenen Bibliothek für die halbautomatische Vektorisierung von Algorithmen für die Berechnung der Effekte per CPU (benutzt erweiterte SIMD-Befehlssätze von x86-basierten Prozessoren wie SSE2)
  • Berechnungen können sowohl im 32Bit-Fließkommaformat als auch mit kleineren Ganzzahlformaten stattfinden (z.B. 8 Bit pro Farbkomponente im RGB-Farbraum)
  • Einige der Effekte: Portierung nach CUDA (CUDA: Schnittstelle von nVidia f. die relativ freie Programmierung (nicht beschränkt
    durch einen reinen Shader-Mechanismus) von GPUs,
    besonders vorteilhaft bei gut parallelisierbaren Berechnungen)
  • Portierung auf ARM NEON (ARM-spezifische SIMD-Variante) mit relativ geringen Änderungen an den Algorithmen selbst in Zukunft möglich
C++ SIMD CUDA Catch (Unit-Test Framework f. C++)
1 Jahr 6 Monate
2015-09 - 2017-02

Feinkonzeptionierung und Implementation eines patentierten Verfahrens zur Beschleunigung von HTTP-Verbindungen für Satelliten-Internetzugänge

Feinkonzeption, Software-Entwicklung C++ HTTP sockets ...
Feinkonzeption, Software-Entwicklung

Kontext:

Aufgrund verfahrensbedingter sehr hoher Latenzen sind Internetzugänge per Satellitenschüssel (birektional) wenig performant, obwohl rein technisch ausreichend Download-Bandbreite zur Verfügung steht.
Dieses Problem ist für Webseiten besonders stark ausgeprägt, da diese aus vielen Einzelressourcen zusammen gesetzt werden. Kern des Problems ist, dass das im Internet verwendete Protokoll TCP für dieses Einsatzszenario nicht ausreichend geeignet ist, um die zur Verfügung stehende Bandbreite voll nutzen zu können.

Aufgaben:

  • Feinkonzeptionierung eines eigenen Protokolls zum Transport von Web-Ressourcen
  • Implementation der serverseitigen Komponente, erforderte auch Anbindung an ein Headless-Browser-Modul
  • Implementation der clientseitigen Komponente (Ähnlichkeiten mit einem HTTP-Proxy)
  • Konzeptionierung und Implementation eines Verfahrens zur Reduktion der für die Übertragung der HTTP-Header nötigen Bandbreite (war möglich da sowohl Server als auch Client Teil des Projektes war und keine Standardkomponenten sind)
  • Implementation eines Interpreters für eine projektspezifische Skriptsprache zur Testautomatisierung inkl. Entwurf der Sprache selbst
  • Konzeptionierung und Implementation einer Sammlung von Unit-Tests, benutzt Google Test
  • Portierung der Referenzimplementation des BLAKE2B
    Algorithmus nach SSE2 (x86/x64) und AltiVec, des BLAKE2S Algorithmus nach ARM NEON
MS Visual C++ GNU Compiler ARM NEON SSE2 AltiVec
C++ HTTP sockets google test UDP
2 Monate
2015-06 - 2015-07

Portierung der C++-Bibliothek zur halbautomatischen Vektorisierung von Algorithmen auf ARM NEON und Android NDK

Software-Entwickler C++ Android Android NDK ...
Software-Entwickler

Hinzufügen von GCC/LLVM-Kompatibilität zur Bibliothek, Hinzufügen der Nutzung von Compiler-Intrinsics für ARM NEON; durch diese Änderungen wird es möglich, mit demselben Quelltext sowohl Programme für die beschleunigten Multimedia-Befehlssätze für Intel- als auch ARM-basierte Prozessoren erzeugen zu lassen.

C++ Android Android NDK JNI ARM NEON Compiler Intrinsics
Stuttgart
1 Monat
2015-05 - 2015-05

Entwicklung mehrerer Android-Applikationen aus den Bereichen Entertainment und Productivity

Software-Entwickler Android Android Studio Android NDK ...
Software-Entwickler
Android Android Studio Android NDK Java C++
Stuttgart
2 Monate
2015-02 - 2015-03

Entwicklung einer Anwendung zum Generieren von NormalMaps aus Texturbildern

Algorithmenerarbeitung, Software-Entwickler C++ C# .NET Framework ...
Algorithmenerarbeitung, Software-Entwickler
Basis der Anwendung ist eine eigene Engine für die Verarbeitung und Generierung von Bildern, die in C++ entwickelt wurde; dieses Projekt beinhaltet die Entwicklung eines GUI auf Basis WPF in C#, Anbindung der Engine, Visualisierung auf Basis OpenGL (OpenTK) siehe [URL auf Anfrage]
C++ C# .NET Framework WPF Windows Presentation Foundation OpenGL OpenTK
Böblingen
1 Jahr
2014-02 - 2015-01

Konzeptionierung und Implementation einer Umgebung aus dem Bereich Digital Content Creation in C++: prozedurale Generierung von Bildern und Texturen (z.B. für 3D-Applikationen)

Software-Entwickler C++ WTL Boost Spirit ...
Software-Entwickler

Konzeptionierung und Implementation einer Umgebung aus dem Bereich Digital Content Creation in C++: prozedurale Generierung von Bildern und Texturen (z.B. für 3D-Applikationen)


  • Umfangreiche Nutzung untenstehender Bibliothek für Berechnungen mit gepackten Vektoren/SIMD
  • Berechnungsschritte werden vom Benutzer in einem Graph zusammengestellt, die Berechnungen finden an den Knoten statt; jeder Knotentyp hat einen Satz an Parametern
  • jeder Knotentyp hat einen oder mehrere Ein- und Ausgänge, die miteinander per Kanten verbunden werden können
  • Kanten könnten Skalare, Vektoren mit festen Größen oder Graustufen-(1 Kanal) bzw. Farbbilder (4 Kanäle) transportieren
  • mehr als 90 Knotentypen
C++ WTL Boost Spirit prozedurale Generierung Datenflussgraph .NET Framework C# WPF Windows Presentation Foundation Bildbearbeitung Bildsynthese
2 Monate
2014-05 - 2014-06

Implementation einer C++-Bibliothek zur halbautomatischen Vektorisierung von Algorithmen für moderne SIMD Befehlssätze von x86-Prozessoren (Single Instruction Multiple Data)

Software-Entwickler C++ C++ Templates C/C++ Compiler Intrinsics ...
Software-Entwickler

Implementation einer C++-Bibliothek zur halbautomatischen Vektorisierung von Algorithmen für moderne SIMD Befehlssätze von x86-Prozessoren (Single Instruction Multiple Data)


  • C++ Template basiert
  • verwendet intern Compiler-Intrinsics (kein Inline-Assembler)
  • erlaubt Implementation von Algorithmen auf höherem Level als reine Benutzung von Compiler-Intrinsics oder Inline-Assembler, ohne wesentlich schlechteren Code zu erzeugen
  • Einsatz von C++ Templates erlaubt Verwendung von Befehlssequenzen, die vom Compiler direkt integriert werden (Inlining), ohne zwangsweise auf den Komfort von Funktionen verzichten zu müssen, da Verzweigungen und Funktionsaufrufe Nadelöhre sein können
  • unterstützt auch ARM NEON f. 32Bit-Fließkommaformat
  • ARM NEON Unterstützung auch für Android (NDK)
C++ C++ Templates C/C++ Compiler Intrinsics AVX Optimierung SSE SSE2 SSE3 SSSE3 SSE4
Böblingen
7 Jahre 6 Monate
2006-07 - 2013-12

Entwicklung einer Software-Update Lösung in C++ aus dem Bereich Fahrzeugdiagnose

Software-Entwickler C++ STL Windows Dienst ...
Software-Entwickler

Konzeptionierung, Implementation und Wartung einer Software Update Lösung in C++ für ein modifiziertes Windows-System aus dem Bereich Fahrzeugdiagnose; Projekt umfasste ca. 20 Wartungsaufträge im angegebenen Zeitraum

  • Installationspakete liegen als lose Sammlung auf einem HTTP-Server vor und enthalten einen Satz von Bedingungen in Form von Ausdrücken
  • Parsen dieser Ausdrücke und deren Auswertung gegen den Updatestand des Diagnosesystem
  • Herunterladen der Menge der aus der Auswertung hervorgegangenen installierbaren Pakete
  • Wiederaufsetzen des Download-Vorgangs nach Abbruch
  • Generierung einer browserbasierten Benutzeroberfläche per XSLT
  • Zurücksenden von Informationen bzgl. Updateständen an den Server
  • in den letzten Jahren des Projektes wurden auch Flash-Dateien (Firmware-Updates f. Steuergeräte in den Fahrzeugen) über diese Software ausgeliefert
  • ein Windows-Dienst sorgt für ein regelmäßiges Starten des hier grob skizzierten Prozesses
MS Visual C++ Parserentwicklung Apache Xalan/Xerces Boost (in geringem Umfang)
C++ STL Windows Dienst Parser-Entwicklung HTTP HTML CSS XML XSLT
Stuttgart
1 Jahr 5 Monate
2011-11 - 2013-03

Entwicklung einer Installationssoftware für eine Advanced Printing Lösung für Ricoh Drucker

Software-Entwickler C++ MFC SNMP ...
Software-Entwickler

Entwicklung einer Installationssoftware für eine Advanced Printing Lösung für Ricoh Drucker; Erstentwicklung, Weiterentwicklung, Wartung

Stichworte:

C, C++, MFC, Druckersprachen (PCL 5 und PCL 6/PCL XL), SNMP, UDP, TCP, Winsock, Netzwerkscan per SNMP (Finden von Druckern), eigene spezialisierte Impl. eines Telnet-Client, automatisierte Installation von Erweiterungen für Drucker-Firmware über webbasierte Administrationsschnittstelle

MS Visual C++ PCL XL SNMP UDP Winsock
C++ MFC SNMP PCL5 PCL Winsock Boost STL telnet
Sindelfingen
4 Jahre
2005-05 - 2009-04

Entwicklung und Wartung eines XML-Konverters in C++

Software-Entwickler C++
Software-Entwickler

Konzeptionierung, Implementation und Wartung eines XMLKonverters in C++ mit Verwendung von Apache Xalan/Xerces

mehrere Runden mit Wartungsarbeiten im angegebenen Zeitraum: neue Funktionalität, Anpassungen aufgrund geänderter Datenformate, Unterstützung anderer Fahrzeugsparten

  • Extraktion von Sitzungsdaten aus Protokolldateien der
    Diagnosesoftware (sog. Kurztests: Diagnosesoftware liest
    Fehlercodes aus im Fahrzeug verbauten Steuergeräten aus)
  • Filterung und Zusammenfassung dieser Einzeldaten
  • Konvertierung in das Zielformat per XSLT
  • Umfasste auch das Analysieren der Protokolldateien und das Unterbreiten von Vorschlägen, aus welchen Protokolldateielementen die fachlich benötigen Einzelinformationen zu extrahieren und ggf. einer Vorverarbeitung zu unterziehen sind
  • Separate Schnittstelle, die aus Diagnosebedatungen direkt aufrufbar ist und die Analyse der Protokolldateien umgeht
  • Zielformat ist Eingabeformat für ein webbasiertes Wissens- und Recherchesystem
MS Visual C++ Apache Xalan/Xerces XML XSLT DLL
C++
Stuttgart
5 Monate
2007-01 - 2007-05

Implementierung eines MPEG1-Encoders (prototypisch)

Software-Entwickler, Algorithmenfindung, Performanceoptimierung C++ Assembler
Software-Entwickler, Algorithmenfindung, Performanceoptimierung
Implementation eines MPEG1-Encoders (Komprimierung von Videoströmen) anhand des MPEG1 Video Standards
C++ Assembler
Böblingen
4 Jahre 2 Monate
2002-06 - 2006-07

Realisierung sehr spezifischer C++-Programme für ein modifiziertes Windows-System aus dem Bereich Fahrzeugdiagnose

Software-Entwickler
Software-Entwickler
Entwurf, Implementierung und Wartung
MS Visual C++
Stuttgart

Aus- und Weiterbildung

Aus- und Weiterbildung

3 Jahre
1998-10 - 2001-09

Berufskolleg für Informatik

staatlich geprüfter Informatiker, Akademie für Datenverarbeitung Böblingen
staatlich geprüfter Informatiker
Akademie für Datenverarbeitung Böblingen

Kompetenzen

Kompetenzen

Produkte / Standards / Erfahrungen / Methoden

.NET mit C#
erweiterte Kenntnisse
Android (SDK + NDK)
erweiterte Kenntnisse
Android NDK
Android Studio
erweiterte Kenntnisse
ARM NEON
ATL (Microsoft Active Template Library)
erweiterte Kenntnisse
Bildsynthese
erweiterte Kenntnisse
Bildverarbeitung
Grundkenntnisse
Boost
erweiterte Kenntnisse
Catch (Unit-Test Framework f. C++)
COM (Microsoft Component Object Model)
erweiterte Kenntnisse
Compiler Intrinsics
Deep Packet Inspection offline
DLL
GNU Compiler
google test
HTML
JNI
Mercurial (Versionskontrollsystem)
erweiterte Kenntnisse
MFC
MFC (Microsoft Foundation Classes, ältere C++ Bibliothek)
OpenGL incl. GLEW, GLFW, GLUS und OpenTK für .NET
P/Invoke
Parser-Entwicklung
Parserentwicklung
PCL XL
PCL5
Performance-Optimierung C/C++
SIMD
SSE2
STL (C++ Standard Template Library)
Subversion (Versionskontrollsystem)
systemnahe Entwicklung für Windows, Linux, Unix
UDP
Windows Dienst
Windows Forms
WPF (Windows Presentation Foundation)
WTL
XML, XSLT, XSD

Betriebssysteme

Android
Linux
Unix
Windows

Programmiersprachen

.NET
C
sehr gute Kenntnisse
C#
erweiterte Kenntnisse
C++
sehr gute Kenntnisse, auch C++11/14/17, VisualC++/VisualStudio,GNU,STL,Win32/SDK,COM/ATL/WTL, GCC
Java
SE,Servlets,JSP,Grundkenntnisse Enterprise Java
MMX/SSE/SSE2/AVX/AVX2 Intrinsics (Visual C++, G++)
gute Kenntnisse
MS Visual C++
Scriptsprachen
InstallShield
Shell
Grundkenntnisse

Datenbanken

JDBC
MySQL
Oracle
Grundkenntnisse
Postgres
Grundkenntnisse
SQL

Datenkommunikation

DNS
erweiterte Kenntnisse, Komponente f. DNS Traffic Analyse implementiert in einem Projekt
HTTP
SNMP
sockets
Standard Anwendungsprotokolle
TCP
erw. Kenntnisse, TCP Stream Restaurierung implementiert in einem Projekt
TCP/IP
UDP
erw. Kenntnisse, Analyse von einigen UDP nutzenden Standardprotokollen implementiert in einem Projekt
Winsock

Hardware

CUDA

Branchen

Branchen

Softwarehersteller
IT
EDV

Automotive

grundsätzlich keine Branchenbeschränkung

Einsatzorte

Einsatzorte

Darmstadt (+75km) Homburg (Saar) (+50km) Tübingen (+100km) Titisee-Neustadt (+75km) München (+100km) Mindelheim (+100km)
möglich

Projekte

Projekte

4 Jahre 10 Monate
2019-06 - heute

Konzeptionierung und Implementation eines Programms für die Analyse von aufgezeichnetem Netzwerktraffic und Ermittlung statistischer Zahlen

Deep Packet Inspection offline Protokollanalyse C ...

Konzeptionierung und Implementation eines Programms für die Analyse von aufgezeichnetem Netzwerktraffic und Ermittlung statistischer Zahlen


siehe

https://www.microsoft.com/enus//packetcapturefilescanner/9ph4wjfrbms2?activetab=pivot:overviewtab


Aufgaben, jeweils Konzeptionierung und Implementation:

  • I/O-Modul: Einlesen von PCAP/PCAPNG Dateien
  • Extraktion von Basisinformationen aus den eingelesenen
    Paketen, z.B. IP-Adressen, Portnummern, usw.
  • Restaurierung von TCP-Verbindungen inkl. der zugrunde
    liegenden Flusssteuerung
  • Restaurierung von Request-Reply-Vorgängen von UDP-basierten Protokollen (z.B. DNS-Anfragen)
  • für den unterstützten Satz an Applikationsprotokollen: jeweils ein Modul
  • Ausarbeiten der jeweils nötigen Analyseschritte für die
    Zusammenfassung der extrahierten Informationen (Benutzer braucht z.B. Indikatoren über Engpässe, Auslastung, usw.)
  • Backend portabel gehalten, momentan Windows und Linux
  • Backend in C/C++ implementiert mit Wrapper f. eine P/Invoke kompatible DLL f. Anbindung des Frontends (nur Windows)
  • WPF-basiertes Frontend, das das Backend per P/Invoke benutzt
  • Backend ist C-artiger Code (nicht objektorientiert) mit
    Verwendung von STL-Containern (C++)
  • Analyse-Durchsatz von 100 MB/s und mehr erreichbar

Deep Packet Inspection offline Protokollanalyse C C++ .NET C# WPF P/Invoke Catch (Unit-Test Framework f. C++)
1 Jahr 2 Monate
2017-04 - 2018-05

Konzeptionierung und Implementation eines Programms zur Erzeugung von Videos aus Einzelbildern (Slideshow) inkl. einem Satz an Übergangseffekten, in C++ und CUDA

Software-Entwickler C++ SIMD CUDA ...
Software-Entwickler

Konzeptionierung und Implementation eines Programms zur
Erzeugung von Videos aus Einzelbildern (Slideshow) inkl. einem Satz an Übergangseffekten, in C++ und CUDA

  • Benutzung der eigenen Bibliothek für die halbautomatische Vektorisierung von Algorithmen für die Berechnung der Effekte per CPU (benutzt erweiterte SIMD-Befehlssätze von x86-basierten Prozessoren wie SSE2)
  • Berechnungen können sowohl im 32Bit-Fließkommaformat als auch mit kleineren Ganzzahlformaten stattfinden (z.B. 8 Bit pro Farbkomponente im RGB-Farbraum)
  • Einige der Effekte: Portierung nach CUDA (CUDA: Schnittstelle von nVidia f. die relativ freie Programmierung (nicht beschränkt
    durch einen reinen Shader-Mechanismus) von GPUs,
    besonders vorteilhaft bei gut parallelisierbaren Berechnungen)
  • Portierung auf ARM NEON (ARM-spezifische SIMD-Variante) mit relativ geringen Änderungen an den Algorithmen selbst in Zukunft möglich
C++ SIMD CUDA Catch (Unit-Test Framework f. C++)
1 Jahr 6 Monate
2015-09 - 2017-02

Feinkonzeptionierung und Implementation eines patentierten Verfahrens zur Beschleunigung von HTTP-Verbindungen für Satelliten-Internetzugänge

Feinkonzeption, Software-Entwicklung C++ HTTP sockets ...
Feinkonzeption, Software-Entwicklung

Kontext:

Aufgrund verfahrensbedingter sehr hoher Latenzen sind Internetzugänge per Satellitenschüssel (birektional) wenig performant, obwohl rein technisch ausreichend Download-Bandbreite zur Verfügung steht.
Dieses Problem ist für Webseiten besonders stark ausgeprägt, da diese aus vielen Einzelressourcen zusammen gesetzt werden. Kern des Problems ist, dass das im Internet verwendete Protokoll TCP für dieses Einsatzszenario nicht ausreichend geeignet ist, um die zur Verfügung stehende Bandbreite voll nutzen zu können.

Aufgaben:

  • Feinkonzeptionierung eines eigenen Protokolls zum Transport von Web-Ressourcen
  • Implementation der serverseitigen Komponente, erforderte auch Anbindung an ein Headless-Browser-Modul
  • Implementation der clientseitigen Komponente (Ähnlichkeiten mit einem HTTP-Proxy)
  • Konzeptionierung und Implementation eines Verfahrens zur Reduktion der für die Übertragung der HTTP-Header nötigen Bandbreite (war möglich da sowohl Server als auch Client Teil des Projektes war und keine Standardkomponenten sind)
  • Implementation eines Interpreters für eine projektspezifische Skriptsprache zur Testautomatisierung inkl. Entwurf der Sprache selbst
  • Konzeptionierung und Implementation einer Sammlung von Unit-Tests, benutzt Google Test
  • Portierung der Referenzimplementation des BLAKE2B
    Algorithmus nach SSE2 (x86/x64) und AltiVec, des BLAKE2S Algorithmus nach ARM NEON
MS Visual C++ GNU Compiler ARM NEON SSE2 AltiVec
C++ HTTP sockets google test UDP
2 Monate
2015-06 - 2015-07

Portierung der C++-Bibliothek zur halbautomatischen Vektorisierung von Algorithmen auf ARM NEON und Android NDK

Software-Entwickler C++ Android Android NDK ...
Software-Entwickler

Hinzufügen von GCC/LLVM-Kompatibilität zur Bibliothek, Hinzufügen der Nutzung von Compiler-Intrinsics für ARM NEON; durch diese Änderungen wird es möglich, mit demselben Quelltext sowohl Programme für die beschleunigten Multimedia-Befehlssätze für Intel- als auch ARM-basierte Prozessoren erzeugen zu lassen.

C++ Android Android NDK JNI ARM NEON Compiler Intrinsics
Stuttgart
1 Monat
2015-05 - 2015-05

Entwicklung mehrerer Android-Applikationen aus den Bereichen Entertainment und Productivity

Software-Entwickler Android Android Studio Android NDK ...
Software-Entwickler
Android Android Studio Android NDK Java C++
Stuttgart
2 Monate
2015-02 - 2015-03

Entwicklung einer Anwendung zum Generieren von NormalMaps aus Texturbildern

Algorithmenerarbeitung, Software-Entwickler C++ C# .NET Framework ...
Algorithmenerarbeitung, Software-Entwickler
Basis der Anwendung ist eine eigene Engine für die Verarbeitung und Generierung von Bildern, die in C++ entwickelt wurde; dieses Projekt beinhaltet die Entwicklung eines GUI auf Basis WPF in C#, Anbindung der Engine, Visualisierung auf Basis OpenGL (OpenTK) siehe [URL auf Anfrage]
C++ C# .NET Framework WPF Windows Presentation Foundation OpenGL OpenTK
Böblingen
1 Jahr
2014-02 - 2015-01

Konzeptionierung und Implementation einer Umgebung aus dem Bereich Digital Content Creation in C++: prozedurale Generierung von Bildern und Texturen (z.B. für 3D-Applikationen)

Software-Entwickler C++ WTL Boost Spirit ...
Software-Entwickler

Konzeptionierung und Implementation einer Umgebung aus dem Bereich Digital Content Creation in C++: prozedurale Generierung von Bildern und Texturen (z.B. für 3D-Applikationen)


  • Umfangreiche Nutzung untenstehender Bibliothek für Berechnungen mit gepackten Vektoren/SIMD
  • Berechnungsschritte werden vom Benutzer in einem Graph zusammengestellt, die Berechnungen finden an den Knoten statt; jeder Knotentyp hat einen Satz an Parametern
  • jeder Knotentyp hat einen oder mehrere Ein- und Ausgänge, die miteinander per Kanten verbunden werden können
  • Kanten könnten Skalare, Vektoren mit festen Größen oder Graustufen-(1 Kanal) bzw. Farbbilder (4 Kanäle) transportieren
  • mehr als 90 Knotentypen
C++ WTL Boost Spirit prozedurale Generierung Datenflussgraph .NET Framework C# WPF Windows Presentation Foundation Bildbearbeitung Bildsynthese
2 Monate
2014-05 - 2014-06

Implementation einer C++-Bibliothek zur halbautomatischen Vektorisierung von Algorithmen für moderne SIMD Befehlssätze von x86-Prozessoren (Single Instruction Multiple Data)

Software-Entwickler C++ C++ Templates C/C++ Compiler Intrinsics ...
Software-Entwickler

Implementation einer C++-Bibliothek zur halbautomatischen Vektorisierung von Algorithmen für moderne SIMD Befehlssätze von x86-Prozessoren (Single Instruction Multiple Data)


  • C++ Template basiert
  • verwendet intern Compiler-Intrinsics (kein Inline-Assembler)
  • erlaubt Implementation von Algorithmen auf höherem Level als reine Benutzung von Compiler-Intrinsics oder Inline-Assembler, ohne wesentlich schlechteren Code zu erzeugen
  • Einsatz von C++ Templates erlaubt Verwendung von Befehlssequenzen, die vom Compiler direkt integriert werden (Inlining), ohne zwangsweise auf den Komfort von Funktionen verzichten zu müssen, da Verzweigungen und Funktionsaufrufe Nadelöhre sein können
  • unterstützt auch ARM NEON f. 32Bit-Fließkommaformat
  • ARM NEON Unterstützung auch für Android (NDK)
C++ C++ Templates C/C++ Compiler Intrinsics AVX Optimierung SSE SSE2 SSE3 SSSE3 SSE4
Böblingen
7 Jahre 6 Monate
2006-07 - 2013-12

Entwicklung einer Software-Update Lösung in C++ aus dem Bereich Fahrzeugdiagnose

Software-Entwickler C++ STL Windows Dienst ...
Software-Entwickler

Konzeptionierung, Implementation und Wartung einer Software Update Lösung in C++ für ein modifiziertes Windows-System aus dem Bereich Fahrzeugdiagnose; Projekt umfasste ca. 20 Wartungsaufträge im angegebenen Zeitraum

  • Installationspakete liegen als lose Sammlung auf einem HTTP-Server vor und enthalten einen Satz von Bedingungen in Form von Ausdrücken
  • Parsen dieser Ausdrücke und deren Auswertung gegen den Updatestand des Diagnosesystem
  • Herunterladen der Menge der aus der Auswertung hervorgegangenen installierbaren Pakete
  • Wiederaufsetzen des Download-Vorgangs nach Abbruch
  • Generierung einer browserbasierten Benutzeroberfläche per XSLT
  • Zurücksenden von Informationen bzgl. Updateständen an den Server
  • in den letzten Jahren des Projektes wurden auch Flash-Dateien (Firmware-Updates f. Steuergeräte in den Fahrzeugen) über diese Software ausgeliefert
  • ein Windows-Dienst sorgt für ein regelmäßiges Starten des hier grob skizzierten Prozesses
MS Visual C++ Parserentwicklung Apache Xalan/Xerces Boost (in geringem Umfang)
C++ STL Windows Dienst Parser-Entwicklung HTTP HTML CSS XML XSLT
Stuttgart
1 Jahr 5 Monate
2011-11 - 2013-03

Entwicklung einer Installationssoftware für eine Advanced Printing Lösung für Ricoh Drucker

Software-Entwickler C++ MFC SNMP ...
Software-Entwickler

Entwicklung einer Installationssoftware für eine Advanced Printing Lösung für Ricoh Drucker; Erstentwicklung, Weiterentwicklung, Wartung

Stichworte:

C, C++, MFC, Druckersprachen (PCL 5 und PCL 6/PCL XL), SNMP, UDP, TCP, Winsock, Netzwerkscan per SNMP (Finden von Druckern), eigene spezialisierte Impl. eines Telnet-Client, automatisierte Installation von Erweiterungen für Drucker-Firmware über webbasierte Administrationsschnittstelle

MS Visual C++ PCL XL SNMP UDP Winsock
C++ MFC SNMP PCL5 PCL Winsock Boost STL telnet
Sindelfingen
4 Jahre
2005-05 - 2009-04

Entwicklung und Wartung eines XML-Konverters in C++

Software-Entwickler C++
Software-Entwickler

Konzeptionierung, Implementation und Wartung eines XMLKonverters in C++ mit Verwendung von Apache Xalan/Xerces

mehrere Runden mit Wartungsarbeiten im angegebenen Zeitraum: neue Funktionalität, Anpassungen aufgrund geänderter Datenformate, Unterstützung anderer Fahrzeugsparten

  • Extraktion von Sitzungsdaten aus Protokolldateien der
    Diagnosesoftware (sog. Kurztests: Diagnosesoftware liest
    Fehlercodes aus im Fahrzeug verbauten Steuergeräten aus)
  • Filterung und Zusammenfassung dieser Einzeldaten
  • Konvertierung in das Zielformat per XSLT
  • Umfasste auch das Analysieren der Protokolldateien und das Unterbreiten von Vorschlägen, aus welchen Protokolldateielementen die fachlich benötigen Einzelinformationen zu extrahieren und ggf. einer Vorverarbeitung zu unterziehen sind
  • Separate Schnittstelle, die aus Diagnosebedatungen direkt aufrufbar ist und die Analyse der Protokolldateien umgeht
  • Zielformat ist Eingabeformat für ein webbasiertes Wissens- und Recherchesystem
MS Visual C++ Apache Xalan/Xerces XML XSLT DLL
C++
Stuttgart
5 Monate
2007-01 - 2007-05

Implementierung eines MPEG1-Encoders (prototypisch)

Software-Entwickler, Algorithmenfindung, Performanceoptimierung C++ Assembler
Software-Entwickler, Algorithmenfindung, Performanceoptimierung
Implementation eines MPEG1-Encoders (Komprimierung von Videoströmen) anhand des MPEG1 Video Standards
C++ Assembler
Böblingen
4 Jahre 2 Monate
2002-06 - 2006-07

Realisierung sehr spezifischer C++-Programme für ein modifiziertes Windows-System aus dem Bereich Fahrzeugdiagnose

Software-Entwickler
Software-Entwickler
Entwurf, Implementierung und Wartung
MS Visual C++
Stuttgart

Aus- und Weiterbildung

Aus- und Weiterbildung

3 Jahre
1998-10 - 2001-09

Berufskolleg für Informatik

staatlich geprüfter Informatiker, Akademie für Datenverarbeitung Böblingen
staatlich geprüfter Informatiker
Akademie für Datenverarbeitung Böblingen

Kompetenzen

Kompetenzen

Produkte / Standards / Erfahrungen / Methoden

.NET mit C#
erweiterte Kenntnisse
Android (SDK + NDK)
erweiterte Kenntnisse
Android NDK
Android Studio
erweiterte Kenntnisse
ARM NEON
ATL (Microsoft Active Template Library)
erweiterte Kenntnisse
Bildsynthese
erweiterte Kenntnisse
Bildverarbeitung
Grundkenntnisse
Boost
erweiterte Kenntnisse
Catch (Unit-Test Framework f. C++)
COM (Microsoft Component Object Model)
erweiterte Kenntnisse
Compiler Intrinsics
Deep Packet Inspection offline
DLL
GNU Compiler
google test
HTML
JNI
Mercurial (Versionskontrollsystem)
erweiterte Kenntnisse
MFC
MFC (Microsoft Foundation Classes, ältere C++ Bibliothek)
OpenGL incl. GLEW, GLFW, GLUS und OpenTK für .NET
P/Invoke
Parser-Entwicklung
Parserentwicklung
PCL XL
PCL5
Performance-Optimierung C/C++
SIMD
SSE2
STL (C++ Standard Template Library)
Subversion (Versionskontrollsystem)
systemnahe Entwicklung für Windows, Linux, Unix
UDP
Windows Dienst
Windows Forms
WPF (Windows Presentation Foundation)
WTL
XML, XSLT, XSD

Betriebssysteme

Android
Linux
Unix
Windows

Programmiersprachen

.NET
C
sehr gute Kenntnisse
C#
erweiterte Kenntnisse
C++
sehr gute Kenntnisse, auch C++11/14/17, VisualC++/VisualStudio,GNU,STL,Win32/SDK,COM/ATL/WTL, GCC
Java
SE,Servlets,JSP,Grundkenntnisse Enterprise Java
MMX/SSE/SSE2/AVX/AVX2 Intrinsics (Visual C++, G++)
gute Kenntnisse
MS Visual C++
Scriptsprachen
InstallShield
Shell
Grundkenntnisse

Datenbanken

JDBC
MySQL
Oracle
Grundkenntnisse
Postgres
Grundkenntnisse
SQL

Datenkommunikation

DNS
erweiterte Kenntnisse, Komponente f. DNS Traffic Analyse implementiert in einem Projekt
HTTP
SNMP
sockets
Standard Anwendungsprotokolle
TCP
erw. Kenntnisse, TCP Stream Restaurierung implementiert in einem Projekt
TCP/IP
UDP
erw. Kenntnisse, Analyse von einigen UDP nutzenden Standardprotokollen implementiert in einem Projekt
Winsock

Hardware

CUDA

Branchen

Branchen

Softwarehersteller
IT
EDV

Automotive

grundsätzlich keine Branchenbeschränkung

Vertrauen Sie auf GULP

Im Bereich Freelancing
Im Bereich Arbeitnehmerüberlassung / Personalvermittlung

Fragen?

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

Das GULP Freelancer-Portal

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