freiberufler Anwendungsentwicklung (v.a. Python); Server- und Netzwerkverwaltung, speziell FreeBSD und OpenBSD auf freelance.de

Anwendungsentwicklung (v.a. Python); Server- und Netzwerkverwaltung, speziell FreeBSD und OpenBSD

online
  • 85€/Stunde
  • 71634 Ludwigsburg (Württemberg)
  • Weltweit
  • de  |  en
  • 28.08.2024

Kurzvorstellung

Jahrelange Erfahrung Programmierung, System- und Netzwerkverwaltung (seit Schulzeiten). Nach Physikstudium Entschluß zur Selbstständigkeit.
Biete speziell Anwendungsprogrammierung in Python; Verwaltung von Free- und OpenBSD-Servern

Qualifikationen

  • Betriebssysteme (allg.)3 J.
  • Firewalls3 J.
  • FreeBSD3 J.
  • Git6 J.
  • ISP (Internet Service Provider)2 J.
  • Linux Entwicklung5 J.
  • Netzwerk-Sicherheit3 J.
  • Netzwerkadministration (allg.)1 J.
  • Objektorientierte Programmierung (OOP)6 J.
  • Python11 J.
  • Representational State Transfer (REST)1 J.
  • Serveradministration (allg.)3 J.
  • Systemadministration (allg.)3 J.
  • Testing (IT)6 J.
  • Ubuntu1 J.
  • UNIX5 J.

Projekt‐ & Berufserfahrung

Hardwaretester; Testentwickler
Rohde & Schwarz, Weilimdorf
12/2022 – 11/2023 (1 Jahr)
High-Tech- und Elektroindustrie
Tätigkeitszeitraum

12/2022 – 11/2023

Tätigkeitsbeschreibung

Black-Box-Tests der Hardware einer Funkplattform.
Die Kommunikationsmodi für Sprache und serielle Datenübertragung wurden in ein firmeninternes Testframework (in Python geschrieben) integriert. Dies machte es nötig, zwei Exemplare der Plattform anstatt über ein Funkmodul direkt zu verbinden. Diese Verbindungen waren jedoch modusabhängig und mussten daher mit einer Reihe Relais in Form eines mikrocontrollerbasierten Labor-Relaismoduls und einer selbstgebaute Verbindungsplatine gekoppelt werden.
Für die Datentest wurde ein Hardware-Protokolltester angeschlossen und per USB angesteuert. Dieser konnte Testdaten senden und empfangen, die verglichen wurden. Hierfür musste der in C geschriebene Treiber des Herstellers für Python gewrappt werden.
Für den Sprachtest musste über die Soundkarte des Laborcomputers Audio in die Plattform eingespielt, und die übertragene Soundausgabe aufgenommen und via NumPy mit dem Original verglichen werden.

Genutzte Technologien:
Python, Windows WSL, Linux, serielle Schnittstelle, Elektronikverdrahtung, Lötkolben, NumPy, Leiterplattenentwicklung in KiCAD

Eingesetzte Qualifikationen

Linux Entwicklung, Elektronik, LaTex, Python, Testdesign (IT), Testing (IT), Virtualisierung (Allg.)

Softwareentwickler und Softwaretester
Siticom, Ludwigsburg
9/2021 – 10/2022 (1 Jahr, 2 Monate)
IT & Entwicklung
Tätigkeitszeitraum

9/2021 – 10/2022

Tätigkeitsbeschreibung

Python + Robot Framework zum testen der ISP-Schnittstellen.
Um die gesamte Einwahlstrecke eines neu aufgebauten ISPs zu testen wurden Tests, geschrieben in Robot Framework und Python, entwickelt. Dies beinhaltete die Ansteuerung von CPEs/Heimroutern wie z.B. FritzBoxen, BNGs, Radius-Datenbanken, und Switches. Dabei wurden der Netzwerkverkehr auf der Gesamtstrecke Endkunden-CPE/ONT <-> OLT <-> BNG (optional <-> Mitbewerber-BNG) an jedem Zwischenschritt mitgeschnitten und analysiert.
Ein anderer Aspekt der abgetestet werden musste waren die Standardkonformität der semiinternen Datenbanken nach TM Forum. Hier wurden die REST-Schnittstellen angesteuert und deren Antwort ausgewertet.

