Betriebssysteme: UNIX (Linux (SuSE)), Mac OS X, Microsoft Windows; verschiedene laufende Inhouse-Projekte
Erreichte Ziele:
Werkzeug: Erzeugung elektronischer Rechnungen im XML-Format à la ZUGFeRD (zusammen mit den PDF-Rechnungen) aus der CRM-Datenbank (mit Hilfe von XPath Werkzeug Extraktion von Tabellen-Daten aus HTML-Dateien (Web-Scraping (ETL)) (z.B. ELSTER Steuerkontoabfrage): Die Details werden mit Hilfe von XPath-Ausdrücken extrahiert (XMLStarlet)
Werkzeug: Extraktion von Tabellen-Daten aus PDF-Dateien (PDF-Scraping (ETL))
Protokolierung von Telefon-Anrufen: AVM FRITZ!Box Port 1012 und Google Contacts XML: Telefonie-Events und Adressbuchsuche in Ruby unter SuSE Linux
Projekte
Erreichte Ziele:
Arbeitsumgebung: Windows 7, Cygwin
Einsatz von Jenkins (Continuous Integration) als Job-Control-Umgebung, u.a. für Build-Management
Entwicklung von Skripts in Python, Perl, Bash, ".bat"
Einsatz von XML-Technologie: XQuery, XPath, XMLStarlet, Saxon
Einsatz von Atlassian JIRA und Atlassian Confluence
Projekte:
Jenkins-Slaves innerhalb von VMware-Maschinen
"TESSY" (das Unit-Testing-Framework) "im Batch" bzw. in einem Jenkins-Job "Coverity" (das Framework zur statischen Code-Analyse) in einer Jenkins-Build-Umgebung
Entwicklung wiederverwendbarer Tools im Zusammenhang mit Jenkins
Erreichte Ziele:
Werkzeug kompaktes Listing von JIRA-Issues (ETL): Ein Bash-Skript ruft (mit Hilfe von curl bzw. wget) vom JIRA-Server "Issues" in Form von XML ab, die Details werden daraus mit Hilfe von XPath-Ausdrücken extrahiert (XMLStarlet), das Ergebnis wird als knappe textuelle Beschreibung dargestellt.
Werkzeug rekursives Job-/Folder-Listing eines Jenkins-Servers (ETL): Ein Bash-Skript ruft (mit Hilfe von curl bzw. wget) vom Jenkins-Server rekursiv "Jobs" und "Folders" in Form von XML ab, die Details werden daraus mit Hilfe von XPath-Ausdrücken extrahiert (XMLStarlet), das Ergebnis wird als Liste von URLs dargestellt.
Werkzeug Export aller Build-Schritte eines Jenkins-Jobs (ETL): Ein Bash-Skript ruft (mit Hilfe von curl bzw. wget) vom Jenkins-Server einen "Job" in Form von XML ab, die Details werden daraus mit Hilfe von XPath-Ausdrücken extrahiert (XMLStarlet), die einzelnen Build-Schritte werden in separaten Dateien zur bequemen Weiterbearbeitung oder historischen Versionierung gespeichert.
Werkzeug Zeitreihen-Plot des Memory-Maps des IAR-Linkers: Ein Python-Skript liest die ".map"-Datei und baut daraus XML, das vom Plot-Plugin des Jenkins-Servers gelesen wird, um mit den Zeitreihen Kurven zu zeichnen.
die Haupt-Aufgabe: Trouble-Shooting von irregulären Vorkommnissen und involvierten Korn-Shell- und Perl-Skripts
perl, Shell (Korn Shell), Makefile, EDISTAR, Request Tracker ("RT"), CVS, AIX
perl: TAP (das Test Anything Protocol), Test::More
Unicode, UTF-8, UTF-16
NAS-Administration
Erreichte Ziele:
Werkzeug kompaktes Listing von RT-Issues (ETL): Ein Shell-Skript ruft (mit Hilfe von curl bzw. wget) vom RT-Server "Issues" in Form von HTML ab, die Details werden daraus mit Hilfe eines Perl-Hilfs-Tools extrahiert, das Ergebnis wird als knappe textuelle Beschreibung dargestellt.
Die Report-Generator Software-Suite von Jaspersoft (iReport, JasperReports (BI)); PostgreSQL, SQL.
Entwicklung von Software in Perl unter Linux.
Einsatz von Subversion für Versions- und Release-Mananagement.
Web-/HTML-Scraping (ETL)
Projekte:
Kontoauszug Postbank.de (Web-/HTML-Scraping): Kommunikation mit dem Web-Server via libcurl in Perl unter SuSE Linux
Kontoauszug Berliner-Sparkasse.de (Web-/HTML-Scraping): Kommunikation mit dem Web-Server via libcurl in Perl unter SuSE Linux
Skript-Entwicklung für File-Transfers
Projekte:
Um etliche SFTP-File-Transfers herum wurden unter AIX Korn-Shell-Skripts entwickelt. Berücksichtigung ganz besonderer Zuverlässigkeitsmerkmale.
Web-/HTML-Scraping (ETL)
Projekte:
Web-/HTML-Scraping: Sammeln von Daten von einer Segeln-/Yacht-bezogenen Web-Site: Kommunikation mit dem Web-Server via libcurl in Perl unter SuSE Linux
Configuration-, Build- und Deployment-Management: Einsatz der Skript-Sprache Python, von Maven, des Oracle WebLogic Servers
Projekte:
Entwicklung von Software für das Deployment-Management.
Die Report-Generator Software-Suite von Jaspersoft (iReport, JasperReports (BI)); PostgreSQL, SQL.
Einsatz von Subversion für Versions- und Release-Mananagement; Entwicklungsmethode: Agile / Scrum.
Projekte:
Entwicklung und Pflege von Reports (JasperReports) um postgreSQL-Queries herum für ihr Business-Intelligence-Team.
Der Kunde ersetzte hunderte von PDF-Formularen durch JasperReports-Dokumente. Ich entwarf ein dediziertes und sehr dichtes XML-Schema als Schritt zwischen den beiden. Ich implementierte Software in Perl, um aus jenen PDF-Dokumenten Details in das XML zu extrahieren; außerdem weitere Software, um aus diesem Zwischenstruktur (in XML) wiederum das XML von JasperReports (JRXML) zu erzeugen.
Der Java-Code war dafür bestimmt, mit den JasperReports-Dateien, dem JRXML etc. umzugehen und wiederum PDF zu erzeugen
Entwicklung von Software unter Einsatz der Skript-Sprache Python, auch Java, Oracle 10, alles unter Microsoft Windows; Trouble-Shooting.
Einsatz von Subversion für Versions- und Release-Mananagement Entwicklungsmethode: Agile / Scrum.
Projekte:
Der Kunde führte eine Upgrade nach "Opics Plus" durch, der Handelsplattform von Misys.com für OTC-Derivate. Bereitstellung von Schnittstellen-Software.
Einsatz der Report-Generator-Software-Suite von Jaspersoft (iReport, JasperReports (BI)); das beinhaltete die Erweiterung von Code in Java.
Mai 2008?August 2009
Krauss-Maffei Wegmann (Kassel+München, Deutschland)
Senior Software Engineer
Entwicklung von Realtime-Software in Ada (ObjectAda von Aonix) unter Linux and Microsoft Windows, Zielmaschine war ein "embedded system", die Kommunikation dort geschah mit CANopen über einen Feldbus.
Erzeugung von Ada-Code aus dem von mir entworfenen CANopen-XML unter Einsatz von Perl, shell und Ruby-Makefiles ("Rakefiles").
Projekte:
Das Projekt benötigte neue CANopen-Daten-Nachrichten ; der vorhandene CANopen-Ada-Marshaling-Code war nicht mehr zu warten und zu erweitern, es wurde beschlossen, diesen Code aus einer XML-Spezifikation heraus zu generieren, in welcher die CANopen-Daten-Objekte und -Nachrichten und auch Details der Bit-Record-Layouts beschrieben waren; das XML-Schema selbst wurde von mir zu diesem Zwecke entworfen, das XML wurde für diverse Projekte erstellt , Code-Generatoren wurden in Perl implementiert.
Die Kommunikation mit mehreren Geräten durch diese CANopen-Nachrichten wurde implementiert.
März 2008?April 2008
Rheinmetall Defence Electronics (Bremen, Deutschland)
Senior Software Engineer
Entwicklung von Software in Ada (GNU Ada ("GNAT")) und C unter Debian Linux.
Ada, Shell und Ruby-Makefiles ("Rakefiles").
Projekte:
Kommunikation mit einem NovAtel OEMV GPS-Receiver über RS232 in C im POSIX-Stil; Bereitstellung von Ada-Bindings für diese Schnittstelle; Verwendung von GNU Ada (GNAT) unter Debian Linux.
Aufsetzen einer proprietären RS422-Schnittstelle mit Linux-Gerätetreiber-Quellen, welche vom Hersteller zur Verfügung gestellt wurden (FarSync.co.uk); Kommunikation mit einer Initial Measurement Unit über diese RS422-Schnittstelle in C; Bereitstellung von Ada-Bindings für diese RS422-Schnittstelle.
August 2007?Dezember 2007
ImmobilienScout (Berlin, Deutschland)
Senior Software Engineer und Trouble-Shooter in "Build&Release&Deploy"
Pflege bzw. Entwicklung von Skripts in Ruby, Perl, Ant; "Tagging" von Releases in Subversion; Durchführung von Hot-Fixes; Verwendung von Ticket- / Bug-Tracking-Systemen; Erweiterung der Dokumentation im Wiki; Betriebssysteme: UNIX (Linux (Redhat resp. CentOS)), Microsoft Windows; Continuous Integration (CruiseControl), Processing-Virtualisierung (VMware).
Ruby, Perl, Shell und Ruby-Makefiles ("Rakefiles").
Juli 2006?September 2006
HP (Böblingen, Deutschland)
Senior Software Engineer
Software-Entwicklung: UNIX, SGML, Shell, Perl, C, DSSSL (SGML-Style-Sheets), Processing-Virtualisierung (VMware)
April 2006?Juni 2006
orange.NL (wanadoo) (Amsterdam, Niederlande)
Senior Software Engineer, OSS-Mitarbeiter
Perl, Shell, Erweiterung der Dokumentation im Wiki, OSS: Production-Monitoring mit "Big Brother", Betriebssysteme: Solaris
April 2002?Juli 2007
Allianz Asset Management, InvestmentDataServices (München, Deutschland)
Senior Software Engineer, OSS-Mitarbeiter inkl. Trouble-Shooting
Perl, DBI, Shell-Skripts (bash, zsh), Oracle, PostgreSQL, UNIX (Solaris); Training des Teams. Trouble-Shooting.
Projekte:
Entwurf (FSM-orientiert), Implementierung und Betrieb (OSS) eines großen Systems: Retrieval, Extraktion, Transformation, Laden, Post-Processing, Export (ETL (x_spooling, files.pl)
JHwis -- Web (Interface) Scripting (Verwendung von libcurl und Perl): robuste, skriptgesteuerte Bedienung von Web-Seiten und Ausfüllen von Formularfeldern zum Download von Dateien.
Erreichte Ziele:
Bereitstellung von Schnittstellen-Software (ETL) zu den großen Marktdaten-Anbietern (Bloomberg, S&P, Citigroup, Deutsche Börse, Wertpapiermitteilungen, ...)
Akademische Ausbildung
auch: Application Support
Shells:
Continuous Integration:
File-Transfer-Software:
Verschiedenste weitere UNIX-Werkzeuge:
Processing-Virtualisierung / VMs:
UNIX-artige Betriebssysteme:
Weitere Betriebssysteme:
Relationale Datenbanksysteme:
Reporting-Software / Business Intelligence:
Testen:
Übersetzte Programmiersprachen:
Assembler-Sprachen:
Übersetzerbau-Werkzeuge:
Batch-Control-Software:
Configuration-Management inkl. Software zur Versionskontrolle:
Make-Werkzeuge:
Schriftsatz mit Markup-Sprachen:
Schriftsatz / WYSIWIG:
Tabellenkalkulation:
Markup-Sprachen:
CASE -- computer-aided software engineering:
CASE:
CASE:
Web-Crawling, Web-Harvesting, Web-Spidering
Betriebssysteme: UNIX (Linux (SuSE)), Mac OS X, Microsoft Windows; verschiedene laufende Inhouse-Projekte
Erreichte Ziele:
Werkzeug: Erzeugung elektronischer Rechnungen im XML-Format à la ZUGFeRD (zusammen mit den PDF-Rechnungen) aus der CRM-Datenbank (mit Hilfe von XPath Werkzeug Extraktion von Tabellen-Daten aus HTML-Dateien (Web-Scraping (ETL)) (z.B. ELSTER Steuerkontoabfrage): Die Details werden mit Hilfe von XPath-Ausdrücken extrahiert (XMLStarlet)
Werkzeug: Extraktion von Tabellen-Daten aus PDF-Dateien (PDF-Scraping (ETL))
Protokolierung von Telefon-Anrufen: AVM FRITZ!Box Port 1012 und Google Contacts XML: Telefonie-Events und Adressbuchsuche in Ruby unter SuSE Linux
Projekte
Erreichte Ziele:
Arbeitsumgebung: Windows 7, Cygwin
Einsatz von Jenkins (Continuous Integration) als Job-Control-Umgebung, u.a. für Build-Management
Entwicklung von Skripts in Python, Perl, Bash, ".bat"
Einsatz von XML-Technologie: XQuery, XPath, XMLStarlet, Saxon
Einsatz von Atlassian JIRA und Atlassian Confluence
Projekte:
Jenkins-Slaves innerhalb von VMware-Maschinen
"TESSY" (das Unit-Testing-Framework) "im Batch" bzw. in einem Jenkins-Job "Coverity" (das Framework zur statischen Code-Analyse) in einer Jenkins-Build-Umgebung
Entwicklung wiederverwendbarer Tools im Zusammenhang mit Jenkins
Erreichte Ziele:
Werkzeug kompaktes Listing von JIRA-Issues (ETL): Ein Bash-Skript ruft (mit Hilfe von curl bzw. wget) vom JIRA-Server "Issues" in Form von XML ab, die Details werden daraus mit Hilfe von XPath-Ausdrücken extrahiert (XMLStarlet), das Ergebnis wird als knappe textuelle Beschreibung dargestellt.
Werkzeug rekursives Job-/Folder-Listing eines Jenkins-Servers (ETL): Ein Bash-Skript ruft (mit Hilfe von curl bzw. wget) vom Jenkins-Server rekursiv "Jobs" und "Folders" in Form von XML ab, die Details werden daraus mit Hilfe von XPath-Ausdrücken extrahiert (XMLStarlet), das Ergebnis wird als Liste von URLs dargestellt.
Werkzeug Export aller Build-Schritte eines Jenkins-Jobs (ETL): Ein Bash-Skript ruft (mit Hilfe von curl bzw. wget) vom Jenkins-Server einen "Job" in Form von XML ab, die Details werden daraus mit Hilfe von XPath-Ausdrücken extrahiert (XMLStarlet), die einzelnen Build-Schritte werden in separaten Dateien zur bequemen Weiterbearbeitung oder historischen Versionierung gespeichert.
Werkzeug Zeitreihen-Plot des Memory-Maps des IAR-Linkers: Ein Python-Skript liest die ".map"-Datei und baut daraus XML, das vom Plot-Plugin des Jenkins-Servers gelesen wird, um mit den Zeitreihen Kurven zu zeichnen.
die Haupt-Aufgabe: Trouble-Shooting von irregulären Vorkommnissen und involvierten Korn-Shell- und Perl-Skripts
perl, Shell (Korn Shell), Makefile, EDISTAR, Request Tracker ("RT"), CVS, AIX
perl: TAP (das Test Anything Protocol), Test::More
Unicode, UTF-8, UTF-16
NAS-Administration
Erreichte Ziele:
Werkzeug kompaktes Listing von RT-Issues (ETL): Ein Shell-Skript ruft (mit Hilfe von curl bzw. wget) vom RT-Server "Issues" in Form von HTML ab, die Details werden daraus mit Hilfe eines Perl-Hilfs-Tools extrahiert, das Ergebnis wird als knappe textuelle Beschreibung dargestellt.
Die Report-Generator Software-Suite von Jaspersoft (iReport, JasperReports (BI)); PostgreSQL, SQL.
Entwicklung von Software in Perl unter Linux.
Einsatz von Subversion für Versions- und Release-Mananagement.
Web-/HTML-Scraping (ETL)
Projekte:
Kontoauszug Postbank.de (Web-/HTML-Scraping): Kommunikation mit dem Web-Server via libcurl in Perl unter SuSE Linux
Kontoauszug Berliner-Sparkasse.de (Web-/HTML-Scraping): Kommunikation mit dem Web-Server via libcurl in Perl unter SuSE Linux
Skript-Entwicklung für File-Transfers
Projekte:
Um etliche SFTP-File-Transfers herum wurden unter AIX Korn-Shell-Skripts entwickelt. Berücksichtigung ganz besonderer Zuverlässigkeitsmerkmale.
Web-/HTML-Scraping (ETL)
Projekte:
Web-/HTML-Scraping: Sammeln von Daten von einer Segeln-/Yacht-bezogenen Web-Site: Kommunikation mit dem Web-Server via libcurl in Perl unter SuSE Linux
Configuration-, Build- und Deployment-Management: Einsatz der Skript-Sprache Python, von Maven, des Oracle WebLogic Servers
Projekte:
Entwicklung von Software für das Deployment-Management.
Die Report-Generator Software-Suite von Jaspersoft (iReport, JasperReports (BI)); PostgreSQL, SQL.
Einsatz von Subversion für Versions- und Release-Mananagement; Entwicklungsmethode: Agile / Scrum.
Projekte:
Entwicklung und Pflege von Reports (JasperReports) um postgreSQL-Queries herum für ihr Business-Intelligence-Team.
Der Kunde ersetzte hunderte von PDF-Formularen durch JasperReports-Dokumente. Ich entwarf ein dediziertes und sehr dichtes XML-Schema als Schritt zwischen den beiden. Ich implementierte Software in Perl, um aus jenen PDF-Dokumenten Details in das XML zu extrahieren; außerdem weitere Software, um aus diesem Zwischenstruktur (in XML) wiederum das XML von JasperReports (JRXML) zu erzeugen.
Der Java-Code war dafür bestimmt, mit den JasperReports-Dateien, dem JRXML etc. umzugehen und wiederum PDF zu erzeugen
Entwicklung von Software unter Einsatz der Skript-Sprache Python, auch Java, Oracle 10, alles unter Microsoft Windows; Trouble-Shooting.
Einsatz von Subversion für Versions- und Release-Mananagement Entwicklungsmethode: Agile / Scrum.
Projekte:
Der Kunde führte eine Upgrade nach "Opics Plus" durch, der Handelsplattform von Misys.com für OTC-Derivate. Bereitstellung von Schnittstellen-Software.
Einsatz der Report-Generator-Software-Suite von Jaspersoft (iReport, JasperReports (BI)); das beinhaltete die Erweiterung von Code in Java.
Mai 2008?August 2009
Krauss-Maffei Wegmann (Kassel+München, Deutschland)
Senior Software Engineer
Entwicklung von Realtime-Software in Ada (ObjectAda von Aonix) unter Linux and Microsoft Windows, Zielmaschine war ein "embedded system", die Kommunikation dort geschah mit CANopen über einen Feldbus.
Erzeugung von Ada-Code aus dem von mir entworfenen CANopen-XML unter Einsatz von Perl, shell und Ruby-Makefiles ("Rakefiles").
Projekte:
Das Projekt benötigte neue CANopen-Daten-Nachrichten ; der vorhandene CANopen-Ada-Marshaling-Code war nicht mehr zu warten und zu erweitern, es wurde beschlossen, diesen Code aus einer XML-Spezifikation heraus zu generieren, in welcher die CANopen-Daten-Objekte und -Nachrichten und auch Details der Bit-Record-Layouts beschrieben waren; das XML-Schema selbst wurde von mir zu diesem Zwecke entworfen, das XML wurde für diverse Projekte erstellt , Code-Generatoren wurden in Perl implementiert.
Die Kommunikation mit mehreren Geräten durch diese CANopen-Nachrichten wurde implementiert.
März 2008?April 2008
Rheinmetall Defence Electronics (Bremen, Deutschland)
Senior Software Engineer
Entwicklung von Software in Ada (GNU Ada ("GNAT")) und C unter Debian Linux.
Ada, Shell und Ruby-Makefiles ("Rakefiles").
Projekte:
Kommunikation mit einem NovAtel OEMV GPS-Receiver über RS232 in C im POSIX-Stil; Bereitstellung von Ada-Bindings für diese Schnittstelle; Verwendung von GNU Ada (GNAT) unter Debian Linux.
Aufsetzen einer proprietären RS422-Schnittstelle mit Linux-Gerätetreiber-Quellen, welche vom Hersteller zur Verfügung gestellt wurden (FarSync.co.uk); Kommunikation mit einer Initial Measurement Unit über diese RS422-Schnittstelle in C; Bereitstellung von Ada-Bindings für diese RS422-Schnittstelle.
August 2007?Dezember 2007
ImmobilienScout (Berlin, Deutschland)
Senior Software Engineer und Trouble-Shooter in "Build&Release&Deploy"
Pflege bzw. Entwicklung von Skripts in Ruby, Perl, Ant; "Tagging" von Releases in Subversion; Durchführung von Hot-Fixes; Verwendung von Ticket- / Bug-Tracking-Systemen; Erweiterung der Dokumentation im Wiki; Betriebssysteme: UNIX (Linux (Redhat resp. CentOS)), Microsoft Windows; Continuous Integration (CruiseControl), Processing-Virtualisierung (VMware).
Ruby, Perl, Shell und Ruby-Makefiles ("Rakefiles").
Juli 2006?September 2006
HP (Böblingen, Deutschland)
Senior Software Engineer
Software-Entwicklung: UNIX, SGML, Shell, Perl, C, DSSSL (SGML-Style-Sheets), Processing-Virtualisierung (VMware)
April 2006?Juni 2006
orange.NL (wanadoo) (Amsterdam, Niederlande)
Senior Software Engineer, OSS-Mitarbeiter
Perl, Shell, Erweiterung der Dokumentation im Wiki, OSS: Production-Monitoring mit "Big Brother", Betriebssysteme: Solaris
April 2002?Juli 2007
Allianz Asset Management, InvestmentDataServices (München, Deutschland)
Senior Software Engineer, OSS-Mitarbeiter inkl. Trouble-Shooting
Perl, DBI, Shell-Skripts (bash, zsh), Oracle, PostgreSQL, UNIX (Solaris); Training des Teams. Trouble-Shooting.
Projekte:
Entwurf (FSM-orientiert), Implementierung und Betrieb (OSS) eines großen Systems: Retrieval, Extraktion, Transformation, Laden, Post-Processing, Export (ETL (x_spooling, files.pl)
JHwis -- Web (Interface) Scripting (Verwendung von libcurl und Perl): robuste, skriptgesteuerte Bedienung von Web-Seiten und Ausfüllen von Formularfeldern zum Download von Dateien.
Erreichte Ziele:
Bereitstellung von Schnittstellen-Software (ETL) zu den großen Marktdaten-Anbietern (Bloomberg, S&P, Citigroup, Deutsche Börse, Wertpapiermitteilungen, ...)
Akademische Ausbildung
auch: Application Support
Shells:
Continuous Integration:
File-Transfer-Software:
Verschiedenste weitere UNIX-Werkzeuge:
Processing-Virtualisierung / VMs:
UNIX-artige Betriebssysteme:
Weitere Betriebssysteme:
Relationale Datenbanksysteme:
Reporting-Software / Business Intelligence:
Testen:
Übersetzte Programmiersprachen:
Assembler-Sprachen:
Übersetzerbau-Werkzeuge:
Batch-Control-Software:
Configuration-Management inkl. Software zur Versionskontrolle:
Make-Werkzeuge:
Schriftsatz mit Markup-Sprachen:
Schriftsatz / WYSIWIG:
Tabellenkalkulation:
Markup-Sprachen:
CASE -- computer-aided software engineering:
CASE:
CASE:
Web-Crawling, Web-Harvesting, Web-Spidering
Direktester geht's nicht! Ganz einfach Freelancer finden und direkt Kontakt aufnehmen.