Softwareentwickler C++/C#
- Verfügbarkeit einsehen
- 0 Referenzen
- auf Anfrage
- Deutschland
- National
- de | en
- 28.01.2020
Kurzvorstellung
Ein weiterer Schwerpunkt ist die objektorientierte Softwareentwicklung mit dem Enterprise Architect.
Qualifikationen
Projekt‐ & Berufserfahrung
2/2017 – 11/2019
Tätigkeitsbeschreibung
In einem 3-Mann - Team haben wir einen Teil der Software neu entwickelt. Das betraf die Neuentwicklung bereits vorhandener GUI-Elemente als auch Teile der Datenverarbeitenden Schicht.
Ich war unter anderem dafür verantwortlich, die neuen Softwarekomponenten in die bestehende Software zu integrieren und dabei die alten Bestandteile zu ersetzen.
Nebenbei habe ich zwei In-House - Tools bearbeitet.
Klassengenerator:
Dieses Tool half den Entwicklern, bestimmte Arbeitsabläufe zu automatisieren und damit zu beschleunigen.
Das Tool konnte CMake - Dateien auslesen und neue Datei-Einträge hinzufügen. Weiterhin konnte es anhand von Vorlagedateien neue C++-Klassendateien erstellen und diese in die Quellcodeverwaltung - Perforce - einbinden.
Das Tool habe ich komplett allein entwickelt. Ich habe dabei die zu entwickelnden Features festgelegt, sie entwickelt und implementiert.
Paletteneditor:
Dieses Tool ist in Zusammenarbeit mit einem Kollegen entstanden. Wir haben zusammen den Funktionsumfang und bestimmte Arbeitsabläufe festgelegt. Die weiteren Features habe ich allein festgelegt, entwickelt, implementiert und getestet. Das betraf zum Beispiel die Art und Weise der Bedienung,
Enterprise Architect (EA), C++, Qt (Software), Microsoft Visual Studio, XML
2/2016 – 12/2016
Tätigkeitsbeschreibung
Projekt CarPlay: Fehleranalyse und ggf. Fehlerbereinigung, sowie Erweiterung um kleinere Funktionalitäten
CarLife: Leitung eines Teams aus 3 Personen, das Projekt wurde ende 2016 erfolgreich abgeschlossen
Technologien, beide Projekte: C++11, QtCreator und CrossCompiling für Qnx, Enterprise Architect, CMake, gcc
Ab Anfang 2017: Mitarbeit an der nächsten Produktgeneration mit dem Schwerpunkt auf CarPlay - Aufgabe: Portierung des Codes für QNX auf die neue Plattform Linux, Erweiterung um neue Funktionalitäten
Enterprise Architect (EA), C++, Git
6/2015 – 12/2015
Tätigkeitsbeschreibung
Ich habe für das Projekt Unit- und Modultests mit CPPUNIT und GoogleMock entwickelt. Ab November habe ich auch aktiv im Projekt CarPlay mitgearbeitet, um bei der Unterstützung von CarPlay Wireless mitzuhelfen.
Das Projekt verwendet C++ und CMake, sowie QtCreator und Eclipse. Hinzu kommt die Verwendung von iMX6 Linux auf dem Target mit Arm Prozessor.
Linux (Kernel), ARM-Architektur, Qt (Software), Softwareentwicklung (allg.), C, C++, Eclipse
10/2013 – 5/2015
Tätigkeitsbeschreibung
Oktober 2013 - aktuell laufend
Rohde & Schwarz
Entwicklung von Anwendungen für professionelle High-End - Messgeräte.
In diesen Projekten habe ich vor allem bei der Entwicklung der Benutzeroberfläche und der Entwicklung der Datenbasis mitgewirkt. Hierbei kam ein spezielles Toolset von R&S zum Einsatz. Zusätzlich wurden kleine Teile der GUI in C++ realisiert.
Außerdem sind die Geräte und Anwendungen mit Hilfe von SCPI - einem Standard zur Fernsteuerung von Geräten - fernsteuerbar. Ich habe hier die verschiedenen SCPI-Befehle implementiert und getestet.
Enterprise Architect (EA), Qt (Software), C++, User Interface (UI), Messgeräte / Messsysteme
11/2009 – 9/2013
Tätigkeitsbeschreibung
Entwicklung verschiedener Tools zur Prozessüberwachung.
Projekt 1: bis Dezember 2009: Entwicklung eines Programms zur Übertragung von Daten aus einer Steuerung in eine Datenbank. Das Programm konnte die Daten auf verschiedene Weise vorverarbeiten (verschiedene Glättungsalgorithmen waren zum Beispiel möglich)
bevor sie in der Datenbank gespeichert wurden. Dank OPC konnten alle Steuerungen ausgelesen werden, für die ein OPC-Server exisitiert.
Die Daten wurden in einer MySQL - Datenbank gespeichert, das Programm selbst ist aber dank SQL unabhängig von der verwendeten Datenbank.
Das Programm wurde als Windowsdienst entwickelt.
Projekt2: bis Oktober 2010:
Überwachung der Hauseigenen Abwassergrube und automatisches absenden einer SMS bei Erreichen eines kritischen Füllstandes.
Die SMS wurde mit Hilfe eines Internetdienstes versendet.
Hier kamen auch erstmals Touchpanels (EigerPanel) zum Einsatz, für die Anzeige verschiedener Daten.
Zur Authorisierung für verschiedene Funktionen wurden RFID-Chips verwendet, welche über einen RFID-Leser, der am Touchpanel angeschlossen war (RS323), ausgelesen.
Das Panel selbst diente als Anzeige, während die Verarbeitung von Daten in einem Windowsprogramm durchgeführt wurde. Das Serverprogramm wurde als Windowsdienst implementiert.
Die Touchpanels wurden an einen RS485 - Bus angeschlossen, welcher mit Hilfe von IPCAS - Geräten ans Intranet angeschlossen wurde.
Projekt3: - abgeschlossen
Ein Überwachungssystem für Weintanks. Hier wurden Touch-Panels verwendet, die ein Linux verwenden. Die auf den Panels laufende Anwendung ist mit Qt 4.x entwickelt worden. Daten, welche die Anwendung zur Darstellung benötigt, werden direkt aus einer MySQL-Datenbank geladen.
Projekt4: - März 2012 - Ende 2012
In diesem Projekt wird eine weitere Maschine überwacht. Es wird hierzu wieder ein Touchpanel mit Linux verwendet. Die Anwendung zeigt mit Hilfe der Bibliothek QWT eine verschiedene Kurvendiagramme, welche den Verlauf der Produktion widerspiegeln. Hierzu wurde eine neue Skriptengine entwickelt, welche die Ausführung von sowohl SQL-Skripten als auch Javascripten mit Hilfe der Qt-Scriptengine ermöglicht. Es wäre ebenfalls möglich, weitere Skriptengines, wie Python oder Ruby, einzubinden.
Projekt5: - von Anfang 2013 bis Schluss
In diesem Projekt wurde eine Lagerverwaltung für das Vollgutlager der Firma entwickelt und implementiert. Hierbei kommen neben einer Qt-Anwendung für die Ausführung von Lieferaufträgen, auch Barcodescanner zum Einsatz, um die auszuliefernden Artikel durch Abscannen von Barcodes, einzugeben.
Alle drei Projekte haben intensiv Daten aus Datenbanken ermittelt oder in Datenbanken gespeichert. Eine "Mini-Skriptsprache" diente der Definition zu verwendender SQL-Anweisungen und dem Datenaustausch mit den entsprechenden Anwendungen. SQL-Anweisungen wurden nicht im Quellcode kodiert. Dadurch wurden die Anwendungen flexibler, da mögliche Änderungen an der Datenbank, oder kleine Änderungen in Anzeigen nur durch die Änderung der SQL-Anweisungen in der Konfiguration erreicht werden konnten.
Nebenbei entsanden kleinere Projekte mit Hilfe von C++/MFC und C++/Qt.
Mit Hilfe des Qt - WebKit wurde eine kleine Anwendung entwickelt, welche bis zu 6 konfigurierbare Buttons und eine Webseite anzeigen konnte. Auf die Buttons wurde die darzustellende Webseite konfiguriert. Das Programm kam im Produktionsbereich auf einem PC mit Touchscreen zum Einsatz, zur Schnellen und Einfachen Abfrage von, im Intranet vorhandener, Produktionsdaten.
Ein Tool diente der internen Kurznachrichten-Übermittlung. Dieses Programm las im Minutentakt Nachrichten für den, am Computer angemeldeten Benutzer, aus der Datenbank und hat sie entsprechend auf dem Bildschirm angezeigt. Für dieses Programm wurde von mir auch ein MSI-Paket (mit Hilfe eines VS Installer-Projektes) erzeugt, welches in der Firma per Windowspolicy verteilt wurde.
Die drei großen Projekte wurden mit Hilfe von MFC implementiert, da bei meinem Beginn schon verschiedene Projekte mit MFC realisiert wurden, und ich vorhandenen Code nutzen konnte.
Heute würde ich vollständig auf Qt setzen. Alle kleineren Tools wurden mit Qt statt MFC realisiert. Bei Qt hat sich vor allem der direkte Zugriff auf MySQL-Datenbanken ausgezahlt, da es nicht mehr notwendig war auf allen Rechnern ODBC zu konfigurieren.
Bei diesen Projekten habe ich viele Erfahrungen im Bereich Kommunikation mit Steuerungen, Datenbanken und kleineren Busen (RS232/RS485) sammeln können bzw. kann ich noch sammeln.
Außerdem sind interessante Projekte für das EigerPanel entstanden, unter anderem ein Updateprogramm, mit dem es möglich ist, von der Ferne aus, neue Versionen eines Programmes auf dem Panel aufzuspielen, oder ein kleines Startprogramm, in dem verschiedene Einstellungen für das Panel festgelegt werden können.
Oracle Database, Open Database Connectivity, Mysql, Embedded Linux, Windows XP, Microsoft Windows CE, Windows 7, Enterprise Architect (EA), Objektorientierte Analyse (OOA), Objektorientierte Software-Entwicklung, Qt (Software), Visual C++, TCP / IP, Automatisierungstechnik (allg.), Opc-Server
11/2008 – 6/2009
Tätigkeitsbeschreibung
tätig bei der EADS in Friedirchshafen als Softwareentwickler.
Entwicklung mit C, Dokumentenverwaltung mit DOORS, Verwendung von Rhapsody
DO-178B - Lehrgang
Visual C++
7/2007 – 10/2008
Tätigkeitsbeschreibung
Weiterentwicklung von MADRIX bei INOAGE.
Außerdem Mitarbeit an einem Authoringtools zur Erstellung von Szenen für die theoretische
Fahrschulprüfung im Auftrag der ArgeTP 21. Hier habe ich unter anderem einen Undo/Redo Stack implementiert.
Tools/Technologien: CVS, Visual Studio 2005, C++, OOP, Nebula, DirectX, MFC/Codejock XTreme,
Doxygen, Threads, Synchronisierung von Threads
Objektorientierte Analyse (OOA), Objektorientierte Software-Entwicklung, Python, Visual C++, C++, Directx
1/2007 – 6/2007
Tätigkeitsbeschreibung
Im Rahmen dieses Projektes habe ich verschiedene Komponenten auf
Funktionsfähigkeit und Korrektheit getestet. Tests wurden dabei automatisch
durchgeführt.
Ich habe Testtools mit Hilfe von C++ und Qt4 oder MFC entwickelt um den
Testprozess zu verbessern und zu automatisieren. Von der EADS wurde für die Anwendung
ein Debugger-Tool entwickelt, mit dem man den Ablauf der Anwendung überwachen und
manipulieren konnte. Hierfür war es notwendig, mit Hilfe der GUI in einem recht aufwendigen
Prozess, die Testsituationen zu definieren. Diese wurden dann in Projekt-Dateien
abgespeichert.
In einer Datenbank waren alle vorhandenen Komponenten enthalten. Außerdem auch Informationen
über die Art der Komponenten (Buttons, Lampen, ...).
Ich habe ein Testtool geschrieben, welches diese Informationen ermitteln konnte.
Der Anwender konnte jetzt schnell auswählen, welche Komponenten zu testen waren.
Danach hat das Tool ein Testprojekt für den oben erwähnten "Debugger" erzeugt.
Dieses konnte in dem Debugger-Tool geladen und ausgeführt werden.
Diese Projekt-Dateien waren XML-Dateien.
Mit Hilfe von Logfiles und Anwender-Eingaben hat mein Tool dann automatisch
Testberichte als RTF und XML erzeugt.
Weiterhin habe ich für dieses Projekt verschiedene kleine Tools entwickelt,
welche die Entwickler bei ihrer Arbeit unterstützten.
Für die meisten dieser Tools war es notwendig, Textdateien zu parsen, um die
notwendigen Informationen zu ermitteln. Es wurden in der Regel Text-Dateien
als Ergebniss erzeugt, im CSV- oder XML-Format.
Hier habe ich auch SVN und Visual SourceForge als Verwaltungstools kennen gelernt.
Für meine Verarbeitung von XML-Daten habe ich mir eine kleine Mini-XML-Engine
entwickelt, welche die XML-Struktur parsen und ausgeben konnte.
Da ich bis dahin keine Erfahrungen mit XML hatte, war dies der schnellere weg.
Die Projektzeit war nur noch recht kurz.
(Später habe mir QtXML angeeignet und auch Xerces kennen gelernt)
Meine XML-Engine war sehr einfach gehalten, was für die Projekte ausreichend war.
Die verwendeten/entwickelten Tools und der Testprozess wurde am Ende von mir
in Englisch dokumentiert.
Während dieser Arbeit habe ich auch MS Outlook als Mail-Programm aber vor allem
als Groupware in Verbindung mit MS-Exchange kennen gelernt. (Terminplanung/Verwaltung,
versenden/akzeptieren von Einladungen)
Tools/Techniken: C++, XML, SourceForge, SVN, 3D-Grafik, Testen, Parsen,
rtf-Datei-Format, Automatisierung von Tests, Qt 4, MFC, OOP, Visual Studio 2005,
MS Word, MS-Outlook
Qt (Software), Visual C++, XML, Subversion
9/2005 – 12/2006
Tätigkeitsbeschreibung
Für MADRIX habe ich eine Skriptsprache entwickelt, mit der es möglich ist,
Effekte zu programmieren oder vorhandene zu steuern und deren Ergebnisse zu
manipulieren. Die Syntax der Sprache ist C-ähnlich und ist, eher untypisch für Skriptsprachen
Typsicher zur Übersetzungszeit, wie in C. Diese Entscheidung ist bewusst gefällt worden.
Ich habe hierfür entwickelt:
die Syntax (mit den anderen Projektentwicklern zusammen)
darauf hin dann: den Compiler und den Interpreter.
Der Lexer für den Compiler wurde komplett selbst implementiert.
Während dieser Arbeit habe ich auch verschiedene Skriptsprachen kennen gelernt:
Lua, Python, TCL, Ruby
Später habe ich besonders Python vertieft.
Tools/Techniken: C++, MS VisualStudio 2003/2005, MFC, Compilerbau, Stack-Automat
Parser, Lexer (selbst Entwickelt), OOP, bison, Parser, stl
Begin Projekt VicomView ende 2005 (kurz vor Begin der Diplomarbeit)
Hier erste Gehversuche mit der 3D-Engine Nebula, ich habe bei der Einführung
beraten und den Einstieg in Nebula unterstützt, aufgrund meiner D3D-Kentnisse
und meiner Kentnisse im Umgang mit DLLs.
====================================================================================
Projekt Madrix bei inoage Dresden
Entwickler mit C++
Ich bin mitte 2005 zu diesem Projekt hinzu gekommen
Produkt wird bereits verkauft, (Standardsoftware!)
Es handelt sich hierbei um eine Software zur Steuerung von Lichttechnik (Lichtmatritzen)
für den Veranstaltungs- oder Architekturbereich.
Ich habe verschiedene Komponennten zur Erzeugung von Lichteffekten entwickelt,
unter anderem einen Effekt zur Darstellung von Animationen aus Einzelbildern
(zum Beispiel durch Gif-Bilder, oder mehreren geladenen Einzelbildern).
Weiterhin habe ich einen Effekt entwickelt der Videos
abspielen kann oder Capture-Geräte wie DigiCams.
Ich habe hier CVS zur Code-Verwaltung eingeführt.
Tools/Technologien: MS Visual Studio 2003, heute 2005, CVS, Doxygen, OOP,
Threads, Windows Systemprogrammierung, Wibu-Systems USB-Dongle, stl
Objektorientierte Software-Entwicklung, Python, Visual C++, Subversion
Ausbildung
Dresden
Weitere Kenntnisse
- Datenbanken (allg.)
- Softwareprogrammierung
IT & Entwicklung
- Dokumentation
- Softwareentwicklung
Python, Ruby, HTML, PHP, Java, C, C++, fließend englisch, Q
Persönliche Daten
- Deutsch (Muttersprache)
- Englisch (Fließend)
Kontaktdaten
Nur registrierte PREMIUM-Mitglieder von freelance.de können Kontaktdaten einsehen.
Jetzt Mitglied werden