Genutzte Technologien:
Python, Robot Framework, Linux, VLANs, Juniper BNGs, Virtualisation, Docker, tcpdump, wi
reshark, ANCP, EOAM, A10-NSP, VLAN-in-VLAN, REST-API

Eingesetzte Qualifikationen

Container Management, Docker, ISP (Internet Service Provider), Linux Entwicklung, Netzwerkadministration (allg.), Netzwerkmanagement, Python, Representational State Transfer (REST), TCP/IP, Testing (IT), Virtualisierung (Allg.), VLAN (Virtual Local Area Network)

Softwareentwickler, Tester
Siticom, Ludwigsburg
11/2020 – 10/2021 (1 Jahr)
Telekommunikation
Tätigkeitszeitraum

11/2020 – 10/2021

Tätigkeitsbeschreibung

ISP-Infrastruktur (stress-) testen: softwaregesteuerte Einwahltests eines BNG.
Der Einwahlserver (BNG) eines großen deutschen ISPs sollte gestresstestet werden. Hier wurde eine pythonbasierte Teststeuerung erweitert, um einen solchen BNG mit einer variablen Anzahl simulierter Kundeneinwahlen mit verschiedenen Profilen (z.B. VDSL 100, VDSL100+IPTV, Glasfaser 1GBit, DCIP8, L2BSA). Dies machte es nötig, die entsprechenden Einwahlclients on-the-fly zu konfigurieren, und iperf-Server aufzusetzen, die entsprechende Lasten erzeugen. Der Juniper BNG wie auch der zwischengeschaltete Cisco Switch mussten per API angesprochen werden, um div. Datenpunkte zum Verhalten des BNGs unter den Lasten zu erhalten, zu speichern und auszuwerten. Dies machte es nötig, auch mit sehr spezialisierten Netzwerkprotokollen wie ANCP, EOAM, oder A10-NSP zu interagieren.

Genutzte Technologien:
Python, VLANs, Cisco Switches, Juniper BNGs, XMLRPC, ANCP, EOAM, A10-NSP, VLAN-in-VLAN

Eingesetzte Qualifikationen

Cisco Switch, ISP (Internet Service Provider), Netzwerktechnik, Python, Ubuntu, UNIX, VLAN (Virtual Local Area Network)

Softwareentwickler
Tetratec Instruments, Ludwigsburg
1/2018 – 4/2018 (4 Monate)
High-Tech- und Elektroindustrie
Tätigkeitszeitraum

1/2018 – 4/2018

Tätigkeitsbeschreibung

Planung zur Ersetzung eines alten DB-Frontends durch moderne, webbasierte Alternative.

Eingesetzte Qualifikationen

Microsoft SQL-Server (MS SQL), Python, Django (Framework)

Softwareentwickler; Tester
Deutsche Telekom, Ludwigsburg, Darmstadt
1/2017 – 7/2020 (3 Jahre, 7 Monate)
Telekommunikation
Tätigkeitszeitraum

1/2017 – 7/2020

Tätigkeitsbeschreibung

