Functieomschrijving
Voor het Kadaster zoeken wij een Senior Software Engineer.Voor het team PDOK zijn wij op zoek naar een Senior Software Engineer met als specialisatie de doorontwikkeling van de CI/CD Pipeline, de OGC API’s en de Azure omgeving.
PDOK (Publieke Dienstverlening Op de Kaart) is hét dataplatform van Nederland dat geodata beschikbaar stelt aan iedereen die hier gebruik van wil maken. De geodata is actueel en betrouwbaar en komt van verschillende overheidspartijen.
PDOK stelt deze geodata door middel van verschillende OGC webservices (WFS, WMS, WMTS) en atom downloadservices (Atom) beschikbaar en werkt aan het ontsluiten middels nieuwe (RESTful) OGC API standaarden (Features, Tiles, Map). Afnemers van PDOK-services zijn onder andere: Funda, Atlas Leefomgeving en Rijkswaterstaat.
Per dag verwerken ze ongeveer 80 miljoen hits. Met behulp van cloud (Azure Kubernetes Services / AKS) oplossingen hebben ze een zeer modern en vooruitstrevend platform ontwikkeld en kunnen ze op en af schalen naar behoefte, hiervoor hebben ze onder meer eigen operators ontwikkeld.
De PDOK-diensten zijn gebaseerd op open data en daarom voor iedereen beschikbaar. Bij data kan men denken aan topografische data, luchtfoto’s, gebouwen, wegen, statische data en nog veel meer soorten data. Gebruikers van de data en diensten van PDOK zijn bijvoorbeeld gemeenteambtenaren, analisten die research doen maar in veel gevallen ook Software Engineers die bijvoorbeeld op basis van webservices en API’s toepassingen maken voor mobiele telefoons, websites of viewers.
Wat doen ze bij PDOK?
Doorontwikkelen van het cloud platform.
PDOK heeft impact! De afgelopen 10 jaar is PDOK gegroeid van 580 miljoen requests in 2013 naar meer dan 20 miljard requests in 2023. Verwacht wordt dat het jaarlijks gebruik in de komende jaren verder stijgt. Om deze groei aan te kunnen zijn ze continue bezig met het optimaliseren van de infrastructuur. De belangrijkste stap die ze hebben gezet, is de migratie naar de Cloud. Dit was aan de ene kant nodig om de dienstverlening te kunnen waarborgen, anderzijds was het een hele mooie kans om het platform en de standaarden te vernieuwen. De migratie naar de cloud is inmiddels afgerond. Op dit moment zijn ze de cloudoplossing verder aan het optimaliseren. Hierbij proberen ze de mogelijkheden die de cloud biedt nog optimaler te benutten, om op deze manier de oplossing wat betreft beheerbaarheid, schaalbaarheid en kosten nog efficiënter te maken.
Implementeren CI/CD oplossing
Op dit moment zijn ze bezig met het implementeren van een CI-oplossing, waarbij de integratietesten voor het platform automatisch worden uitgevoerd op basis van wijzigingen in de infrastructuur of specifieke componenten die draaien op deze infrastructuur. Dit is mogelijk doordat ze voor de inrichting gebruikmaken van concepten zoals Infrastructure as Code en GitOps. Daarnaast zijn ze bezig met een CD-oplossing, waarbij wijzigingen automatisch worden uitgerold. Technieken die ze hierbij gebruiken zijn GoLang, ArgoCD en Tekton.
Implementeren nieuwe producten zoals OGC API features en vector tiles
Naast de bestaande OGC-standaarden zoals WMS, WFS en WMTS zijn er door het OGC nieuwe standaarden ontwikkeld op basis van OpenAPI specificaties.
Bij PDOK zijn ze bezig om deze standaarden te implementeren voor de datasets die ze ontsluiten. Hiervoor zijn ze bezig met het ontwikkelen van een straat die vector tiles genereerd. Met vector tiles kan geografische data client-side kan worden gevisualiseerd. Daarnaast ontwikkelen ze een service voor het ontsluiten van feature informatie in GeoJSON.
Gebruikte technieken hierbij zijn Golang, Python en serverless databases.
Automatiseren en standaardiseren dataverwerking
Ook werken ze aan het herzien van de data verwerkingsstraat. Hiermee willen ze het ontsluiten van nieuwe data binnen de infrastructuur vereenvoudigen en versnellen en naar de buitenwereld op een eenduidige manier ontsluiten.
De ontwikkelingen die hiervoor worden gedaan hebben zowel een backend als een front-end component. Bij de backend ontwikkeling wordt gefocust op het verwerken van de data. Bij de front-end ontwikkelingen wordt een UI gemaakt die door de business kan worden gebruikt voor het aanbieden van updates. De hierbij gebruikte technieken zijn Golang, TypeScript, Argo workflows, Ago events en AngularJS.
Werkzaamheden
Bij PDOK zien ze een Senior Software Engineer als iemand die zowel ervaring heeft met software development als het inrichten en onderhouden van deze software op onze infrastructuur. De oplossingen van PDOK zijn gestoeld op bestaande opensource componenten (waar we actief een bijdragen aan leveren), volledige maatwerk componenten en een Kubernetes platform.
Als Senior Software engineer ontwikkel je aan al deze onderdelen en bedenk je samen met het team een plan om technische invulling te geven aan nieuwe en bestaande diensten van PDOK.
Concreet betekent dit het inrichten van de CI test pipeline en test clusters. De doorontwikkeling van de OGC API features en de realisatie van OGC API’s in Kangaroo (Self service). Daarnaast is de Azure postgress migratie een belangrijke taak.
Belangrijkste technieken, methoden en tools
- Golang
- Java / Kotlin
- Python
- OGC API - Features
- Ervaring met meerdere van deze technieken is een prE
- AngularJs / TypeScript
- Bash / shell scripting
- Docker
- Kubernetes (AKS)
- PostGIS / PostgreSQL
- OGC GeoPackages / SQLite
- GDAL / OGR CLI tools
- MapServer / Mapproxy
- Argo Workflow / Argo Events
- Tekton
- Operator pattern
- Infrastructure as code
- CI / CD
- GitOps
- OpenAPi en REST API’s
- OGC Standaarden
De belangrijkste taken en verantwoordelijkheden zijn
- Participeren in een SCRUM team, met bijbehorende verantwoordelijkheden. Waarbij het team samen met de Product Owner en gebruikers spart over een gedegen oplossing
- Doorontwikkeling van het bestaande platform (Golang, Java/Kotlin, Python) op een Kubernetes omgeving
- Implementeren nieuwe oplossingen ten behoeve van het ontsluiten van nieuwe datasets met bijbehorende OGC-services. Denk hierbij aan het implementeren van een ETL-proces en ontwikkelen van webservices
- Beheren en uitrollen van complexe gedistribueerde systemen op Kubernetes
- Oplossen incidenten en onderhouden bestaande oplossingen
Goede beheersing van de Nederlandse taal in woord en geschrift is vereist voor deze functie.
Functie eisen
- Minimaal 5 jaar ervaring met DevOps en systeemontwikkeling/integratie in een CI/CD omgeving
- Minimaal 5 jaar ervaring met de te gebruiken methoden, technieken en tools
- Ervaring in zowel beheer- als vernieuwingstrajecten
- Ervaring met relationele databases (bijv. in ETL processen)
- Ervaring met het gebruik en/of de ontwikkeling van PDOK
Functie wensen
- Geen