Software ontwikkelaar

Universiteit Utrecht

Logo Universiteit Utrecht

Tarief/Salaris

€Geen max uurtarief

Locatie

Utrecht

Inzet

32 uur p/w

Dienstverband

ICT Informatievoorziening

Gepubliceerd

25 september, 2026

Deadline

2 oktober, 2026

Nog 7 dagen

De Opdrachtomschrijving

M-Tool is een open-source webapplicatie die aan de Universiteit Utrecht is ontwikkeld voor het in kaart brengen van mentale modellen. De applicatie wordt momenteel gebruikt binnen meer dan 25 onderzoeksprojecten in meer dan 90 landen. Onderzoekers gebruiken M-Tool om studies op te zetten waarin deelnemers causale kaarten maken van de relaties die zij zien tussen verschillende concepten. De huidige applicatie is ontwikkeld in Clojure, met ClojureScript als frontend. Een eerdere nieuwe versie heeft geleid tot regressies en een aantal functionaliteiten is nog niet volledig afgerond. Daarom zoekt de Universiteit Utrecht een ontwikkelaar die de applicatie verder kan stabiliseren, ontwikkelen en toekomstbestendig kan maken. Er zijn hierbij twee mogelijke technische richtingen: Het verder ontwikkelen en herstellen van de bestaande Clojure/ClojureScript-code; Het herschrijven van de applicatie naar een meer gangbare technologie, bijvoorbeeld TypeScript/React voor de frontend en Python of Node.js voor de backend. Een herschrijving heeft de voorkeur, mits kan worden aangetoond dat de bestaande functionaliteit behouden blijft en de nieuwe oplossing op lange termijn beter onderhoudbaar is. Verantwoordelijkheden Als Softwareontwikkelaar ben je verantwoordelijk voor het stabiliseren, doorontwikkelen en toekomstbestendig maken van M-Tool. Je werkzaamheden bestaan onder andere uit: Stabilisatie en bestaande functionaliteit Behouden en herstellen van de huidige functionaliteit van M-Tool. Oplossen van regressies en technische problemen in de bestaande applicatie. Oplossen van het probleem met conceptnamen waarin een koppelteken voorkomt, zodat data correct wordt verwerkt en geëxporteerd. Zorgen dat de deelnemersinterface correct herschaalt bij verschillende schermformaten. Waarborgen dat de applicatie betrouwbaar functioneert binnen de huidige onderzoeksprojecten. Doorontwikkeling van bestaande functionaliteiten Ontwikkelen van een betrouwbare offline versie waarmee onderzoekers data op tablets kunnen verzamelen. Ondersteunen van offline opslag en synchronisatie zodra een tablet weer online is. Zorgen dat gesynchroniseerde data beschikbaar komt in de online omgeving. Implementeren van rich text voor consent-, welkomst- en afsluitteksten. Mogelijk maken van herinneringen/pop-ups op het mapping-scherm. Configureerbaar maken of deelnemers het doelicoon mogen verplaatsen. Genereren van een downloadbare map met screenshots van ingediende mental maps. Implementeren van tussentijds opslaan van een mental model via een Opslaan-knop. Je ontwikkelt daarnaast nieuwe functionaliteiten, waaronder: Een mappenstructuur voor studies en geüploade media. Automatische herkenning van bestandstypen bij uploads. Mogelijkheid voor onderzoekers om bestandsnamen te wijzigen. Mogelijkheid voor deelnemers om zelf een icoon en bijbehorend label aan te maken, indien dit binnen een studie is toegestaan. Een Practice Task Creator waarmee onderzoekers zelfstandig oefentaken kunnen configureren. Automatische generatie van de bijbehorende begeleidende afbeelding. Correcte werking van de browser Back/Vorige-knop zonder verlies van ingevoerde data. Ondersteuning voor zowel drag-and-drop als klikinteractie bij het verbinden van concepten. Een configureerbaar FAQ-paneel op het mapping-scherm. Instellingen waarmee audio standaard uit kan staan. Een optie om instructievideo’s per studie wel of niet beschikbaar te stellen. Afhankelijk van prioriteit en beschikbare capaciteit kunnen aanvullende verbeteringen worden gerealiseerd, zoals: Meerdere iconen tegelijk uploaden. Instellen en zichtbaar maken van pijlgewichten. Ondersteuning voor feedback loops. Audio toevoegen aan het toestemmingsformulier. Vastzetten van begin- en eindpunten op het canvas. Richtingsvalidatie van verbindingen. Configureerbare foutmeldingen. In- en uitzoomen op het mapping-scherm. Labels tonen bij het hoveren over iconen in de rechterzijbalk. Technische verantwoordelijkheid Adviseren over de meest geschikte technische architectuur. Onderbouwen van de keuze tussen voortzetting van Clojure/ClojureScript en een eventuele herschrijving. Waarborgen dat bij een eventuele migratie alle bestaande functionaliteiten behouden blijven. Zorgdragen voor een onderhoudbare, goed gedocumenteerde en toekomstbestendige oplossing. Samenwerken met de IT-afdeling van de Universiteit Utrecht rondom deployment. Geschikt maken van de applicatie voor OpenShift/container deployment. Zorgdragen dat de applicatie eenvoudig te back-uppen en herstellen is. Testen van de applicatie en voorkomen van regressies. Ondersteunen van een testperiode van minimaal twee weken tussen eerste oplevering en definitieve oplevering. Zorgen dat de applicatie open-source beschikbaar en beheersbaar blijft via GitHub.