Mitentwicklung am Smartspeakerprojekt der Deutschen Telekom. Zunächst
Anwendungsentwicklung des Sprachassistenten (asynchrones Python + Embedded Linux), danach Testen des kompletten Systems inkl. Ansteuerung der Hardware durch Raspberry Pi/Beaglebone Black.
Zu Beginn wurden die Grundlagen des späteren Smartspeakers "Hallo Magenta" gelegt, indem das Design des Software mitentworfen wurde. Dieses wurde in mehreren Runden verfeinert, bis schließlich eine Microservicearchitektur auf der Hardware implementiert wurde. Hierbei wurde auch an der Embedded Linux-Umgebung auf der genutzten Custom Hardware gearbeitet. Die entwickelte Software musste fähig sein, auf Wake-up-words des Mikrofons zu reagieren, die Sprache des Kunden aufzunehmen, und sie durch die Speech-to-Text/Texterkennung und anschließend an das Cloudbackend zu schicken. Ebenso mussten die Tastknöpfe erkannt und darauf reagiert werden, inkl. eines Factory-Reset-Modus, und die Ring-LEDs in individuell definierbaren Mustern ansteuerbar sein.

In einer zweiten Phase wurde an der Integration der hauseigenen IP-TV in den Smartspeaker gearbeitet. Hier musste sichergestellt werden, daß die rein lokale (ohne Cloud) Steuerung der Settop-Box des Fernsehers über den Smartspeaker mit wenig Verzögerung und effizient gelingt. Viele Ungewissheiten im Netzwerk des Endkunden mussten vorhergesehen und abgewogen werden.

Nachdem die Software gereift war rückte das End-to-End-Testing in den Vordergrund. Hier wurden Smartspeaker der (Vor-) Serienproduktion leicht von Hand an der Hardware modifizert, um per GPIO von einem Beablebone Black oder Raspberry Pi aus Knopfdrücke, Stromunterbrechung u.ä. zu simulieren. Auf dem Beaglebone wurde eine Python-basierte Testsuite aufgebaut, die verschiedenste Kundeninteraktionen nachstellen (Kunde fragt nach Wetter; Kunde fragt nach Wetter während WLAN down ist; Kunde macht Factory Reset etc.) Die vom Smartspeaker generierte Antwort in Form von generiertem Audiostream an die Lautsprecher, Ansteuerkommandos an die LEDs, oder Netzwerkkommandos an externe Geräte wurden hierfür analysiert.

Genutzte Technologien:
async/await Python, embedded Linux (Yocto), Raspberry Pi, Hardwareansteuerung auf embedded Systemen, Beaglebone Black, Elektronikverdrahtung, Lötkolben, Netzwerktechnik

Eingesetzte Qualifikationen

Docker, Embedded Linux, Git, Objektorientierte Programmierung (OOP), Python, Testautomatisierung, Testing (IT)

Entwickler und Systemverwalter
Diamond Nanotechnologies, Ludwigsburg, Stuttgart
4/2014 – 12/2016 (2 Jahre, 9 Monate)
High-Tech- und Elektroindustrie
Tätigkeitszeitraum

4/2014 – 12/2016

Tätigkeitsbeschreibung

Planung und Erstellung einer interner Webanwendung zur Produktions-, Prozess-, und Inventarverwaltung auf Grundlage von Python, Django, Lighttpd, Nginx, PostgreSQL und FreeBSD zur exakten
Dokumentation experimenteller Produktionsmechanismen.
Die erstellte Intranet-Webseite erlaubte es, die einzelnen Schritte einer komplexen Produktion exakt zu definieren und zu dokumentieren. Hierzu zählen z.B. wieviel Zeit im Ofen bei welchen Temperaturprofil; wieviel Zeit in Säurebad bei welcher Konzentration; Säurebad angemischt aus welchen Vorprodukten inkl. deren Seriennummern zur Erkennung von Verunreinigungen der Vorprodukte etc. Die exakte Dokumentation des Prozesses und des Ergebnisse folgte Behördenvorgaben und war entsprechend hoch priorisiert.

Planung und Einrichten eines Intranets für ein Startup. Fileservers mit FreeBSD und ZFS, Paketfilter/Firewall mit OpenBSD und pf.
Von besonderer Wichtigkeit waren zum einen die Bereitstellung eines zentralen Fileservers zur Speicherung von Experimentalergenissen, eines zweiten Fileservers für Backups, und die Abschottung des Intranets von der Außenwelt, als auch des Labornetzwerkes vom Rest des Intranets (mit genau definierten Ausnahmen).

