Agiler Softwareentwickler
- Verfügbarkeit einsehen
- 0 Referenzen
- auf Anfrage
- 22081 Hamburg
- Weltweit
- de | en
- 20.03.2023
Kurzvorstellung
Qualifikationen
Projekt‐ & Berufserfahrung
7/2022 – offen
Tätigkeitsbeschreibung
Ziel:
Erstellung eines Yocto-Betriebssystems (Linux) für mehrere Embedded-Plattformen einer Display-Applikation.
Ergebnis:
Erfolgreiche Zusammenführung bestehender (Legacy-)Betriebssysteme auf ein einziges Yocto-basiertes OS.
Technologie-Stack:
AM335X-basiertes Grundsystem mit ARM-Architektur (BeagleBone Black) mit eigener Adapter-Platine ("Cape"), OMAP3530-basiertes Grundsystem mit ARM-Architektur; Yocto, Debian, Buildroot; GUI-Anwendung auf Basis von C++ mit Qt 5.15 und Qt Quick 2, CAN-Bus
Beitrag:
Erstellung eines neuen Yocto-Grundsystems einschließlich Docker-Entwicklungsumgebung
Unterstützung mehrerer Hardware-Boards und Anbindung unterschiedlicher Displays
Yocto-Integration der bestehenden Qt-Applikation
Umsetzung automatischer Builds über Bamboo
Verantwortungsbereiche:
Eigenverantwortliche Umsetzung aller Anforderungen
Beratung des Kunden in Bezug auf geschäftlichen Nutzen bestimmter technischer Lösungen
Beratung des Kunden bei Build- und Testautomatisierung (CI/CD/“DevOps”)
ARM-Architektur, C++, CAN-Bus (controller area network), Confluence, DevOps, Docker, Linux Entwicklung, Qt (Software)
4/2021 – 5/2022
Tätigkeitsbeschreibung
Ziel: Entwicklung eines Cloud-Gateways zur Anbindung von IoT-Geräten mit zentralem App- und Data-Management.
Ergebnis: Erfolgreiches Release eines MVPs mit mehreren Apps zur Anbindung von verschiedenen Datenquellen, einschließlich einer Gebäudeüberwachung und Kameras mit Video-Streaming, sowie Cloud-Anbindung über Azure.
Technologie-Stack: iMX8 basiertes Grundsystem mit ARM-Architektur; Yocto-Linux; Docker und Docker Compose; Python, C++20, CoAP, JSON, Azure, MQTT, WebSocket, REST
Beitrag:
Entwicklung:
Docker Compose Applikation bestehend aus mehreren Services in C++
C++-Wrapper für CoAP C-Bibliothek
Implementierung von CoAP BERT-Transfers
Teamarbeit:
Koordination mit mehreren internationalen Teams (englischsprachig)
Agile Methodologie, ARM-Architektur, C++, Cloud Computing, Docker, Internet of Things (IoT), Json, Linux Entwicklung, Microsoft Azure, Python, Representational State Transfer (REST), Scrum
10/2020 – 3/2021
Tätigkeitsbeschreibung
Ziel: Ablösung eines veralteten, unzuverlässigen und nicht-automatischen Testsystems mit proprietären Komponenten, durch eine Neuentwicklung auf Basis von Open-Source-Software und Standard-Hardware.
Ergebnis: Erfolgreiche Einführung eines zuverlässigen Nachfolgers mit höherer Testabdeckung und folgenden Vorteilen gegenüber dem Vorgängermodell:
Vollautomatisierte und versionierte Ausführung in der Build-Pipeline der Firmware
Kostenreduktion ca. um Faktor 25 (altes System inklusive Hardware, Software und entwickelten Tests ca 5 Mio. €; neues System inklusive Hardware, Software insgesamt <200.000 €)
Kostengünstige und einfache Skalierungsmöglichkeit durch weitere Test-Agents für weniger als 500 € pro Stück
Herstellung der Grundlage für das leichtere Anwerben von Testentwicklern durch Einsatz von verbreiteter Open-Source-Software und Standardkomponenten
Verkürzung der Cycle Time durch Testentwicklung im selben Sprint wie die Feature-Entwicklung
Technologie-Stack: Raspberry Pi basierte Test-Hardware (PiXtend) mit zusätzlichen Hardware-Schnittstellen (z.B. zum Schalten von Relais); Testsystem auf Basis von Python und Robot Framework; Ausführung in Docker-Containern gesteuert über Bamboo Build-Pläne
Beitrag:
Entwicklung:
Grundlegende Testinfrastruktur inklusive Linux-Basissystem und Ausführungsumgebung in Docker
Python-Bibliotheken zur Simulation von externen Schnittstellen des Zielsystems:
CAN
Proprietäres Netzwerkprotokoll (TCP und UDP) mithilfe von virtuellen Network-Interfaces (vEth)
Serielle Schnittstelle (RS-232)
Integration der Testausführung in die Build-Pipeline der Firmware des Zielsystems
Testentwicklung für viele grundlegende Funktionen des Zielsystems
Teamarbeit:
Coaching von Co-Entwicklern im Bereich Python, Git-Nutzung, Clean-Code und Testentwicklung
Gemeinsame Erarbeitung von Konzepten und Konventionen zur Nutzung des Robot Frameworks
Agile Transformation:
Integration der Testentwicklung in den gleichen Sprint wie die Feature-Entwicklung
Aufnahme von Testing in die Definition of Done (DoD)
Ansätze für Test Driven Development (TDD) und Behaviour Driven Development (BDD)
Agile Methodologie, Behavior Driven Development, CAN-Bus (controller area network), Docker, Git, Linux Entwicklung, Python, RS-232, Scrum, TCP / IP, Testdesign (IT), Testen, Test Management
9/2017 – 9/2020
Tätigkeitsbeschreibung
Ziel: Entwicklung einer neuen Generation einer Brandmeldezentrale und Löschanlage mit programmierbarer SPS-Logikeinheit, separaten Hardware-Modulen und eigenem Konfigurationsprogramm.
Ergebnis: Erfolgreicher Market-Launch und Ablösung des Vorgängermodells. Nachfolgende Releases verschiedener größerer Firmware-Updates, u.a. zum Thema Vernetzung und Echzeitauswertung von Funkenmeldern. Belieferung eines Automobilwerks in Brandenburg mit Brandschutztechnik für Lackierkabinen.
Technologie-Stack: Custom-SoC mit ARM-Architektur und FPGA (VHDL); Yocto-Linux mit Vielzahl von low-level und high-level Applikationen (C++17 und C#); Web-Technologiebasiertes HMI/GUI in Angular (TypeScript); Objektbasierte Interprozesskommunikation in DOTS; Konfigurationsprogramm basierend auf WPF (C#); verschiedene Hardware-Module auf Basis von FreeRTOS (C++).
Beitrag:
Entwicklung:
Embedded Linux Applikationen in C++ 17 und (Boost) Asio
Bibliotheken zur Interprozesskommunikation (IPC) in C++, C# und TypeScript
Proprietäres Protokoll zur Vernetzung von Zentralen auf Basis von TCP und UDP
Versionierte Build- und Test-Umgebungen mithilfe von Docker
Pflege und Erweiterung eines eigenen Yocto-Linux Systems
Migration der Yocto-Buildumgebung in eine versionierte Docker-Variante
Durchführung und Analyse von Profilings zur Performanceoptimierung
Analyse von systemweiten Bugs (u.a. Ermittlung eines Memory-Leaks in der Dotnet Runtime von Microsoft)
Automatische Erzeugung versionierter Dokumentation mit AsciiDoc und PlantUML
Teamarbeit:
Durchführung von Refinements zur Ermittlung von Anforderungen unter der Berücksichtigung verschiedener nationaler bzw. internationaler Normen und Richtlinien bezüglich Brandschutz
Vorbereitung und Durchführung von Reviews, sowie Präsentation der Inkremente
Durchführung von Code-Reviews
Pair-Programming
Einführung eines Git-Branching-Modells für Entwicklung und Releases
Einrichtung von Build-Plänen und -Agents für Bamboo
Agile Transformation:
Weiterentwicklung der agilen Methode in Zusammenarbeit mit dem Scrum Master
Unternehmensspezifische Ausgestaltung des Scaled-Scrum-Frameworks LeSS zur Ausrichtung mehrerer Scrum-Teams
Aktive Unterstützung der agilen Transformation aus dem Entwicklerteam heraus
Unterstützung des mittleren Managements und der Geschäftsführung in der agilen Transformation
Unterstützung des Product Owners in der Anwendung von Jira, Formulierung von User Stories, Zielausrichtung von Sprints
Vertreten des Teams in Scaled Scrum Meetings (Scrum of Scrums, Multi-Team Backlog Refinement, Multi-Team Reviews)
Agile Methodologie, C#, C++, Confluence, DevOps, Docker, Embedded Entwicklung / hardwarenahe Entwicklung, Embedded Linux, FPGA, Git, Jira, Scrum, Speicherprogrammierbare Steuerung (SPS), TCP / IP, Typescript
Ausbildung
Hamburg
Weitere Kenntnisse
Persönliche Daten
- Deutsch (Muttersprache)
- Englisch (Fließend)
- Europäische Union
Kontaktdaten
Nur registrierte PREMIUM-Mitglieder von freelance.de können Kontaktdaten einsehen.
Jetzt Mitglied werden