IT-Ingenieur
Dipl.-Ing. (FH) Technische Informatik
Software Engineering • Embedded Systems • Hardware Design • Microcontroller

Fachkenntnisse

 

Software-Entwicklung: Compiler und Tools

Visual Studio Sehr intensiver, jahrelanger Einsatz von Visual Studio im Windows und Embedded-Bereich.

Eclipse C/C++ IDE,
WindRiver Diab,
Green Hills Multi,
Lauterbach Trace32,
NIOS II Eclipse,
ARM DS-5, Atmel Studio,
IAR Embedded Workbench,
CodeWarrior

Diese Embedded-Umgebungen und Compiler sind mir sehr vertraut und wurden in vielen Projekten eingesetzt. Insbesondere GHS Multi und verschiedene Eclipse Varianten gehören immer wieder zu meinem Arbeitsalltag.
QAC/MISRA, Lint,
BullsEye Coverage,
CodeSonar, Gcov
Diese Tools zur Qualitätssicherung spielen in vielen Projekten eine wichtige Rolle und wurden zahlreich von mir genutzt: Zur statischen Codeanalyse, MISRA oder Lint Check und Ermittlung der Testabdeckung (Code Coverage).
Gprof, Linux perf,
Valgrind, AQTime,
DevPartner Perf Analysis,
CodeAnalyst
Performance-Analysen und Code-Optimierungen lassen sich am besten mit Hilfe von Profiling Tools durchführen. Mit diesen Programmen bin ich sehr vertraut und habe sie in vielfachen Projekten eingesetzt, z.B. zur Optimierung von Grafik-Systemen, neuronalen Netzen oder anderen komplexen komplexen Algorithmen.

 

Software-Entwicklung: Sprachen

C/C++,
ANSI-C
Meine wichtigsten Sprachen: Intensive und jahrelange Nutzung des gesamten Sprachumfangs. Eingesetzt z.B. für Lowlevel-Treiber-entwicklung auf diversen Plattformen, Ansteuerung von Hardware Controllern, Single- und Multi-Threading Systeme, Schreiben komplexer, objektorientierter Anwendungen, Demos und Tests.
C# Von mir gerne eingesetzt z.B. für die Entwicklung komplexer Windows-Anwendungen mit ausgefeilten Algorithmen und tiefgehender Nutzung des .NET Frameworks. Häufig auch zur Programmierung kleiner Tools mit und ohne GUI.
Python Häufige Nutzung für kleine Utilities, diverse Regression- und Test-Frameworks, zur Generierung von Paketen, intensiver Einsatz im Bereich Bildverarbeitung, Computer Vision, Radar Signalverarbeitung, Machine Learning Netzwerken (TensorFlow) und für Entwürfe mathematischer Modelle.
Assembler Jahrelange Praxiserfahrung auf unterschiedlichen Plattformen und Architekturen, meist in Kombination mit Hochsprachen.
Rust Erste Projekterfahrung mir Rust im Embedded-Bereich.
PHP, XML, HTML, CSS, JavaScript, MySQL Seit der frühen Phase des Internets habe ich mich regelmäßig mit Web-Programmierung beschäftigt und bleibe stets auf dem Laufenden.
Delphi, Java Vor dem .NET-Durchbruch war Delphi neben C++ die Sprache meiner Wahl für Windows-Projekte. Auch Java habe ich gelegentlich verwendet.
Shell-Scripte (Bash), Batch und Make Häufige Nutzung, da Makefiles und diverse Shell-Scripte nahezu jedes Projekt begleiten.

 

Windows-Programmierung

Win32-API, MFC Die Windows native API habe ich jahrelang in vielen Projekten eingesetzt. Der Umgang und Funktionsumfang ist mir bestens vertraut.
Driver DDK Eingesetzt für die Entwicklung eines USB-Treibers (Bulk Transfers) und einfacher HID Devices.
.NET Framework, WinForms, WPF, UWP, WinUI
Das .NET Framework (.NET Core) und WinForms habe ich in zahlreichen Projekten verwendet und bin damit bestens vertraut. Auch mit WPF GUIs und dem Nachfolger Universal Windows Platform (UWP) / WinUI habe ich Erfahrung.
Qt Widgets & QML
Erfahrung durch umfangreichen Einsatz in Desktop-Anwendungen (Qt Widgets) und teilweise in Mobile Apps (QML).
Installer: MSI, WiX Toolset, NSIS Mit dem WiX Toolset habe ich mehrere MSI- und Standalone-Installer für Win32-Native und .NET Anwendungen erzeugt.
Code Signing Erfahrung mit der Code-Signierung mit Class-2-Zertifikaten.

 

Computergrafik

Realtime Rendering Jahrelange Erfahrung mit Grafik-Systemen im Embedded-Bereich.
OpenGL (ES) Intensive Nutzung und Entwicklung einiger API-Teile für einen 3D-Core.
OpenVG Vielfältige Nutzung und Entwicklung großer Teile der API für einen 2D-Core.
EGL, WGL, GLUT Vielfältige Nutzung auf verschiedenen Plattformen und Systemen. Implementierung der kompletten EGL API für einen 2D- und 3D-Core.
D/AVE 2D/3D/HD Intensive Mitarbeit an Hardware-Design und Treiber-Entwicklung der proprietären 2D- und 3D-Grafik-Cores für den Embedded-Bereich.
Raytracing, ADF Forschungsarbeit über Algorithmen zum Rendern von adaptiven Distanzfeldern (ADF) mittels Raytracing. Abbildung in ein Hardware-Design (FPGA).
GUI Umfangeiche Erfahrung mit GUI-Entwicklung: WinForms, WPF, UWP/WinUI, Qt Widgets, QML

 