Planung und Erstellung eines Softwarepaketes für Experimentalphysik, welches erlaubt, Experimentsequenzen und die nötige Ansteuerung der Messgeräte am Rechner zu erstellen und die Ergebnisse auszuwerten.
Backend in Python mit NumPy/SciPy, Frontend in Python mit PyQt/QML.
Das Tool sollte erlauben die genaue zeitliche Abfolge der Mikrowellen- und Laserbestrahlung einer Probe zu definieren. Es musste möglich sein, die Wellenformen sowohl per graphischen Tool zu ziehen, als auch textuell zu definieren, und diese Einstellungen auszutauschen. Schnittstellen für kundengeschriebene Plugins für zusätzliche Funktionalität wurden ebenfalls implementiert. Über dieses System wurde auch die Ansteuerung der Messhardware implementiert und aus dem Kern der Anwendung herausabstrahiert, um möglichst flexibel auf die Laborausstattung beim Kunden reagieren zu können.
Grundlagen für eine spätere Integration in die oben genannte interne Webanwendung wurden beim Design bereits berücksichtigt.

Genutzte Technologien:
Python, Linux, QT, NumPy, HDF5, FreeBSD, Jails Containerization, ZFS, OpenBSD, PF firewall, VLANs, Django, PostgreSQL

Eingesetzte Qualifikationen

Betriebssysteme (allg.), Container Management, Datenschutz, Demilitarized Zone (DMZ), Django (Framework), Firewalls, FreeBSD, Git, IT-Support (allg.), IT-Techniker (allg.), IT Sicherheit (allg.), Konfiguration, Linux Einführung, Linux Entwicklung, Netzwerk-Sicherheit, Objektorientierte Analyse (OOA), Objektorientierte Analyse und Design (OOAD), Objektorientierte Design (OOD), Objektorientierte Programmierung (OOP), PostgreSQL, Python, Qt, Serveradministration (allg.), SQL, Systemadministration (allg.), Telekommunikation / Netzwerke (allg.), UNIX, Versionierung / Versionsverwaltung, VLAN (Virtual Local Area Network)

Diplomant
Uni Stuttgart, Stuttgart
12/2010 – 3/2012 (1 Jahr, 4 Monate)
Hochschulen und Forschungseinrichtungen
Tätigkeitszeitraum

12/2010 – 3/2012

Tätigkeitsbeschreibung

Entwicklung wissenschaftlicher Hilfsanwendungen für Simulationen

Eingesetzte Qualifikationen

UNIX, Debian, Python

Ausbildung

Physikalisch-Technischer Assistent
Ausbildung
2002
Stuttgart
Physik
Diplom (unbeendet)
2000
Stuttgart

Weitere Kenntnisse

Kernkompetenzen:
- Python (inkl. Django) mit Grundlagen Frontendentwicklung Qt
- UNIX Server- und Systemverwaltung, insb. FreeBSD, OpenBSD

weitere Kompetenzen:
- LaTeX, Lua, SQL
- Linux (v.a. Debianfamilie)
- Netzwerke inkl. Planung und aufsetzen von Paketfiltern/Firewalls (OpenBSDs pf)

Persönliche Daten

Sprache
  • Deutsch (Muttersprache)
  • Englisch (Fließend)
Reisebereitschaft
Weltweit
Arbeitserlaubnis
  • Europäische Union
Home-Office
bevorzugt
Profilaufrufe
1706
Alter
41
Berufserfahrung
11 Jahre und 8 Monate (seit 01/2013)

Kontaktdaten

Nur registrierte PREMIUM-Mitglieder von freelance.de können Kontaktdaten einsehen.

Jetzt Mitglied werden