Home
oliver _at_ first.in-berlin.de

english job profile on demand

Tätigkeitsprofil
Oliver Bandel, Dipl.-Ing (FH)
Hard- und Software-Entwickler

 

Übersicht

Allgemeine Angaben
Fachliche Schwerpunkte / bevorzugte Arbeitsbereiche
Kundenliste
Projekte

Projekte-Auswahl

Datenlogger-Entwicklung im Bereich Windmesstechnik
Engineering Task-Force (scrap cost reduction) (Automotive)
Datenbank-Migration (DB2 nach Oracle) (Bank / IT)
Dokumentation Messtechnik-Software (Industrieelektronik)
Software-Tests
Testtool-Entwicklung
Produktionstest-Software und Hardware
Signalauswertungs-Software

 

 

 

Allgemeine Angaben:
Name: Oliver Bandel
Ausbildung: Studium der Nachrichtentechnik, TFH-Berlin
—> Diplom-Ingenieur (FH) Nachrichtentechnik.

Berufsausbildung:
—> Informationselektroniker (3,5 J)

Fremdsprachen: Englisch: verhandlungssicher, in Wort und Schrift
Führerschein: Klasse 3
Einsetzbar als: Hard- und Software-Entwickler (ggf. auch Tester)
Fachliche Schwerpunkte

bzw.

Bevorzugte Arbeitsbereiche:

  • Messtechnik, Analog- und Digital-Elektronik
  • Entwicklung, Vorentwicklung, Tools-Entwicklung
  • systemnahe Software-Entwicklung auf Unix / Linux und Embedded / Controller
  • abstraktes (Code-Converter, Interpreter, Compiler), Datenanalyse, DSLs
Schwerpunkte Programmiersprachen

  • C
  • Perl
  • OCaml
  • R
  • Python
  • Assembler (Atmel AVR)
Bevorzugte Betriebssysteme: Unixoide Systeme:
  • Linux
  • Unix (z.B. Solaris, BSD, OS-X, ...)
Besondere Qualifikationen:
  • Schnelle Auffassungsgabe
  • Effizientes Einarbeiten in neue Arbeitsgebiete
  • Präzise, vorausschauende, zielsichere und nachhaltige Arbeitsweise
  • Ergebnissichere Lösung komplexer Aufgaben
  • Sehr schnelle Umsetzung
Programmiersprachen:
  • ANSI-C (ISO 9899)
  • Perl
  • OCaml
  • R
  • Python
  • Assembler (Atmel AVR)
  • bash/shell
  • Postscript
Programmiertools,
Makrosprachen,
Bibliotheken / APIs
Protokolle:
  • git
  • subversion, cvs
  • make

  • ocamllex, ocamlyacc
  • lex, yacc
  • m4

  • Unix-API
  • POSIX-Threads
  • BSD-Sockets

  • Perl-DBI
  • Perl-CGI

  • TCP / IP
  • RPC
Betriebssysteme: Unix, Linux
Daten-Analyse-Software: R (bzw. S / S-PLUS)
Textsatzsysteme: LaTeX2ε, troff/groff, Lout
Simulationssoftware: SPICE (ngspice)
Layoutsoftware: Eagle
Messtechnik: Voltmeter, Multimeter,
Oszilloskope, Signalgeneratoren,
Temperaturmessgeräte, Magnetfeldmessgeräte,
Referenzspannungsquellen
Microcontroller: Atmel AVR: ATMega 1280
weiteres: Arch-Linux Administration und Paketerstellung,
Arch-Linux Package-Maintenance (AUR),
trac,
ModBus,
SCPI,
HTML / CSS / CGI, JavaScript,
GIMP (auch Python-Plug-Ins), Blender, Graphviz,
Apache,
lvm,
OpenGL,
SQL, MySQL, RMySQL, ocaml-mysql
ncurses,
GTK2-Perl,
dtrace,
...

Kunden (Auswahl, alphabetisch sortiert)

 

 

 

Durchgeführte Projekte/ Tätigkeiten:
(End-Monat einschliesslich)
07/2015 - 08/2015 
  • Tool-Weiter-Entwicklung Hyperlink-Datenbank (neue Features)

    Neue Features für die Hyperlink-Datenbank (siehe Eintrag 08/2014):

    • Import von RSS-Feed-Einträgen aus der Datenbank (sqlite) des RSS-Readers Newsbeuter.
      • Als Parameter der Commandline wird eine Feed-URL (aus ∼/.newsbeuter/urls) an das "urldb-tool" übergeben.
      • Das Tool importiert dann alle Einträge dieses Feeds aus der von newsbeuter benutzten sqlite-Datenbank.
    • Link-Import aus Datei mit URLs:
      • Als Parameter der Commandline wird ein Dateiname an das "urldb-tool" übergeben.
      • Für alle URLs aus der (Text-)Datei wird das Dokument geholt, der Title-Tag extrahiert und dann ein Datenbankeintrag generiert


Programmiersprache:OCaml
Libraries:OCaml-Sqlite, OCaml-Mysql
Tools:git, make
Datenbanken:sqlite3, MariaDB (MySQL)
Hardware-Plattform:PC
OS:Linux

23.01.2015  
  • Besuch einer Konferenz zur Funktionalen Programmierung

Besuch der BOB-Konferenz 2015, einer Konferenz zur Funktionalen Programmierung.

Folgende Vorträge bzw. Workshops besucht (Auswahl):

  • Keynote: Anil Madhavapeddy: "Towards Functional Operating Systems"
  • "Introductory Haskell"
  • "Funktionale Konzepte bei der Entwicklung von Benutzeroberflächen"
  • "Clutching a grip on AUTOSAR using Haskell"
