Symbolbild Fähigkeiten

Fähigkeiten

Ausbildung

Logo der TU Darmstadt

Dipl. Ing Elektrotechnik an der TH Darmstadt (heutige TU Darmstadt), Abschluss 1992. Fachgebiet Regelungstechnik. Mit einer Vorliebe für Statistische Signaltheorie bei Prof. Hänsler.

Programmiersprachen

In der Reihenfolge der Wichtigkeit für meine Arbeit

  • C++ ― Seit 1992 ― PC-Softwareentwicklung, vor Allem mit wxWidgets und GNU C++. Für Windows dann eben als Cross-Compilierung mit mingw.
  • C ― Seit 1990 ― Der Standard bei Embedded Entwicklungen. Bis ca. 2002 teilweise auch noch für Windows API Entwicklungen.
  • Strukturierter Text ― Seit 2009 ― SPS-Softwareentwicklung. Gerne mit Codesys (Beckhoff Twincat und Schneider Electric SoMachine ist auch Codesys).
  • VHDL ― Seit 2009 ― Für die Konfiguration von FPGAs.
  • bash ― Seit 2001 ― Die Shell für GNU/Linux-Systeme.
  • GNU Make ― Seit 2001 ― Weil mir das besser gefällt als Klickibunti IDEs wie Visual C++ und herstellerunabhängig ist.
  • GNU R ― Seit 2015 ― insbesondere in Kombination mit R Markdown das Werkzeug der Wahl für Datenauswertungen und Statistik.
  • awk, grep und sed ― Seit 2001 ― Um mal schnell ein Filterprogramm zu schreiben, das Daten aus Protokolldateien extrahiert.
  • SQL ― Seit 1999 ― Am Liebsten mit Postgresql, aber auch Mysql, DB/400, Firebase, Microsoft Jet Engine…
  • Delphi ― Seit 1994 ― Vor allem ab 2006 um ein missglücktes Projekt eines anderen Entwicklers zu Ende zu bringen.
  • php ― Seit 2002? ― Nett um mal was kleineres im Internet zu machen. Beispiele: Climate Widget und Rikscha Buchungskalender
  • java ― Seit 1999? ― Moderner als C++, aber nicht so gut für Hardwarenähe und Echtzeitverarbeitung.
  • COBOL/400 ― 1986-2006 ― Zur Programmierung von kaufmännischen Lösungen auf AS/400 Systemen (heutige iSeries). Hauptsächlich um mein Studium zu finanzieren. Mit meiner Software wurden mal Rechnungen für > 10 Millionen € im Jahr gestellt und entsprechende Lagerbestände verwaltet.
  • LaTeX ― Seit 2001 ― Für umfangreichere Dokumentationen.
  • JavaScript ― Seit 2001 ― Um diesen Standard gibt es keinen Weg. Beispiele: baerum, widget3d.
  • Assembler x86 ― Seit 1986 ― War früher mal wichtig, manchmal für Performance-Optimierungen sinnvoll. Heute um zu verstehen, was die Compiler aus meinem Code machen.
  • Pascal ― Seit 1983 ― Während meines Studiums die vorrangige Sprache. Damals Turbo Pascal.
  • Assembler Z80 ― Seit 1981 ― War mal cool, ich habe z.B. 1983 einen Fortran IV-Compiler in Assembler geschrieben, der von der c’t verkauft wurde.
  • Basic, dBase, C#, Perl, gnuplot ― Was hat man nicht alles so gemacht, im Laufe der Zeit… muss man nicht wiederholen.

Betriebssysteme

  • GNU/Linux seit 2001. Das ist wirklich beeindruckend.
  • Windows 3.1 (16-Bit) API-Programmierung bis Windows 11 (64-Bit). Um die marktbeherrschende Stellung gibt es leider keinen Weg drum rum. Das Betriebssystem der Enshittification
  • MacOS X ― Manchmal auf Kundenwunsch, gerne mit wxWidgets programmiert. Wenn ich Apple-Produkte gekauft habe, wurde ich immer veräppelt.
  • Openbsd ― Cool, aber ich habe noch keine eigene Software dafür geschrieben.
  • TCBSD ― Beckhoffs Anpassung von Freebsd als Echtzeit-SPS, sehr vielversprechend.
  • OS/400 und SSP ― Betriebssysteme von AS/400 und System /34. Veraltet.
  • CP/M 2.2 ― Z80 Betriebssystem. Veraltet.
  • NewDOS/TRS-DOS ― Z80 Betriebssystem. Veraltet.
  • Novell Netware ― Ich habe tatsächlich mal Software für NetWare geschrieben, aber nicht verkauft.

Virtuelle Maschinen

Meine Computer betreibe ich normalerweise unter Linux. Wenn Closed-Source Software zum Einsatz kommt, setze ich gerne auf virtuelle Maschinen. In der VM läuft dann Windows oder Linux, was gerade gebraucht wird.

Typischerweise benutze ich dafür qemu mit kvm auf der Linux Befehlszeile.

2001-2004 (?) hatte ich auch mal eine vmware-Lizenz, aber die machte immer wieder Schwierigkeiten und da habe ich auf qemu gewechselt.

Verschlüsselung

  • ssh für Rechnerzugänge
  • letsencrypt für Webserver
  • gnupg für E-Mail und Datei-Verschlüsselung
  • Außerdem habe ich auch schon private Certification Authorities mit openssl eingerichtet.
  • VPNs auf der Basis von openvpn.

Hardwareentwicklung

Einfache Elektronische Schaltungen gestalte ich manchmal selbst. Für anspruchsvollere Platinen greife ich auf Kollegen zurück.

Webhosting

Einen eigenen Webserver für meine Software habe ich seit 1995. In letzter Zeit habe ich mich aber auch mit Anwendungen beschäftigt:

  • WordPress, z.B. für die Verteilung aktueller Dokumentationen.
  • Jitsi im eigenen Büro, um Videokonferenzen mit optimalem Datenschutz umzusetzen.

Was ich nicht so mag

  • Eigentlich alles von Microsoft.
    • Visual Basic
    • Visual Studio
    • Word
    • Excel
    • Access
    • Ganz besonders: Teams.
  • Alles mit fragwürdigem Datenschutz
    • WhatsApp

Sprachen

  • Deutsch ― Muttersprache
  • Englisch ― Flüssig (C1?)
  • Spanisch ― Grundkenntnisse (A2?)