Full Stack Developer | Bristol (Hybride, 3 dagen op locatie) | SC-gecertificeerd of in aanmerking komend voor SC-certificering – we werven voor meerdere niveaus
Belangrijkste verantwoordelijkheidsgebieden
Als full-stack ontwikkelaar zul je je voornamelijk bezighouden met de volgende kerngebieden:
- Het bouwen van services die op edge-nodes draaien: lichtgewicht, gebeurtenisgestuurd en bestand tegen onderbroken verbindingen, met zorgvuldige aandacht voor het geheugen-, CPU- en opslagbudget.
- Het bouwen van besturingsvlakservices die apparaatvloten coördineren, configuratie en status beheren en integreren met backend-data- en analysesystemen.
- Het bouwen van gebruiksvriendelijke webinterfaces voor monitoring, besturing en besluitvorming, inclusief interfaces die bruikbaar blijven wanneer de onderliggende gegevens verouderd of onvolledig zijn.
- Het ontwerpen en implementeren van API's die goed werken bij intermitterende verbindingen: idempotent, met versiebeheer, tolerant voor gedeeltelijke connectiviteit en transparant over de status.
- Het opzetten van streaming- en berichtenverbindingen tussen edge en core, waarbij het juiste protocol en de juiste semantiek voor elke verbinding worden gekozen.
- Integratie met sensoren, payloads en hardware-gekoppelde systemen, vaak via onconventionele protocollen en beperkingen.
- Bijdragen aan testdekking, CI/CD en gedeelde engineeringpraktijken die zorgen voor snelle levering en een gezonde codebase.
- Rechtstreeks samenwerken met gebruikers om te valideren dat wat je hebt gebouwd daadwerkelijk het operationele probleem oplost waar zij mee te maken hebben.
Kernvaardigheden, ervaring en gedrag
We zoeken iemand met een passie voor technologie die actief investeert in zijn of haar technische vaardigheden. In deze rol zul je constant blijven leren, maar enkele belangrijke vaardigheden en ervaring die je al zou moeten hebben, zijn onder andere:
Essentiële
- Ruime full-stack ervaring: vertrouwd met het bouwen van productiefrontends (React of vergelijkbaar, TypeScript) en productiebackendservices (Go, Python, Node.js of vergelijkbaar).
- Ruime ervaring met API-ontwerp, zowel REST als event-driven, en inzicht in de toepassingsgebieden van beide.
- Praktische ervaring met message brokers, streaming of publish/subscribe-systemen (MQTT, NATS, Kafka of vergelijkbare systemen).
- Ervaring met het werken met containers en het implementeren ervan in georkestreerde omgevingen.
- Comfortabel werken met Linux: navigeren door systemen, debuggen over de hele stack, logbestanden lezen die niemand voor je heeft samengesteld.
- Degelijke basisprincipes van software-engineering: schone code, geautomatiseerd testen en een gevoel voor wanneer te optimaliseren en wanneer niet.
- Bewustzijn van veilige softwareontwikkelingspraktijken en een proactieve aanpak voor het identificeren en beperken van risico's.
- Ervaring met het ontwikkelen van software die gevoelige gegevens verwerkt of opereert in beveiligingsgevoelige omgevingen.
- Kandidaten moeten in het bezit zijn van een SC-veiligheidsmachtiging of hiervoor in aanmerking komen. Kandidaten zonder bestaande veiligheidsmachtiging komen in aanmerking, mits ze aan de selectiecriteria voldoen.
Wenselijk (niet essentieel)
- Ervaring met het ontwikkelen van software voor beperkte of ingebedde platforms (zoals Raspberry Pi, single-board computers, IoT en robuuste hardware).
- Ervaring met offline-first of intermitterend verbonden applicaties, waaronder conflictoplossing en verzoening.
- Bekendheid met edge-style stacks: containerorkestratie aan de edge, lichtgewicht berichtenverkeer, tijdreeksgegevens, telemetrie.
- Ervaring in gereguleerde sectoren met de levering van complexe, onderling verbonden systemen, zoals defensie, nationale veiligheid, telecommunicatie, financiële dienstverlening of de automobielindustrie.