Computer Vision und Machine Learning

TensorFlow, TensorBoard
OpenCV
Mitarbeit in mehreren Projekten mit tiefen neuronalen Netzen. Fokus auf Architektur und Optimierung für Embedded Systeme.
Objekterkennung & Klassifikation
Erfahrung mit Verfahren wie AdaBoost, Neuronale Netze, CNNs.

 

Bildverarbeitung

Filter-Techniken Implementierung und Optimierung globaler und lokaler Filter, separierbare und nicht-separierbare Convolution Filter, Gauß, Laplace, Sobel u.a.
Farbräume und Modelle Erfahrung mit Konvertierungen und Operationen in verschiedenen Farbräumen und Modellen wie RGB, LMS, HSV, YUV/YCbCr.
Bildoptimierungen Erfahrung mit Techniken für Bildschärfe und Unschärfe/Weichzeichnen, Algorithmen für Kontrast, Helligkeit, Farbsättigung u.a. Operationen im Orts- und Frequenzraum, lineare und nichtlineare Verfahren.
Transformationen Affine Transformationen, Korrekturen und Verzerrung (Fisheye).

 

Projekt und Configuration Management

Git, Gerrit, Jenkins,
Subversion (SVN), Synergy, Visual SourceSafe
Professionelle Tools zur Versionsverwaltung sind im Alltag selbstverständlich. Ich arbeite täglich gerne mit Git (früher häufig SVN) und weiß die vielen Vorteile zu schätzen.
Mantis, Bugzilla, Redmine
Eingesetzt zum Bugtracking im Team und für Zusammenarbeit mit Kunden.
Jira, Leantime, GitLab,
Rational DOORS
Ich habe in mehreren agilen Teams gearbeitet, kenne das Scrum-Vorgehen und unterstütze gerne das Projektmanagement.

 

Dokumentation

MS Office, Visio,
Photoshop, Inkscape, Graphviz
Verständliche und ansprechende Dokumentation halte ich für sehr wichtig. Daher gehört ein ständiger Einsatz dieser Tools zu meinem Arbeitsalltag.
Doc-O-Matic, Natural Docs, Doxygen
Nutzung dieser Tools als Dokumentationswerkzeug in manchen Projekten und zur automatischen Generierung von Hilfetexten, Referenzen und Tutorials.
Enterprise Architect
Eingesetzt zur Modellierung von Systemen, Modulen, Komponenten bzw. Beschreibung der funktionalen Architektur. Erstellen von diversen Verhaltens- und Strukturdiagrammen (UML) in mehreren Projekten.

 

Hardware-Entwicklungstools

Quartus II, SOPC Builder, Qsys Jahrelange Erfahrung u. intensiver Umgang mit diversen Altera FPGAs und den Entwicklungstools. Genutzt für Design-Simulationen, Timing-Analyse, Synthese, Mapping und Prototyping.
NCSim, SimVision, ModelSim Regelmäßiger Einsatz bei der Hardware-Entwicklung im Embedded Graphics-Bereich.
SynaptiCAD Mehrfach genutzt als Wave-Viewer und zur Analyse von Timing-Diagrammen.
Actel Libero, PeakVHDL Gelegentliche Verwendung für Fortbildungszwecke und kleinere Projekte.
Spyglass Mehrfache Nutzung für statische Design-Analysen von RTL-Code in den Bereichen Automotive und Embedded Graphics.
Synopsys Design Compiler Gelegentlicher Einsatz zur Synthese von VHDL Designs für ASIC-Umsetzungen.
Eagle PCB Design Gelegentliche Nutzung in kleineren Projekten.
Cadence PSpice Seltener Einsatz beim analogen Schaltungsentwurf in kleineren Projekten. 

 

Hardware-Entwicklung: Sprachen

VHDL Häufiger Einsatz und reichlich Erfahrung im Embedded Graphics-Bereich mit einigen ASIC-Umsetzungen und Schwerpunkt auf FPGA-Systemen.
Verilog Mit Verilog habe ich in den letzten Jahren hin und wieder Erfahrung gesammelt und verschiedene Module geschrieben oder angepasst.
SystemC Gelegentlich eingesetzt zur Verifikation und für Test- und Analysezwecke.

 

Engineering

Microcontroller und Plattformen Jahrelange und vielseitige Erfahrung mit diversen Controllern, z.B. ARM, TI DSP, PowerPC, Microchip PIC, Atmel AVR, C51, Arduino, Renesas v850, R8C, Intel x86, Motorola 68000 u.a.
Systeme Entwicklungsprojekte auf Android, Raspberry Pi, Palm.
BUS Systeme Reichlich Praxiserfahrung bei der Hardware- und Software-Entwicklung verschiedener Busse, z.B. USB, PCI, AMBA AHB/APB, Avalon, I²C, CAN, LVDS, Ethernet, UART (RS232).
Betriebssysteme Umfangreiche Erfahrung mit unterschiedlichen Betriebssystemen bei Anwendung und Entwicklung auf Systemebene, z.B. Windows, Linux, Embedded Linux, Yocto, IV4, GreenHills Integrity, Autosar, EEOS, GRLC, QNX und Palm OS
Algorithmik, SimPy,
Matlab/Simulink, Derive
Viel Erfahrung und ständiges Interesse an unterschiedlichen Algorithmen und Mathematik, insbesondere in den Bereichen Computergrafik, Bildverarbeitung, Machine Learning, Compilerbau und Text-Processing

 

PDF Habe ich Ihr Interesse geweckt? Gerne schicke ich Ihnen mein Profil im PDF-Format. Kontaktieren Sie mich für weitere Details und Informationen.