gemeente Utrecht

Technical lead/full stack developer (gem virtuele assistent)

gemeente Utrecht

De opdracht­omschrijving

Utrecht heeft jou nodig! GEM is een open source virtuele assistent die als doel heeft de digitale dialoog tussen inwoner en overheid te verbeteren. Door samenwerking tussen gemeenten, VNG en marktpartijen wordt de assistent continu slimmer via AI en machine learning. GEM is bedoeld om herbruikbare, schaalbare dienstverlening te leveren, waarbij total cost of ownership daalt en de kwaliteit stijgt naarmate meer gemeenten deelnemen. GEM is als use-case gedefinieerd door de VNG binnen de bredere ontwikkeling common ground. Een landelijke beweging die een fundamentele vernieuwing van het gehele gemeentelijke IT dienstverleningslandschap behelst.).

Opdrachtomschrijving:
De Technical Lead speelt een sleutelrol in de technische doorontwikkeling van GEM. Je werkt hands-on mee (60–70% van de tijd) aan het bouwen, uitbreiden en verbeteren van het platform. Tegelijk bewaak je de technische koers, stuur je het ontwikkelteam aan en geef je richting aan langetermijnvisie en architectuur. Je fungeert als verbindende schakel tussen techniek, stakeholders en gebruikers.

Kernverantwoordelijkheden 
1. Ontwikkeling en Technische Realisatie  Bouwen en verbeteren van componenten in Python (Django, FastAPI/Sanic), React, Docker.  Meedenken en implementeren van architectuuroplossingen met aandacht voor schaalbaarheid, veiligheid en performance.  Implementeren van LLM/RAG-oplossingen op basis van Azure OpenAI en vector databases (zoals Qdrant).  Actieve inbreng in ontwikkeling van AI-functionaliteiten zoals feedbackloops en machine learning.  Verantwoordelijk voor veilige DevOps-infrastructuur en on-premise hostingoplossingen. 
2. Technische Leiding en Strategie  Uitwerken en bewaken van de technische visie op doorontwikkeling (generatieve AI, omnichannel integratie).  Aansturen van een multidisciplinair ontwikkelteam.  Bewaken van kwaliteit, consistentie en open source-principes in ontwikkelcyclus.  Prototyping, technische keuzes maken en code review.  Onderhouden van stakeholdercontacten met gemeenten, VNG, leveranciers (zoals bijvoorbeeld Spotler, Coosto). 
3. Samenwerking en Stakeholdermanagement  Technisch aanspreekpunt voor product-owner, architecten, leveranciers en gemeenten.  Vertalen van klantbehoeften naar technische specificaties en werkbare oplossingen.  Deelname aan roadmap-overleggen en leveren van voortgangsrapportages.  Presentaties, demo’s en documentatie voor interne en externe belanghebbenden. 
Resultaat van de opdracht
De Technical Lead heeft GEM technisch doorontwikkeld met nieuwe en verbeterde functionaliteiten (Python, React, DevOps) en geïntegreerde AI-oplossingen (Azure OpenAI, vector databases). Er ligt een gedragen technische visie voor verdere ontwikkeling (generatieve AI, omnichannel-integratie), het ontwikkelteam is succesvol technisch aangestuurd, en het platform is stabiel, veilig en schaalbaar opgeleverd voor gebruik door deelnemende gemeenten.

Jij hebt: Afgeronde hbo-opleiding in een relevante richting zoals informatica, software engineering of AI.  Minimaal 5 jaar ervaring als Technical Lead of Senior Developer Je hebt eerder vergelijkbare rollen gehad en gewerkt voor/bij/in de publieke sector.  Uitgebreide ervaring met:  Python, Django, Sanic/FastAP React, TypeScript, HTML/CSS  Docker, CI/CD, Nginx, Ansible  Cloud-native architecturen, beveiliging, DPIA, privacy by design Ervaring met AI-ontwikkeltrajecten is een pre.  Ervaring met open source-ecosystemen en microservices-architectuur. 
Persoonlijkheid en competenties 
•    Analytisch, oplossingsgericht en strategisch denker. 
•    Communicatief vaardig en in staat om technische inhoud helder over te brengen. 
•    Verbindend leider met oog voor samenwerking en maatschappelijke relevantie. 
•    Hands-on mentaliteit en plezier in technische uitdagingen. 