De Eisen

Meerdere jaren aantoonbare werkervaring met softwareontwikkeling van webapplicaties binnen een technisch complex en onderzoek gerichte omgeving.
Ervaring met Clojure en/of ClojureScript, óf aantoonbare ervaring met het analyseren, onderhouden en migreren van bestaande applicaties naar een andere technologie.
Ervaring met moderne frontendtechnologie, bij voorkeur TypeScript en React.
Ervaring met backendontwikkeling, bij voorkeur Python en/of Node.js.
Ervaring met het ontwikkelen en integreren van API's.
Ervaring met dataverwerking en data-export.
Ervaring met responsive webapplicaties en verschillende browserformaten.
Ervaring met testen, debugging en het oplossen van regressies.
Ervaring met Git/GitHub en werken aan open-source software.
Ervaring met containerized deployments en bij voorkeur OpenShift.
Je bent in staat om bestaande code te beoordelen en op basis daarvan een onderbouwde technische aanpak te bepalen.
Je kunt zelfstandig werken en technische keuzes helder onderbouwen.
Je hebt oog voor stabiliteit, betrouwbaarheid en onderhoudbaarheid.
Ervaring met onderzoekssoftware of tools voor dataverzameling.
Ervaring met applicaties die worden gebruikt binnen wetenschappelijk onderzoek.
Ervaring met offline-first applicaties en synchronisatie van data.
Ervaring met interactieve canvas- of mappingfunctionaliteit.
Ervaring met applicaties die internationaal en door grote aantallen gebruikers worden ingezet.
Ervaring met OpenShift en container deployment binnen een enterprise-omgeving.Meerdere jaren aantoonbare werkervaring met softwareontwikkeling van webapplicaties binnen een technisch complex en onderzoek gerichte omgeving.Ervaring met Clojure en/of ClojureScript, óf aantoonbare ervaring met het analyseren, onderhouden en migreren van bestaande applicaties naar een andere technologie.Ervaring met moderne frontendtechnologie, bij voorkeur TypeScript en React.Ervaring met backendontwikkeling, bij voorkeur Python en/of Node.js.Ervaring met het ontwikkelen en integreren van API's.Ervaring met dataverwerking en data-export.Ervaring met responsive webapplicaties en verschillende browserformaten.Ervaring met testen, debugging en het oplossen van regressies.Ervaring met Git/GitHub en werken aan open-source software.Ervaring met containerized deployments en bij voorkeur OpenShift.Je bent in staat om bestaande code te beoordelen en op basis daarvan een onderbouwde technische aanpak te bepalen.Je kunt zelfstandig werken en technische keuzes helder onderbouwen.Je hebt oog voor stabiliteit, betrouwbaarheid en onderhoudbaarheid.Ervaring met onderzoekssoftware of tools voor dataverzameling.Ervaring met applicaties die worden gebruikt binnen wetenschappelijk onderzoek.Ervaring met offline-first applicaties en synchronisatie van data.Ervaring met interactieve canvas- of mappingfunctionaliteit.Ervaring met applicaties die internationaal en door grote aantallen gebruikers worden ingezet.Ervaring met OpenShift en container deployment binnen een enterprise-omgeving.

De Wensen

Geen wensen geformuleerd.

Interesse? Zo werkt het bij Bij Oranje

1

Snelle screening!

  • • We beoordelen je CV op een match met de opdracht.
  • • We controleren of je voldoet aan de harde eisen en wensen.
  • • We adviseren je over een concurrerend tarief op basis van marktdata.

binnen 1 werkdag weet je waar je aan toe bent.

2

Wij verzorgen een professioneel voorstel dat opvalt.

  • • We optimaliseren je voorstel voor maximale overtuigingskracht.
  • • Voorwaarden en tarieven stemmen we vooraf 100% transparant af.
  • • We begeleiden je intensief tijdens het selectieproces.
  • • Jij behoudt de regie; wij faciliteren en versnellen.
3

Starten met je opdracht

ZZP
  • • 10% vaste marge over je uurtarief
  • • Razendsnelle betaling: binnen 1 werkdag na ontvangst van de klant
  • • Volledige vrijheid: geen concurrentie- of relatiebeding
DETACHERING
  • • 15% marge van het uurtarief
  • • Restant volledig verloond als brutoloon
  • • Netto betaling binnen 1 werkdag na betaling klant
  • • Geen beperkende bedingen voor de toekomst

Reageer Direct

De opdracht sluit 2 oktober 2026.
Je reactie ontvangen we graag minimaal 1 werkdag voor sluiting van de opdracht.

Eventuele motivatie volgt in een latere fase van het proces.

€