Python Developer
Surf

Opdrachtomschrijving
Voor SURF werk je binnen het Europese EOSC EDEN-project aan de implementatie van de Metadata Transformation Service (MTS). Deze herbruikbare service maakt het mogelijk om metadata te transformeren tussen verschillende metadata-schema’s en -formaten. De functionaliteit wordt aangeboden via een REST API en sluit aan op de Metadata Schema and Crosswalk Registry (MSCR), met autoritatieve informatie over ondersteunde schema’s, schema-versies en crosswalks.
Je vertaalt de bestaande eisen en specificaties van de MTS naar een werkende en onderhoudbare service in Python. Daarbij ontwikkel je een modulaire transformatie-engine die verschillende schema’s, versies en crosswalks ondersteunt. Ook werk je aan functionaliteit voor validatie, foutafhandeling, transformatierapportage en het ontdekken van beschikbare schema’s en crosswalks.
De service ondersteunt gestructureerde metadataformaten zoals JSON, JSON-LD, XML en RDF en maakt gebruik van bestaande technologieën voor transformatie en validatie, waaronder XSLT, JSON Schema en SHACL. Je verpakt en implementeert de service met Docker, ontwikkelt geautomatiseerde unit- en integratietests, onderhoudt CI/CD-workflows en legt de werking vast in technische documentatie, inclusief API-documentatie.
Afhankelijk van de behoeften en prioriteiten binnen het project draag je ook bij aan de ontwikkeling, integratie en het onderhoud van andere services en softwareoplossingen binnen EOSC EDEN en het Data Preservation Services-team van SURF. Je werkt samen met ontwikkelaars en projectpartners aan een betrouwbare en bruikbare oplossing.
Gevraagd profiel
Je bent een Python Developer die ervaring heeft met het ontwerpen en ontwikkelen van onderhoudbare softwareservices. Je kunt technische eisen vertalen naar een concrete implementatie en hebt ervaring met REST API’s, gestructureerde metadataformaten en geautomatiseerd testen.
Je werkt zelfstandig en gestructureerd, maar zoekt actief de samenwerking met ontwikkelaars en projectpartners. Je bent in staat om bij te dragen aan zowel een nieuwe service als aan de ontwikkeling en verbetering van bestaande software binnen een projectteam.
Eisen
- Sterke ervaring met Python-softwareontwikkeling, met nadruk op onderhoudbare en modulaire backend-applicaties
- Ervaring met het ontwikkelen van REST API’s met Flask, FastAPI of een vergelijkbaar Python-framework
- Ervaring met het ontwerpen en integreren van API’s en externe services
- Ervaring met gestructureerde dataformaten zoals JSON en XML
- Ervaring met geautomatiseerd testen met pytest of vergelijkbare frameworks
- Ervaring met Git en collaboratieve softwareontwikkelingsworkflows
- Ervaring met Docker en containerized applicatieontwikkeling
- Ervaring met CI/CD, bijvoorbeeld GitHub Actions of GitLab CI/CD
- Vermogen om zelfstandig technische eisen om te zetten in robuuste softwareontwerpen en -implementaties
Competenties
- Goede communicatieve vaardigheden en ervaring met samenwerken in gedistribueerde of multi-party ontwikkelingsprojecten