Goed om te weten: 
Gesprekken zijn gepland op in de week van 21 aug. De manager neemt contact op indien je wordt uitgenodigd voor een gesprek. Dit gesprek kan of fysiek of digitaal plaatsvinden. 

Het opvragen van referenties kan in een latere fase onderdeel zijn van de procedure.

De weging van de antwoorden op de vragen in de uitvraag bepaalt de rangorde van de offertes op basis van prijs en kwaliteit. Hierbij hanteren we een weging van circa 25% voor het geoffreerde tarief. 
De kwaliteit voor circa 75%.
Door de weging van de antwoorden op de vragen in de uitvraag wordt de rangorde van de offertes in prijs/kwaliteit bepaald. Alleen de 5 hoogst scorende offertes worden nader gewogen op de kwaliteit. Indien het aantal offertes de 10 niet overstijgt kunnen alle offertes nader op de kwaliteit beoordeeld worden.

Bij gebleken geschiktheid bestaat er een kans dat er nog een kandidaat uit deze procedure wordt aangenomen.

Wanneer de hierboven beschreven opdracht door omstandigheden niet binnen de voorziene periode kan worden afgerond behoudt Gemeente Utrecht zich in alle geval het recht voor de opdracht te verlengen tot het moment dat een zorgvuldige afronding en overdracht kan worden gerealiseerd.

De gemeente Utrecht behoudt zich het recht voor om gedurende de eerste 3 maanden na gunning, bij gebleken ongeschiktheid of tussentijdse beëindiging, de opdracht te gunnen aan de nummer 2 aanbieder of opvolgend.

Gemeente Utrecht heeft het voornemen om per mei 2026 gebruik te maken van een broker. Indien dit voornemen wordt gerealiseerd, zullen de overeenkomsten die doorlopen na 1 november 2026 via de broker worden gehercontracteerd. De hercontractering zal in dat geval plaatsvinden in oktober/november 2026. Bij deze hercontractering blijven de inhuurtermijn en het tarief ongewijzigd.
 

Deze inhuuropdracht verloopt via een aanbesteding. De opdrachtgever heeft eisen en wensen opgegeven. Aan de eisen moet je voldoen om kans te maken. Op de wensen kun je punten scoren.

De Eisen

  • Heeft u bij vraag 2.1.3. 'ZZP Rechtstreeks' ingevuld en heeft u gedurende de afgelopen 12 maanden voor meer dan 70% van de tijd (25 uren per week of 8 maanden per jaar) gewerkt als rechtstreekse zzp’er (zonder bemiddeling en/of detachering door een bureau) bij de gemeente Utrecht?
  • Is de kandidaat de afgelopen 2 jaar in loondienst geweest bij de Gemeente Utrecht voor dezelfde/vergelijkbare werkzaamheden?
  • Je hebt minimaal een afgeronde Hbo-opleiding in een relevante richting zoals informatica, software engineering of AI.
  • Ik bevestig dat ik de bovenstaande vragen naar waarheid heb ingevuld:

De Wensen

  • Is de aangeboden kandidaat een zzp’er en wordt deze rechtstreeks voorgesteld (zonder bemiddeling en/of detachering door een bureau)? Indien 'JA' wordt ingevuld bij deze vraag, dan ga je akkoord met onderstaande 7 zzp-voorwaarden en ga je akkoord  met periodieke controles hierop, die minimaal één keer per 6 maanden door de gemeente zullen worden geïnitieerd. o    De zzp’er werkt maximaal 70% van de gewerkte uren per jaar voor dezelfde klant of opdrachtgever (maximaal 25 uren per week of maximaal 8 maanden per jaar);  o    de zzp’er heeft minimaal 3 klanten of opdrachtgevers per jaar;  o    de zzp’er is zelfstandig wat betreft uitvoering van werk;  o    de zzp’er maakt gebruik van eigen materiaal (laptop, telefoon etc.);  o    de zzp’er is vervangbaar (bijv. in geval van uitval of ziekte);  o    de zzp’er factureert (en krijgt geen loonbetaling of anderszins een vergoeding);  o    de zzp’er krijgt niet doorbetaald voor niet-gewerkte uren (bijv. in geval van vakantie).
  • Je hebt eerder vergelijkbare rollen gehad en gewerkt voor/bij/in de publieke sector.
  • Heb je ervaring met AI-ontwikkeltrajecten?
  • Heb je ervaring met open source-ecosystemen en microservices-architectuur
  • Voeg hier je CV toe. Je CV is max 3 pagina's enkelzijdig en toont een volledig overzicht van je werkzaamheden tot dusver. Het CV dient ter verificatie van de antwoorden op voorgaande vragen en wordt inhoudelijk beoordeeld op kwaliteit. Daarnaast vermeldt het CV huidige nevenfuncties (bezoldigd en onbezoldigd) zodat de vacaturehouder mogelijke belangenverstrengeling kan uitsluiten. Je CV is in het Nederlands opgesteld en in Pdf-formaat.
  • Prijs is exclusief BTW en inclusief alle bijkomende kosten. Let op: het maximum uurtarief is: € 115,- Het met een hoger tarief offreren dan het aangeven maximum leidt tot uitsluiting van verdere deelname
  • Geef aan welke vorm van inhuur van toepassing is op de aangeboden kandidaat. Detachering:  De aangeboden kandidaat is in loondienst bij de aanbieder. Gemeente Utrecht sluit met de aanbieder een overeenkomst. De medewerker werkt tijdelijk bij Gemeente Utrecht, onder leiding en toezicht van de gemeente. De aanbieder draagt zorg voor loonafdrachten. De aanbieder heeft meerdere personen in loondienst.  ZZP rechtstreeks:  De aangeboden kandidaat is een zzp’er en sluit rechtstreeks een overeenkomst met Gemeente Utrecht. Er is geen tussenpartij. De zzp’er voert de opdracht zelfstandig uit, zonder gezagsverhouding.  ZZP via tussenkomst:  Een bureau stelt een zzp’er voor. De gemeente Utrecht sluit de overeenkomst met het bureau (niet met de zzp’er). De zzp’er voert zelfstandig de opdracht uit. Het bureau regelt de contracten met de zzp’er volgens de Wet DBA.   DGA:  De aangeboden kandidaat is DGA en werkt via zijn/haar eigen BV. Gemeente Utrecht sluit de overeenkomst met de BV. De DGA voert zelfstandig de opdracht uit.   LET OP: Gemeente Utrecht gaat alleen een overeenkomst aan met de aanbieder. We verwachten dat u als aanbieder deze informatie naar waarheid invult. Wanneer informatie incorrect is ingevuld, kan de offerte gediskwalificeerd worden.  - Detachering - ZZP rechtstreeks - ZZP via tussenkomst/DGA
  • je hebt minimaal 5 jaar ervaring als Technical Lead of Senior Developer
  • Kun je meer toelichting geven over je rol als technical Lead of (senior) Developer? Vertel over je opdracht en het resultaat.
  • Uitgebreide ervaring met: Python, Django, Sanic/FastAPI React, TypeScript, HTML/CSS Docker, CI/CD, Nginx, Ansible Cloud-native architecturen, beveiliging, DPIA, privacy by design - Python, Django, Sanic/FastAPI - React, TypeScript, HTML/CSS - Docker, CI/CD, Nginx, Ansible - Cloud-native architecturen, beveiliging, DPIA, privacy by design

Interesse in deze opdracht?

Zo werkt onze dienstverlening

Reageer direct

De opdracht sluit
18 augustus 2025 om 08:59
Je reactie ontvangen we graag minimaal 1 werkdag voor sluiting van de opdracht

Eventuele motivatie volgt in een latere fase

LET OP: Het door jou opgegeven uurtarief is all in, inclusief 10% fee Freep en exclusief BTW

Mis geen kans, word gratis lid

Ontvang direct alle opdrachten en marktontwikkelingen in je mailbox