08/2014 - 09/2014  
  • Software- Design und Entwicklung / Maintenance (Tool any-dl)
    • Umstrukturierung des Htmlparser-Moduls: Hinzufügen von Funktionen mit einer Selenium-ähnlichen API (DOM-Parser / Document Object Model).
    • Hinzufügen des Kommandos "tagselect" zum Sprachumfang. Das tagselect-Kommando ermöglicht, unter Zuhilfename der Selenium-like API, gezielt einzelne Tags aus dem HTML zu extrahieren, nach Tagname, Tagparametern usw.
      Dies ermöglicht sowohl einfacheres Analysieren von HTML für den eigentlichen Zweck des Tools (Videodownloads zu vereinfachen); darüber hinaus eröffnet es aber auch die Möglichkeit, gezielt Daten aus Webseiten zu extrahieren, also neben dem Video-download auch allgemeiner als Webscraper zu agieren.
    • Implementierung des csv-Exports, das die Webscraper-Möglichkeiten abermals wesentlich verbessert.

Programmiersprachen:OCaml
Tools:ocamllex, ocamlyacc
Libraries:CURL / OCaml-Curl, Ocamlnet, XML-light, ocaml-csv
Hardware-Plattform:PC
OS:Linux

08/2014 - 08/2014  
  • Tool-Entwicklung Hyperlink-Datenbank

Design und Entwicklung eines Tools für die Speicherung von Internet-Links (HTML-Hyperrefs) in einer MySQL- / MariaDB-Datenbank. Das Tool hat eine CLI- und GUI-Schnittstelle. Lookup der Daten aus der Datenbank geschieht per Textinterface mit einem einfachen Kommando. SQL-Wildcards ( SQL-like mit % ) sind erlaubt. Mit Tools der Unix-Toolbox (z.B. less) kann man in den entsprechenden Ergebnissen schnell fündig werden. Die URLs der Dokumente können via GUI eingegeben werden, aber auch schon per CLI an das Tool übergeben werden. Das Dokument kann aus dem Netz geladen werden, der Titel wird dabei dann automatisch extrahiert. Datum und Kommentare können eingegeben werden, bevor der Datensatz in die SQL-Datenbank eingetragen wird.
Im Dokument enthaltene Hyperlinks werden dann automatisch angezeigt.

OS:Linux
Programmiersprache:OCaml
GUI:Tk (labltk)
Datenbank:SQL ( MySQL / MariaDB )

02/2014 - 03/2014  
(Eigenbedarf / Weiterbildung / Studium)
  • Software- Design und Entwicklung / Maintenance
    • Weiter-Entwicklung des Downloadertools / Web-Scrapers any-dl, wie auch schon in 2012/2013.
      (Details, siehe Projektbeschreibung 12/2012 - 02/2013).
    • Weitere Tools (weiter)entwickelt, u.a. ein Downloadertool mit einem minimalistischen Parser für JavaScript ausgestattet, um auch Webseiteninhalte parsen zu können, die JavaScript-Code enthalten.
    • Migration von MySQL nach Mariadb für eigene Datenhaltung, u.a. MySQL- / Mariadb-basierte Link-Datenbank (statt Browser-Bookmarks).
  • Logik, Schlussweisen, formale Sprachen
    • informelles Schliessen
    • mathematische Beweisführung
    • Aufbau formaler Sprachen (Syntax und Semantik) aus mathematisch-logischer Sicht

Programmiersprachen:OCaml
Tools:ocamllex, ocamlyacc
Libraries:CURL / OCaml-Curl, Ocamlnet, XML-light, PCRE-OCaml
Hardware-Plattform:PC
OS:Linux

10/2013 - ...  
  • Mathematik-Studium

Aufnahme des Studiums der Mathematik.
03/2013 - 03/2013  
Physikalische Messtechnik (Berlin)
  • Linux- Administration

Administrationsaufgaben für Embedded-ARM-Board mit Linux als Betriebssystem.
Das Board dient der Auswertung von Refraktometer-Messdaten und soll in einem Windows-Netzwerk betrieben werden. Dafür müssen Daten - ohne administrativen Aufwand während des Betriebs - zum / vom Board übertragen werden können.
  • Lösen von Mounting-Problemen von NTFS-formatierten USB-Sticks
    (Kernel-dependencies updated)
  • Untersuchen von Möglichkeiten, SAMBA-Mount auf Embedded ARM-Board zu ermöglichen (CIFS-Kernel-Module)
  • Konfigurations-Optimierung (logrotate aktivieren)
  • Support der Entwickler zu einigen Linux-Themen

Hardware-Plattform: Friendly-ARM Mini-6410 (Embedded)
OS:Linux (on Friendly-ARM embedded)

12/2012 - 02/2013  
(Eigenbedarf)
  • Software- Design und Entwicklung

Entwicklung eines Downloader-Tools / Domain Specific Language für das Downloaden von Fernseh-Mediatheken-Files. Das Tool ist (Stand 2013-01-14) noch in Entwicklung, jedoch bereits lauffähig und auf Github als freie Software unter der GPL verfügbar. any-dl Es besitzt eine Eingabesprache (DSL), die die Download-Parser definiert. Das Tool hat einen URL-Match-Mechanismus, der die Mediatheken-URL's die per Kommandozeile als Parameter übergeben werden, zu den passenden Parsern matcht und dann automatisch den Download startet.
Da die Mediatheken-Parser aufgrund der Parser-Definition-Language konfigurierbar sind sind, muss das eigentliche Tool nicht angepasst werden, falls die Struktur der Mediatheken-Seiten sich ändert.
Es ist dann ausreichend, die Parser-Definitionen den geänderten Mediatheken anzupassen.

Programmiersprachen:OCaml
Tools:ocamllex, ocamlyacc
Libraries:CURL / OCaml-Curl, Ocamlnet, XML-light, PCRE-OCaml
Hardware-Plattform:PC
OS:Linux

