Ukas koder Marvin jobber med åpne vegdata

- Prosjektet startet som en kartklient i nettleseren, forteller han.

Marvin bygger systemer for Statens Vegvesen. 📸: Privat
Marvin bygger systemer for Statens Vegvesen. 📸: Privat Vis mer

Hvordan begynte du med koding? 👶

Det første jeg husker å ha laget er et bildegalleri med bilder jeg hadde lastet ned fra internett. Det var ren html, så alle lenkene mellom bildene var hardkodet.

Jeg kjøpte etterhvert C++ for Dummies, og implementerte mange av formlene fra regelboka i matte. Det var ganske primitivt med kun standard input/output fra terminal.

Etter det var det veldig lite koding helt til jeg begynte på NTNU. Første semestret hadde vi IT-Grunnkurs, der lagde vi hver vår blog. Vi fikk tildelt en database-instans og et område vi kunne laste opp JSP. Det var veldig mye inline Java, og mange oppdaget ganske fort at det de hadde laget var sårbart for «SQL-injection».

Det var da jeg oppdaget at jeg faktisk likte koding! Andre året på NTNU ble jeg med i Under Dusken, hvor jeg ble Maskinist - sjef for «data-avdelingen») Der videreutviklet vi et CMS for avisens nettside og en desktop-klient som journalistene skrev artiklene sine i, med eksport til Adobe InDesign. Det er denne erfaringen jeg har mest igjen for under studietiden. Å gå på NTNU var nesten som noe jeg gjorde for å få studielån, og ha noe å gjøre når jeg ikke var på Samfundet eller kodet på CMS.

Hva jobber du med akkurat nå? 🛠️

De siste årene har jeg vært på et prosjekt for Statens Vegvesen som heter «Åpne Vegdata», SVV har Nasjonal Vegdatabank (NVDB). Prosjektet startet som å lage en kartklient i nettleseren, vegkart.no. Dette utviklet seg til å bli NVDB API Les i tillegg til Vegkart. Jeg er tech lead på dette.

I korte trekk går det ut på å lese fra en Oracle-database med nøstede tabeller, gjøre litt prosessering, putte det i Solr, og gi data ut gjennom et REST-API.

Nå er vi i sluttfasen av versjon 3 av APIet, som del av SVVs tilrettelegging for fylkes- og kommunereformen som trer i kraft 1. januar 2020. I tillegg til Lese-API og Vegkart jobber vi med Skrive-API for NVDB, og en klient for mottak og validering av data fra entrpenører som skal inn i NVDB. Alt av backend er Java og JAX-RS.

Hvordan ser en typisk arbeidsdag ut for deg? ☕

Teamet vårt sitter i Kantegas lokaler på Solsiden i Trondheim. Hver morgen 0845 har vi ståopp, og produkteier Terje fra SVV deltar nesten hver dag (men han er vanligvis noen minutter for sen). Resten av dagen er for det meste jobbing, både individuelt og par/mob-programmering.

Det blir noen møter i løpet av en uke, både fysisk og video - noen av dem er nødvendige å ha, noen ikke.

Marvin sin arbeidsplass hos Kantega. 📸: Privat
Marvin sin arbeidsplass hos Kantega. 📸: Privat Vis mer

Hva synes du er de mest spennende språkene, rammeverkene eller teknologiene akkurat nå? ✨

De to tingene jeg har veldig lyst å jobbe mer med er Kotlin og Quarkus. Vi er enda på Java 8, så jeg gleder meg også til å snart kunne bruke nyere Java-versjon om ikke veldig lenge.

Jeg er mer opptatt av å faktisk lage noe enn å lære meg det nyeste hotte. Produksjonskode burde helst være litt kjedelig, mest mulig forutsigbar og enkel å forstå.

Hva er du mest stolt av å ha laget? 🏆

Jeg har laget veldig lite fra bunnen av, alle prosjektene jeg kommer på å ha brukt mye tid på har vært videreutvikling av noe andre har startet. Jeg liker bedre å få jobbe med videreutvikling enn å starte noe nytt og gi det videre til noen andre.

Så det jeg er mest stolt av er faktisk det jeg jobber på nå. Den kommende versjonen av NVDB API LES er basert på det andre har gjort, og jeg er stolt av hvordan vi har utviklet det videre. På grunn av budsjetter og tidsfrister er det mye jeg skulle ønsket vi kunne fikset før prod-setting, men sånn er det nå.

«Det er ofte jeg må rulle tilbake det jeg har jobbet med det siste kvarteret fordi det er "yak shaving"»

Hva er det vanskeligste ved å være utvikler? 🤷

Balansen mellom det vi som sitter med hodet i koden mener bør gjøres, og det kunde/brukere bør gjøres er utfordrende.

Det er ofte jeg må rulle tilbake det jeg har jobbet med det siste kvarteret fordi det er «yak shaving». Å kunne la deler av koden være «god nok» for en feature, og heller forbedre det senere er ofte nødvendig. Det er viktig å ha fokus på å ha ryddig og vedlikeholdbar kode, men alt til sin tid.

Hva synes du norske utviklere bør bli flinkere på? 🙋

På konferanser og meetups er det ofte mest presentasjoner av nye ting. Vi burde bli flinkere på å dele erfaringer med de "kjedelige" tingene vi jobber med.

Hva liker du å gjøre når du ikke jobber? 🕹️

Jeg er aktiv i javaBin Trondheim og Trondheim Developer Conference, så det meste av kodingen jeg gjør på fritiden er i den sammenheng. Ellers går det i TV-serier, Nintendo Switch, klatring og pistolskyting.