07/2012 - 02/2013  
Industrieelektronik für Medizintechnik (München)
  • Software- / Hardwareentwicklung und Dokumentation für ARM-basiertes Development-Kit (Medical Applications) / Applikationsingenieur

Für ein ARM-basiertes Development-Starterkit: Support bei Kundenanfragen (Code-Snippets für den Anwender), Unterstützung in der Code-Verifikation (Hauptsoftware, Testtools, Tests), technische Dokumentation erstellen und Verbesserung bereits vorhandener Dokumentation.

Design- und Code-Review / Überprüfung von Demo-Applikations-Code (in C) und Unit-Testing-Tools (in Python).

Design-/Entwicklung eines Perl-Tools (klassisch imperativ und OOP) zur Prüfung der Code-Availability auf Dateibasis, inklusive Detektion von Filechanges (via Checksums der Dateien). (Zwecks Aufspürens von Änderungen und fehlenden Dateien wegen häufiger Zwischen-Releases.)

Aufgrund meiner Findings hat der Kunde (Großkonzern) seine seit Jahrzehnten gepflegten Coding-Rules für C-Programmierung aktualisiert und die wichtigen, von mir gefundenen Punkte ergänzt.

Programmiersprachen:C, Python, Perl
Tools:git, make
Hardware-Plattform:ARM-basiertes Embedded-Board (Kundenentwicklung), PC (CYGWIN auf Windows)
Hardware (Tools):Tantino for ARM (JTAG-Debugger), JLINK (JTAG-Debugger)
Software:HiTOP, IAR, cygwin, Nano-X
OS:FreeRTOS

04/2012 - 05/2012  
  • Entwicklung einer Hilfs-Bibliothek für einfaches Lesen/Schreiben von jpeg-Files, sowie Tools für die Bildanalyse

Tools (Kommandozeilensteuerung / CLI) für die Ermittlung von Qualitätsunterschieden verschiedener jpeg-Dateien; es geht um das Ermitteln der Qualitäts-Abweichungen von jpeg-Bildern, nach Konvertieren auf kleinere Dateigrößen.
  • Tools für die Analyse von Bildern/Fotografien, die folgendes ermöglichen:
    • Erzeugung eines Differenz-Bildes zweier Bilder
    • Histogramm der einzelnen Farbwerte (R, G, B, Grauwert) (auch direkte Differenzbildung)
    • Histogramm der vorkommenden Farben (Farb-Tripel, also Histogramm der 16.777.216 Einzelfarben) (auch direkte Differenzbildung)
    • Histogramm der einzelnen Farbwerte (R, G, B, Grauwert) für jede Scanline separat ("Moving Histogram")
  • Hilfs-Bibliothek für die obigen Tools, die auf libjpeg aufsetzt und das einfache Lesen und schreiben von jpeg-Files ermöglicht.

OS:Linux
Programmiersprachen:C
Bibliotheken:libjpeg
Hardware-Plattform:PC

02/2012 - 03/2012  
  • Einarbeitung in die Arch-Linux Pakete-Erstellung

Einarbeiten in die die Arch-Linux Pakete-Erstellung mit makepkg.

OS:Linux
Hardware-Plattform:PC

05/2011 - 07/2011 
Messtechnik
  • Messdatenanalyse und Implementierung von R-Extensions in C

R-Scripts für Meßdatenanalyse entwickelt; R-Extenisons in C entwickelt.

OS:Linux
Programmiersprachen:R, C
Software:R
Hardware-Plattform:PC

11/2010 - 11/2010 
Luft- und Raumfahrt / Avionik (Raum Stuttgart)
  • Fehlersuche in Flugnavigationssystemen / Hardwaretests

11/2008 - 09/2010  
Messtechnik (Windenergie) (Berlin)
  • Hard- und Software-Entwicklung, Vor-Entwicklung, Testing, Support für derzeitige Produkte
Wind-Messtechnik (Datenlogger): Neuentwicklung eines Datenloggers (Analogteil und Software).
Teils auch Kundensupport / Messdaten-Analyse / Fehlerbehebung vorhandener Geräte.

Support / Beratung der festangestellten Entwickler, insbesondere im Bereich Analogelektronik und Messtechnik.

Entwicklung hochpräziser Messschaltungen:

  • Differentielle Widerstandsmessungen (Sechs- bzw. Fünfdraht-Messung) für potentiometrische Windfahnen
  • Impuls-/Periodendauermessung für Anemometer
  • Messwertquantisierung mit ADC (Sigma-Delta)
  • Differenzverstärker für Thermosensoren (Signalpegel: 0...1 V; Ausgangspegel: 0...1 V; Single Supply)

Ansteuerung der Mess-Schaltungen mit Microcontroller:

  • AVR-Controller ATmega1280
  • Programmierung des Controllers in C und Assembler
  • Entwicklung eines Fileformats und der Implementierung in C für Messwertdaten-Speicherung auf SD-Karte
  • Entwicklung von Software zum Einlesen von Windfahnendaten (Thies seriell / TMR) über spezielles Zweidrahtprotokoll

Software-Entwicklung:

  • Python-Script für SCPI-Protokoll: Datenabfrage von Oszilloskop
  • Entwickeln eines Fileformats und der Implementierung in C für Messwertdaten-Speicherung auf SD-Karte
  • Datenauswertungs-Scripts in R

Weiteres:

  • Beratung im Bereich Messtechnik
  • Beratung im Bereich Software-Struktur
  • Beratung im Bereich Produktionstests
  • Unterstützung / Einarbeitung der anderen Entwickler
  • Support bei der Auswahl von Messgeräten
  • Prüfung von Schaltplänen
  • Zusammenarbeit mit Layouter-Firma (Multilayer-Spezialisten)
  • RS-232 Sniffer-Box entwickelt (Hardware und Software) für das Protokoll-Reverse-Engineering der Altgeräte
  • Filterberechnungen mit ngspice
  • Software (AVR-Controller) zum Auslesen der Daten einer seriellen Thies First Class TMR Windfahne (TMR: Tunnel Magneto Resistance)
  • Counter-Selector / Multiplexer für Counter-Eingänge entwickelt
  • Vermessung eines Anemometers (NRG#40) zur Ermittlung der Kenndaten (zum Vergleich mit Datenblatt)
  • Wirkungsgrad-Abschätzung und -Messungen (Logger-Kennwerte)
  • Überprüfen von Formeln zur Berechnung der Windleistung
  • Beschreibung von messtechnischen Grundprinzipien (unter Anderem Vierdrahtmessung) für die Diskussion im Team bzgl. auszuwählender Messverfahren bzw. zwecks Dokumentation der Design-Entscheidungen
  • Auffinden von Fehlern im Windmess-Standard: Nachdem mir im Projektverlauf aufgefallen ist, daß im Standard, der zur Beurteilung von Messungen der Windenergie-Branche herangezogen wird, Fehler enthalten sind, habe ich eine Korrektur vorgeschlagen.
    Es wird seit Jahrzehnten die Windrichtung "linear" gemessen, obwohl es sich hierbei um radiale Daten handelt.
    Ich hatte daher angeregt, den Windmess-Standard entsprechend zu ändern, also zuküftig Windrichtungen als radiale Daten zu behandeln.


Hardware/Meßtechnik:HMO 3522, HMF 2525, Toellner-Netzgerät (arbitrary)
Programmiersprachen:C, Assembler (AVR), Python, Perl, OCaml, R (S/S-PLUS)
Hardware-Plattform:PC, Embedded-System mit AVR / ATmega1280 und ARM9
Software:R (S/S-PLUS), SPICE (ngspice)
Tools:svn, trac, make
Protokolle:Modbus seriell, RS-485, SCPI, Thies seriell TMR
Sensoren:NRG#40 Anemometer, Galltec, Thies First Class TMR (seriell, Tunnel Magneto Resistance)

07/2008 - 08/2008 
Automotive (Deutschland und Tschechien)
  • Engineering Task Force zur Reduzierung der Ausschuss-Kosten
    (scrap cost reduction)

In diesem Projekt ging es um die Verringerung von Kosten aufgrund von Ausschuss in der Produktion. Die produzierten Geräte sind Radio-Navigationssysteme (GPS). Es sind Kenntnisse von Messtechnik / Hardware gefordert sowie gute Kenntnisse in der Datenanalyse.
  • Root Cause Analysis: Analyse der Ursachen der erhöhten Ausschussrate.
    Auswertung der Produktionsdaten (Zeitreihenanalyse, statistische Analyse, explorative Datenanalyse / Datamining).
  • Vorschlagen von Massnahmen zur Problemlösung.
  • Vorgehensweise: Analyse von Massendaten aus der Produktionslinie.

Aufbereitung der Rohdaten (Logfiles) der Fertigungsstraße mithilfe von spezifisch dafür entwickelten Perl-Scripts (Datenextraktion / Datenkonvertierung). Die so aus den Rohdatensätzen extrahierten Messwerte wurden dann mithilfe des Statistik-Programms R analysiert.

Verwendete Verfahren: Zeitreihenanalyse, Mittelwert, Median, Standardabweichung, Autokorrelation (AKF), Kreuzkorrelation (KKF).

Es konnte damit aufgezeigt werden, daß die Probleme nur auf einer spezifischen von mehreren Fertigungsstrassen auftraten. (Kontaktprobleme durch Vereisung im Klimaschrank -- zu geringer und stark schwankender HF-Pegel am DUT).

Der Arbeitsort war Deutschland und Tschechien.

Software:R (S/S-PLUS)
Programmiersprache:Perl, R (S/S-PLUS)

01/2008 - 04/2008 
(interne Prozesse)
  • Umstellen der eigenen Geschäftsprozesse auf SQL-Datenbank
  • Einarbeitung in 3D-Software "Blender"

Interne Prozesse:
  • Adressverwaltung: Datenbank-Design und Perl-Anbindung an MySQL mit DBI-Modul, GUI mit Gtk2-Perl.
  • Ausgabenverwaltung: Ausgaben-Verwaltung in C, mit ncurses-Bedienoberfläche und Anbindung an MySQL (C-API); Datenbankdesign (SQL).

Einarbeitung in die 3D-Animationssoftware Blender.

OS:Linux (Debian)
Programmiersprachen:SQL, Perl (DBI-Modul, Gtk2), C (ncurses/mysqllib)
Hardware-Plattform:PC (AMD-64)

12/2007 - 02/2008 
  • Apache-Logfile-Analyser entwickelt (Design und Implementierung).
  • Jpeg-Beschrifter entwickelt (Design und Implementierung).

Logfile-Analyse-Tool entwickelt (OCaml), für Dokumenten-Zugriffsstatistiken.
Bild-Beschriftungsprogramm in C entwickelt für Beschriftung von Jpeg-Dateien.

OS:Linux (Debian)
Programmiersprachen:C, OCaml (mit ocamllex)
Bibliotheken:libjpeg, freetype2
Software:Gnuplot
Hardware-Plattform:PC (AMD-64)

01/2008 - 01/2008  und
11/2007 - 11/2007  und
07/2007 - 07/2007 
  • Apache-Logfile-Retriever (Open-Source) mit SQL-Abfrage-Syntax entwickelt
    (Design und Implementierung).

Entwicklung eines Logfile-Retriever-Tools, in dem man mit einer von mir entwickelten SQL-ähnlichen Abfrage-Sprache (SQL-Subset) Apache Logfiles nach seinen Einträgen absuchen kann.

Beispiel-Syntax:
      SELECT host,date,client,referrer FROM "apache.log" where host = "foobar.host.net";

Von Zeit zu Zeit bringe ich neue Features ein:

  • Nov. 2007: Implementierung von ORDER BY
  • Jan. 2008: Ausgabe-Alignment, mehrere Ausgabeformate, Ausgabe der Ergebnisse in Dateien
  • Jan. 2008: transparentes Lesen von gzip-Dateien

apalogretrieve steht nun als OpenSource-Software zur Verüfugung: apalogretrieve

OS:Linux (Debian)
Programmiersprachen:OCaml (mit ocamllex und ocamlyacc)
Hardware-Plattform:PC (AMD-64)

07/2007 - 07/2007 
  • Teilnahme an der TWK 2007
    (Tübinger Wahrnehmungskonferenz)
Teilnahme an der Fachübergreifenden TWK 2007 am "Max Planck Institute for Biological Cybernetics". TWK 2007
05/2007 - 06/2007 
(interne Prozesse)
  • Umstellung der Versionsverwaltung von cvs auf Subversion
12/2006 - 03/2007 
und
08/2006 - 11/2006 
Bankwesen (Hamburg)
  • Datenbank-Migrations-Validierungs-Programme entwerfen und erstellen; für die Migration von DB2 nach Oracle. (Qualitätssicherung)

Mehrere Tools entwickelt für den Vergleich von Datenbank-Unload-Logs von DB2 (Source-DB) mit Datenbank-Loader-Logs von Oracle (Target-DB), um mögliche Inkonsistenzen aufzuzeigen. Ausserdem Vergleich von Select-Count-Files.

Tool entwickelt zum Verteilen der Migrations-Daten/-Software vom Entwicklungs- auf den Migrationshost und Backup-Erstellung (nach erfolgter Migration) von den Daten auf dem Migrationshost zwecks Sicherung auf dem Entwicklungshost.

Entwicklung einiger dtrace-Scripte zur Analyse der laufenden Datenbank-Prozesse (syscall-Provider).

Weitere von mir entwickelte Tools in diesem Projekt (Auswahl):

  • Tool für grafische Statistikdaten-Darstellung: iostat-Ausgaben in Postscript/PDF umwandeln mit einem Tool, das die Daten in Diagramme umsetzt (mit Nulllinie und unterteilter Zeitachse) sowie die Minimal- und Maximalwerte ausgibt. (CPU-Daten auf 100% skaliert, alle anderen Diagramme autoskaliert auf Maximum).
    Für jedes iostats-Eingabefile wird eine Ausgabeseite im Dokument erzeugt.
  • Trace-Saver-Tool: Traces mit einigen GB Größe, welche von einem cron-Job regelmäßig gelöscht werden, obwohl die schreibenden Prozesse noch weiter Daten in die Files schreiben, werden von diesem Tool in voller Größe gesichert.
  • Unload-Splitter-Tool: Tool zum splitten von variable-record-length-Files in Einzelfiles, basierend auf einer Mappingtabelle, die Record-Keys auf Record-Längen mappt.
  • Prozess-Parallelisierungstool für Kommandozeilen-Aufrufe mit Begrenzung der maximalen Anzahl der gestarteten Prozesse
  • File-Patcher, der WHEN-Clauses und Dateinamen in Loader-Dateien gemäß einer Mapping-Datei anpasst.
  • Programm zum Verteilen von Software vom Entwicklungshost auf die Integrations- und Produktions-Hosts.

OS:Sun-OS, (OS-X, NT 4.0, indirekt IBM-Mainframe)
Programmiersprachen:Perl, OCaml, C, (partiell SQL)
Hardware-Plattform:Sun Fire E4900, (indirekt/Umfeld auch IBM-Mainframe)

11/2005 - 12/2006 
Industrie-Elektronik (Berlin)
  • Dokumentation (und Restrukturierung) von Software für die Präzisionsmesstechnik im Bereich Magnetfeldmessung.


Die vorliegende Software war in Visual Basic geschrieben und wurde von mir dokumentiert und restrukturiert. Die Dokumentation folgt dem Literate Programming Paradigma und wurde mit LaTeX2ε und graphviz, sowie eigens geschriebenen Perl-Scripten realisiert. Es werden der Entwicklung Verbesserungsvorschläge (Code-Refactoring, Modularisierung) unterbreitet.

Die zu dokumentierende Software dient dem automatischen Messgeräte-Abgleich und greift via USB auf externe Module zur Gerätesteuerung zu (D/A, A/D und digital IN/OUT).


Details der Dokumentation: Es werden mit den Perl-Scripten Dokumentations-Texte und Graphik-Anweisungen für FlowCharts aus dem Quelltext (Kommentar-Extraktion) extrahiert.
Jede Programm-Routine bekommt automatisch einen Eintrag in der Dokumentation (ein Abschnitt pro Routine); der extrahierte Text wird dem Abschnitt der jewiligen Routine zugeordnet. Weiterhin werden Grafik-Anweisungen für das graphviz-Tool aus dem Quelltext extrahiert und daraus PDF-Grafiken erzeugt, welche in die jeweiligen Dokumenten-Abschnitten, die eine Routine beschreiben, eingebunden werden.

Die generierte Dokumentation ist in drei Hauptabschnitte eingeteilt:

  • Dateien-Kurz-Übersicht: Kurzbeschreibung der jeweiligen Datei/Modul.
  • Dateien-Detail-Übersicht: Ausführliche Beschreibung der Dateien mit einer Kurzbeschreibung der Routinen in den Dateien.
  • Routinen-Detail-Beschreibung: Zu jeder Routine ist dort die ausführliche Beschreibung inkl. Flow-Charts zu finden.
Zusätzlich gibt es Abschnitte, die in die Dokumentation einführen, die Hardware-Komponenten aufführen, die Software-Schichtung beschreiben. Die Installations-Anweisung und Registry-Einträge finden sich im Anhang, wo auch die Ausgabedateien beschrieben sind. Im Anhang der Dokumentation ist ausserdem das Dokumentationssystem selbst beschrieben.
Für jede Routine gibt es einen Eintrag im Index, so daß eine Routine schnell gefunden werden kann, auch wenn man nicht weiss, in welcher Datei (welchem Modul) sie steht.
(Mit Acrobat-Reader kann man durch Klicken auf den Index-Eintrag direkt zur Beschreibung der jeweiligen Routine gelangen.)


Zusätzlich zur Durchführung der Dokumentation der Software wurden auch Änderungen an der Software durchgeführt. Das Systemverhalten des Prüflings und des gesamten Testsystems musste hierbei bei der Software-Änderung berücksichtigt werden.

Berücksichtigt werden mussten:

  • Vorgaben der Testparameter
  • Nichtlineare Auswirkungen der Testparameter
  • Messrauschen
  • Temperaturverhalten
  • Zeitliche Komponenten / dynamisches Verhalten (Einschwingverhalten) sowohl des Testsystems als auch des Prüflings, bedingt durch den Aufbau des Testsystems, den Aufbau des Prüflings, den Aufbau der vorhandenen Prüfsoftware, thermische Drift, ...

OS:Mac OS-X, (Windows)
Software:LaTeX2ε, Graphviz, Perl, (VisualBasic)
Programmiersprachen:Perl, (VisualBasic, Postscript)
Hardware-Plattform:PowerMac G4 (und Intel-PC)
Messtechnik-Hardware:Spectra (I/O-Module), National Instruments (GPIB), Prema (Voltmeter)

02/2006 - 02/2006 
Ballett-Studio (Berlin)

Kurzprojekt zur Erstellung des Konzepts und der Webpages.
Bis Anfang 2007 wurde von Zeit zu Zeit eine Aktualisierung und Verbesserung der Seiten durchgeführt (ohne weitere Erwähnung im Profil).

  • Entwurf / Gestaltung von Webseiten / Homepage für ein Ballettstudio (klassischer Tanz), unter Berücksichtigung typographischer Gesichtspunkte in Anlehnung an klassische Typographie.

Es wurde ein HTML-Editor benutzt, um das Layout einfach zu realisieren; für Details wurde der HTML-Code dann an manchen Stellen "von Hand" nachbearbeitet.

OS:Windows-XP, Mac OS-X
Sprache:HTML
Software:HTML-Editor, ftp

08/2004 - 03/2005  Entwicklung von OpenSource-Tools:

  • Programm zum Entfernen von Dubletten in Mailbox-Dateien
    (mbox-cleaner, siehe siehe Brave GNU World 71/ Linux-Magazin 04/2005).

  • Programm zum Sortieren von HTML-Links nach Link-Text,

  • Programm zum Einsortieren von Dateien in Verzeichnisse, basierend auf der Dateinamen-Struktur, gewonnen durch Klassifizierung der Buchstaben ("character classes"). (pftdbns).

  • Weitere Tools

OS:Mac OS-X, Linux
Programmiersprachen/Tools:OCaml, ocamllex, ocamlyacc, LaTeX2ε, lout, Postscript
Hardware-Plattform:PowerMac G4 und Intel

06/2004 - 08/2004 
Bildungsträger (Berlin)

  • Administration eines Servers mit e-Learning-Software
    Update eines laufenden e-Learning-Servers, auf der die Software stud.IP und ILIAS benutzt werden. Update der PHP-Sourcen und SQL-Datenbank sowie Anpassung der Software an Kundenbelange und prüfen der Funktionalität der Software.
    Dokumentation in LaTeX2ε.

OS:Linux
Software:stud.IP, Ilias, LaTeX2ε
Software-Umgebung:Apache, MySQL
Hardware-Plattform:Intel

02/2004 - 04/2004 
Internet-Dienstanbieter (Berlin)

  • Entwicklung eines Logfile-Statistik-Programms
    Entwurf und Implementierung eines Statistik-Programms für die Auswertung von Sendmail-Logfile-Daten.
    Es wurde zuerst eine Perl-Version entwickelt, und später die Applikation in OCaml "from scratch" reimplementiert. Dies erwies sich (voraussehbarer Weise) als optimale Entscheidung, da OCaml für komplexe Probleme besser geeignet ist als Perl.

OS:Linux
Software:OCaml, Perl
HW-Plattform (Entwicklung):Mac PowerBook G4
HW-Plattform (Einsatz):Intel

02/2004 - 02/2004 
Messtechnik (Beratung) (Berlin)

  • Entwurf einer elektronischen Schaltung:
    Kurzschlussbremse für Elektromotoren. Die Schaltung dient zum elektronischen Variieren der Bremsstärke.
    Die Schaltung wurde mit OPs und FETs realisiert.

Reine Beratung für den Bereich Analogtechnik.

11/2002 - 12/2002 

Produkt-Vorentwicklung

  • Entwurf, Implementierung und Test einer serverbasierten (multithreaded) OpenGL-Applikation (Animation, also Echtzeit-Bedingungen) auf dem X11-Window-System.
    Man kann sich bei dieser Applikation auf dem Server einloggen und der dort laufenden 3D-Animation Steuerkommandos übergeben, sowie Feedback der Applikation auf dem eingeloggten Terminal (oder einer anderen Applikation) entgegen nehmen.

Programmiersprache:C
OS:Linux
Hardware-Plattform:MacIntosh G4 (Powerbook)

01/2002 - 08/2003 
Fortbildung

  • Fortbildung in Laban-Bartenieff-Bewegungsstudien
    (nicht-technischer Bereich: Der Blick über den Tellerrand)

06/2001 - 12/2001 
Industrie   (internationales Unternehmen; Arbeitsbereich Bahn) (Berlin)

  • Softwaretests (Code-Abdeckung / Testabdeckung, Statistik) von C-Modulen eines Großprojekts für Bahn-Signalisierungs-Anlagen.

  • Es wurden - ergänzend zu der Durchführung der Tests/Code-Analyse - Perl-Scripte zur vereinfachten Durchführung der Tests geschrieben.

  • Ein weiteres Tool setzt die in den Testbeschreibungen vorhandenen Kommentare in HTML-Dateien um, damit die Quintessenz der Tests dem firmeninternen Qualitätsmanagement in geeigneter Form zugänglich gemacht werden können.
Die Tests wurden im Rahmen des V-Modells durchgeführt.

Test-Tool:Attol / RTRT (Rational)
Programmierung:C, Perl
Versionsverwaltung:ClearCase
Ausgabeformate:HTML
OS:Sun-OS

02/2001 - 04/2001 
Internet-Dienstanbieter (Berlin)

  • Problem-Analyse, Design und prototypische Implementierung eines generischen Online-Marketing-Tools.
    Aus einer abstrakten, marketingspezifischen Beschreibung (domain specific language) wurden Fragebögen und die darunter liegenden Datenbanken (SQL) für Online-Befragungen generiert.
    Es handelt sich hier um einen Code-Generator / Domain Specific Language.

Programmiersprachen:Perl, C
Dokumentationstool:perlpod
OS:Linux

05/2000 - 02/2001 
Consumer-Elektronik / Internet   (internationales Unternehmen) (Berlin)

Entwurf, Entwicklung und Implementierung von Testsoftware in Perl, die effiziente Tests der Hauptsoftware und der Hardware ermöglicht, sowie Unterstützung des Haupt-Projekts (Perl und C):

  • Testsoftware für Prüfung der installierten Software in der Geräte-Produktion (Entwicklungszeit: 6 Wochen bis zur Einsatz-Reife in der Produktion.) Das Tool testete die Vollständigkeit und Korrektheit der installierten Software in der Produktion.

  • Voll konfigurierbares Testtool, mit Geräteklassen: Mailserver, Mails, User und Testlinge: Simulationssoftware, welche die zu produzierenden Geräte (Mailverschlüsselungs- Hard- und Software) im Zusammenspiel mit Mailservern im Internet simuliert.
    Es werden sowohl die Testlinge, die versendeten E-Mails und auch das Internet (Mailserver) simuliert, z.B. durch Verändern der Mailheader/-Bodies. Auch die Pfade der E-Mails durch das (simulierte) Internet konnten in abstrakter Notation vorgegeben werden.
    (Notation: Absender/Empfänger der Mail, Liste der Mailserver, Art der Mail - alles auch mit Aliasing im Testscript selbst; includes anderer Testscripte möglich, ...)
    Das Tool enthielt ein Dokumentationsmodul, das die Tests (Mailpfade) in grafischer Weise dokumentierte und sie als PostScript- sowie PDF-Dateien ausgab.
    Es wurden LaTeX2ε und groff/pic zur PDF-Erzeugung eingesetzt.
    Programmiersprache: Perl (OO)

  • Ein weiteres Testtool, das eine echte (nicht-simulierte) Testumgebung für die Prüflinge darstellte: Es wurden die Mails tatsächlich versendet (via sendmail) und am Empfangsort auf Korrektheit geprüft. Diese verteilt (auf mehreren Hosts) laufenden Tests, die von einem Host aus gestartet und über das Netz gesteuert werden können wurden via RPC (mit Perl) implementiert. Während der Tests konnte der Benutzer in konfigurierbaren Zeitabständen eine Statistik der Tests auf dem Bildschirm erhalten.
    Dieses Testtool wurde später erweitert, um es für paralleles Testen mehrerer Prüflinge im Produktionszyklus einzusetzen.
    Es wurden vier Geräte gleichzeitig getestet; prinzipiell war das Testtool jedoch beliebig erweiterbar und nur über die Anzahl der eingesetzten Ethernet-Karten und die Größe der Bildschirmdarstellung (Perl/ncurses auf 80x25-Konsole (durch Produktionsablauf vorgegeben)) begrenzt.
    Programmiersprache: Perl

  • Weitere Programme/Tools, wie beispielsweise (in C geschriebene) Wrapper zum Ausführen von Scripten in sicherheitskritischen Bereichen (von unter Apache laufenden PHP-Scripten getriggerte Aktionen).

  • Erstellen von Test-Scripten in der Eingabesprache der oben genannten speziellen Testtools.
Die Testtools und die zugrundeliegenden Testkonzepte wurden mit den Perl-eigenen Dokumentationsmöglichkeiten sowie mithilfe des Textsatzsystems LaTeX2ε erstellt.
Einige der C-Programme wurden mithilfe von LiterateProgramming-Tools erstellt und ermöglichten das gleichzeitige und verwobene Erstellen von Programmcode- und Dokumentation.

OS:Linux
Datenbank:MySQL
Programmiersprachen:C, Perl
Protokolle:TCP/IP, RPC
Dokumentation:LaTeX2ε, perlpod

08/1999 - 01/2000 
Industrie-Elektronik (Telekom-Zulieferer) (Berlin)

  • Testsoftware geschrieben (Perl, C) für Produktionstests, Auswertescripte (Statistik/Recherche in Logfiles) in Perl für Analyse der Daten aus den Logfiles der Produktionstests. Einlesen von Messdaten via serielle Schnittstelle ( RS-232 ).

  • Testhardware entwickelt und aufgebaut: Multimeter (mit RS-232-Schnittstelle), mechanische Prüflings-Halterung, Spannungsversorgung.

  • HTML-Seiten/CGI-Scripte (Perl) für Eingabe von Reparatur- Informationen und Recherche nach aktuellem Produktionsstand und Gerätestatus.

  • Server in C, der die Daten vom CGI-Script über's Netz entgegennimmt und auf dem Hauptserver ablegt.

  • "Remote-gdb": Programm zur Automatisierung von Programm-Läufen des GNU-Debuggers gdb; Steuerung des "Remote-gdb" über externes Perl-Script.

  • Pflegen des Qualitätsmanagements-Handbuchs (ISO 9000/900x) in LaTeX2ε.

Dokumentation/QM-Handbuch:LaTeX2ε
Programmiersprachen:C, Perl
OS:Linux, im Embedded-Umfeld.
02/1999 - 08/1999 
Universität (Berlin)

Systemadministration Linux:

  • Installieren und Verwalten von Hardware, Treiber installieren.
  • Kleineres Netz mit 5 (fünf) Forschungs-/Entwicklungs-Rechnern verwalten/konfigurieren.
  • Benutzer unterstützen.

01/1999 - 02/1999 
Verlag  (Wissenschaftlicher Fachbuch-Verlag)

Lektoratsberatung für naturwissenschaftliche Publikationen

  • Gangbarmachung des LaTeX2ε-Codes und Optimierung des Layouts;
    Layoutgestaltung/Korrektur von "Charly Harper: Analytic Methods in Physics".

Tools:eigens geschriebene Perl-Programme zur Datenkonvertierung
Programmiersprache:Perl
Textsatzprogramm:LaTeX2ε

10/1997 - 02/1999 
Weiterbildung

Einarbeiten in Programmiersprachen (Tcl/Tk, Perl),
Weiterbildung: Seminar "Marketing in die Praxis umsetzen"

03/1997 - 09/1997 
und
02/1996 - 11/1996
Industrie  (internationales Unternehmen) (Berlin)

Großgeräte für Energieversorger: Prüf-/Messtechnik
für Hochleistungsschalter der Kraftwerkstechnik

  • Entwicklung von Algorithmen und Implementierung von C-Funktionen für die mathematischen Problemlösungen der Signalverarbeitung in C im Zeitbereich.
    Diese wurden im Bereich der digitalen Messsignalauswertung von Messdaten des Prüffeldes für Hochspannungs- / Hochleistungs- Schalter eingesetzt.

  • Entwicklung eines Programms zur Generierung von Testdaten für das Testen der Hauptsoftware.

Es wurden mehrere Versionen von HP-Unix als Entwicklungsplattformen eingesetzt (HP-eigene Compiler).

Programmiersprache:C
OS:HP-Unix (HP-UX 8.0 bis HP-UX 10.0)
Hardware-Plattform:HP-9000-Serie

01/1997 - 02/1997 
Industrie-Elektronik (Berlin)

  • Entwicklung eines Lock-In-Verstärkersystems (LIA-System) zur Messung von Magnetfeldern. (Abschätzen, ob ein LIA- System in dem speziellen Falle unter dem Gesichtspunkt Aufwand/Nutzen für eine Geräte-Serienfertigung in einem kleinen Unternehmen technisch und wirtschaftlich realiserbar / tragbar ist.)

  • Aufbau und Erprobung von Schaltungen zur Messung der magnetischen Flußdichte im Frequenzbereich 10 kHz bis 250 kHz (u.a. Flux Gate).

  • Literaturrecherche für die genannten Projekte

Messtechnik:Oszilloskope, Multimeter, Temperaturmessgeräte, Präzisionsspulen/-magneten, Lötwerkzeuge

03/1995  Abschluß der Diplomarbeit

Thema: Signalbedingte Fehler der A/D-Umsetzung.

Die Arbeit basierte auf meiner in C geschriebenen Simulations- und Auswertungssoftware für A/D-Umsetzung verrauschter Signale.

Details: Simulation der Zuordnungsfehler (Quantisierungsfehler) eines A-D-Umsetzers für ein sinusförmiges Nutz-Signal, dem ein gaußverteiltes Rausch-Signal aufsummiert wird.
Es wurde die Quantisierungs-Fehlerrate in Abhängigkeit vom Rauschanteil analysiert.

Programmiersprache:C

10/1994 - 12/1994 
Institut für Kernforschung (Berlin)

(Messtechnik-/Elektronikabteilung)

Assembler-Programmierung von RS232-Schnittstellensoftware für D/A-Umsetzer.

Die Software wurde auf DOS-PC geschrieben und getestet. Zielprozessor: 8085.

Programmiersprache:Assembler

08/1992 - 08/1994 
Industrie-Elektronik / Mess- und Prüftechnik (Berlin)

Entwicklung Aufbau und Wartung von Schaltungen der elektronischen Messtechnik insbesondere für Halbleiter- / Wafermeßplatz (Mikrowellen- und Lasertechnik):

komplette Eigen-Entwicklungen:

  • Vierdrahtnetzteil
  • Laserdiodentreiber (Impulsschaltung für Pulslängen von einigen Nanosekunden)
  • Rauscharme Vorstufe für Lock-In-Amplifier

Mit-Entwicklungen/Optimierung:

  • Spannungs-Verstärker (Frequenzbereich bis 100 MHz)
  • I/U-Wandler

Neben der Entwicklung von Hardware wurden auch Geräte aufgebaut/montiert.

Messgeräte:Oszilloskope (Tektronix, Philips), Signalgenerator Rohde&Schwartz, Multimeter, Referenz-Spannungsquellen, Lötwerkzeuge
Dokumentation:an PC und Mac

Alle Datumsangaben immer inklusive des als Ende angegebenen Monats.
letzte Änderung:
04. August 2015