utvikling

– Kotlin løser i større og større grad alle mine problemer

Les ukens utviklerintervju.

Anders Mikkelsen er senior systemutvikler i Systek.
Anders Mikkelsen er senior systemutvikler i Systek.

Ukens utviklerprofil er Anders Mikkelsen (34), jobber som senior systemutvikler i Systek.

Kan du kort beskrive stillingen og oppgavene dine?Jeg er stort sett alltid ute i prosjekt som alle andre, men som senior bruker jeg også endel tid på å videreutvikle Systek som hovedaktør på Kotlin i Norge. Kotlin er et svært spennende programmeringsspråk som ble utviklet og publisert av JetBrains for noen år siden.

Som senior bruker jeg også endel tid på å videreutvikle Systek som hovedaktør på Kotlin i Norge

Dette innebærer konferanser, workshops, og lignende. I tillegg arrangerer jeg og min kollega Jarle Hansen (også Systek), sammen med Marie Katrine Ekeberg fra Evry, Oslo Kotlin Meetup

Hvorfor valgte du akkurat denne arbeidsgiveren?Systek har en ypperlig kombinasjon av gode betingelser, særdeles kompetente medarbeidere og et levende sosialt engasjement. Det er stadig vekk noe som foregår på hovedkvarteret både faglig og sosialt. Jeg synes det er spesielt hyggelig at man stort sett alltid kan lære noe nytt når vi samles, da det sitter mye tung erfaring blant alle ansatte. I tillegg er det en flat struktur der fokus er på oppdragsløsing og godt arbeidsmiljø.

Hvor jobber du mest, på kontoret, på hjemmekontoret eller ute hos kunder?Som konsulent varierer det etter kundens behov, men jeg foretrekker å sitte nærmest mulig produkteier, og det fører stort sett til at jeg sitter så mye ute hos kunden som mulig. Mange kunder tilbyr også en løsning med hjemmekontor, noe som er praktisk hvis man har et eksternt behov i løpet av en arbeidsdag.

Kan du fortelle litt om prosjektet/prosjektene du har jobbet med i det siste?Jeg er på oppdrag hos Skatteetaten på Helsfyr, og det er mitt første prosjekt for Systek. Skatteetaten IT er en stor organisasjon, både når det gjelder hardware og applikasjoner. De har investert tungt i å modernisere til en effektiv plattform basert på mikrotjenester, og har behov for store sammensatte testmiljøer.

Min oppgave oppi dette er å automatisere opprettelse og sanering av nevnte testmiljøer.

Det finnes et utall forskjellige skattealternativer som igjen fører til et stort behov for rike testdata som kan gjenspeile befolkningen på en så god måte som mulig. Min oppgave oppi dette er å automatisere opprettelse og sanering av nevnte testmiljøer. På sikt vil det kunne være et generelt miljøverktøy for Skatteetaten.

Et miljø kan bestå av hundrevis av CPU-kjerner, tusenvis av gigabyte RAM og mange terabyte i lagring, noe som skaper utfordringer med integriteten til testdata over tid. Derfor har man behov for en automatisert prosess som kan redusere tidsbruk rundt reetablering av et testmiljø til en håndterbar periode.

Dette er spennende! Jeg får en enestående mulighet til å fordype meg i et utall teknologier og konsepter for å identifisere beste vei til mål.

Hvor lenge har du jobbet som utvikler?Fulltid snart 4 år, cirka 6 år totalt.

Har du vært ansatt ved samme sted hele tiden?Jeg hadde flere forskjellige stillinger da jeg tok bachelorgraden, men begynte på fulltid i Netcompany da jeg jobbet med min mastergrad. Det var et flott sted å jobbe, men de hadde litt andre ambisjoner enn det jeg så for meg, så da var Systek en bedre match for meg.

Hvor gammel var du da du først begynte å lære deg programmering?Det har vært en generell interesse så lenge jeg kan huske, men jeg gjorde aldri en seriøs innsats for å lære meg det før i 2013. På det tidspunktet jobbet jeg i Telemark Bataljon i Forsvaret og var på oppdrag i Afghanistan. Jeg var ved et slags veiskille og bestemte meg til slutt for å gå en helt annen vei, ved å plukke opp interessen for programmering igjen. Det har jeg ikke angret på!

Hva slags utdannelse har du?Som utvikler har jeg en bachelor i informatikk, med spesialisering i programmering fra det som den gang het NITH. Det er nå en del av Høyskolen Kristiania.

Der ble jeg også uteksaminert med en master i applied computer science. To veldig forskjellige måter å lære på, men begge tungt teknisk. Jeg programmerte hver eneste dag i fem år i løpet av begge de utdannelsene. Utover det har jeg befalsutdanning fra Forsvaret og flere instruktørkurs, noe som har vært til veldig god hjelp i min nye karriere.

Hvilke plattformer utvikler du vanligvis for?Jobber nesten utelukkende backend, og da går det i Linux-distroer. Jeg trives godt i skyen, men leverer på alle nivåer. Jeg jobber tidvis med noe frontend, da gjerne React. Jeg har i tillegg produsert apper både for Android og iOS i en tidligere jobb.

Så lenge jeg har tilgang til en terminal i et UNIX-ekvivalent miljø, så er jeg ganske ukritisk.

Hvilken pc-plattform/OS foretrekker du selv å bruke?Så lenge jeg har tilgang til en terminal i et UNIX-ekvivalent miljø, så er jeg ganske ukritisk. Når det gjelder Linux-distroer, ender jeg stort sett alltid på Ubuntu. Jeg er ganske lat når det gjelder OS-konfigurering, og det er det mest tilrettelagte alternativet jeg har prøvd i det segmentet.

Ellers er Ubuntu shell i Windows 10 kommet opp på et nivå som er helt brukbart, så jeg tar gjerne i bruk det og. Når det gjelder jobb, går jeg alltid for Macbook Pro med macOS. Det er rett og slett fordi jeg er avhengig av å ha en Mac om jeg skulle begynne i et prosjekt der iOS er en del av oppdraget. Man kommer fortsatt ikke utenom XCode.

Hvilke programmeringsspråk benytter du?I inneværende prosjekt går det i Kotlin og TypeScript. TypeScript er jo i realiteten bare JavaScript, men det er jo fint at man omsider har sett verdien av typer. Ellers har jeg jobbet mye med Java, Ruby og Swift.

Hva er favorittspråket og hvorfor?Kotlin løser i større og større grad alle mine problemer, på elegante og pragmatiske måter. Derfor seiler det opp som en soleklar favoritt for backend.

For frontend er jeg blitt høvelig komfortabel med TypeScript. Når det gjelder automatisering og skripting har jeg en forkjærlighet for Ruby, men jeg ser at kotlin-script har potensial til å også dekke det behovet. All kode i et språk (bortsett fra for frontend, spar meg for «transpiling» rammeverk) er veldig forlokkende.

Hvilke to verktøy greier du deg ikke uten, og hvorfor?Terminal og Docker. Terminal fordi man med en del trening kan være svært effektiv der, uten å måtte navigere seg gjennom et hav av UI for å få ting gjort.

Docker var en «game changer» for meg da jeg oppdaget det, fordi det gir meg muligheten til å spinne opp miljøer «on the fly» ved hjelp av konteinere, både lokalt og på en plattform for å dekke helt spesifikke utfordringer, uten mye konfigurering. Docker er stort sett et API over gammel teknologi, og det finnes også andre leverandører, men Docker er de første jeg oppdaget som gjorde det tilgjengelig og rett fram i bruk.

Jeg trives best i brytningspunktet mellom infrastruktur og arkitektur.

Hva slags oppgaver liker du best å jobbe med?Jeg trives best i brytningspunktet mellom infrastruktur og arkitektur. Sky, automatisering, integrasjoner, med mer. Samtidig er komplekse utfordringer i et domene alltid svært engasjerende å implementere som en robust, vedlikeholdbar og skalerbar arkitektur. Sånn sett har jeg det som plommen i egget hos Skatteetaten i dag.

Hvordan sørger du for å holde deg faglig oppdatert?Det viktigste er å være åpen, ydmyk og nysgjerrig på nye ting man hører om! Utover det leser jeg mye, i tillegg til å delta på og holde foredrag på konferanser.

Senest var på Kotlinconf 2019, i København. Der snakket jeg og min kollega Jarle Hansen om fordeler og ulemper med Kotlin ved innføring i Skatteetaten. Hvis du liker Kotlin eller er nysgjerrig på det, sjekk ut foredraget vårt på YouTube!

Jeg forsøker også å bidra aktivt i forskning og har en ambisjon om å publisere en forskningsartikkel i året, foreløpig går det greit. I tillegg prøver jeg å være så aktiv som mulig i Oslo Kotlin Meetup. Det er en spennende meetup som leverer innhold på alle nivå av kunnskap. Hvis du jobber aktivt med Kotlin, eller er nysgjerrig, er dette stedet å komme for å møte andre i samme situasjon som deg!

I hvilken grad har metoder og teknologier som DevOps, maskinlæring, nettsky og konteinere endret måten du jobber på?DevOps er vel det mest standhaftige buzzwordet jeg har måttet forholde meg til de siste årene, uten at jeg fortsatt har noen klar formening om hva det skal bety, utover at man ønsker at utviklere skal ta over oppgavene til drift.

Personlig mener jeg at driftsressurser har viktige oppgaver utover det som angår hvorvidt applikasjonen er tilgjengelig eller ikke, slik som patching, sikkerhet, etc.

Jeg har fortsatt til gode å møte et utviklingsteam som er stort nok eller har bred nok kompetanse til å ta inn over seg alt dette, og samtidig levere et produkt.

Sky og konteinere går hånd i hånd og er en helt integrert del av min hverdag som utvikler. Jeg har ikke vært i et eneste prosjekt hvor dette ikke har vært et tema i større eller mindre grad, med andre ord helt fundamental kunnskap i dagens utviklingsterreng. Maskinlæring er dessverre et underutforsket felt for meg, selv om jeg har mange spørsmål. Trenger flere timer i døgnet!

Ser du noen trender framover som virkelig vil forandre hverdagen til utviklere?Jeg tror sikkerhet og robusthet er i ferd med å ta igjen konteiner- og kontinuerlig leveranse-bølgen vi har sett de siste årene. Nå som vi er kommet på et nivå der kontinuerlig leveranser er blitt veldig tilgjengelig, tror jeg utviklere må forberede seg på at kontrollregimene kommer til å komme ettertrykkelig på banen – spesielt i systemer med en stor andel mikrotjenester.

Jeg tror utviklere må forberede seg på at kontrollregimene kommer til å komme etter-trykkelig på banen.

Jeg opplever en stigende interesse for undersøkelser av svakheter i hele leveransekjeden, kontroll på mer underliggende konfigurasjon i skyen, og lignende. Spesielt etter flere store saker om data som er blitt eksponert fra systemer i skyen. Hvis man vil vite mer om det, kan jeg anbefale foredraget til min kollega Øyvind Syrstad om sikkerhet i skyen, presentert på Software 2020.

Samtidig tror jeg det blir mer av det samme. Mye vil ha mer, og utviklere divergerer ikke fra det. Det blir raske leveranser, mindre infrastruktur (som AWS Fargate, der det ikke er et tema i det hele tatt), serverless, og mer vendor lock-in ettersom skyleverandører kan levere mer og mer komplette løsninger. På godt og vondt.

Hvilke teknologier eller fagområder skulle du gjerne kunnet mer om?Maskinlæring, Deep Learning, AI generelt. Det er åpenbart en del av teknologibildet fremover, men jeg ser frem til at hypen legger seg litt, og vi ser hva vi faktisk kan få til.

Samtidig er det et komplekst felt, der det er litt vanskelig å definere hvor man skal begynne for å få effekt i prosjekt, så det spørs om jeg får tid til å prioritere det. Alle kan ikke lage alt, og foreløpig er jeg fornøyd med å konsumere det som allerede eksisterer i dette feltet.

Deltar du jevnlig på konferanser? I så fall, hvilken er den viktigste for deg?Jeg er endel av satsning på Kotlin i Systek, så det er naturlig for meg å prioritere Kotlinconf. Prøver også få med meg JavaZone for å få et inntrykk av status i bransjen, og drar på akademiske konferanser når jeg har et paper som skal publiseres der. Senest HICSS.

Hvilket forhold har du til innebygd personvern?Med innføringen av GDPR, er det helt grunnleggende i alle steg i en utviklingsprosess. Samtidig skulle jeg ønske at det kanskje var mer basert på hva som er teknisk hensiktsmessig, enn politisk salgbart. Cookie-informasjon som spretter opp på alle nettsteder, er et tydelig eksempel på det. Sånn som det funker i dag, har de ingen annen funksjon enn å irritere brukere.

Bidrar du, enten i jobben eller på fritiden, til noe åpen kildekode-prosjekt – i så fall, hvilke(t)?Hele masteroppgaven endte i et open source-bibliotek, ellers prøver jeg å bidra noe til Vert.x når jeg kan. Vert.x er et non-blocking og asynkront toolkit designet for å lage små tjenester med høy ytelse på JVM-en. Det er det jeg vil gjøre, men tiden går stort sett til å bidra inn i open source-prosjekter som direkte påvirker jobb – for eksempel om det er problemet med kode eller dokumentasjon i en spring-boot avhengighet.

Hvor mye programmerer du på fritiden?Det varierer veldig, men generelt lite. I starten prioriterte jeg det vekk til fordel for min samboer, men nå er det egentlig behagelig å legge det fra seg etter jobb uansett. Det finnes andre ting å oppleve.

Har du noen (andre) hobbyer?Jeg liker å spille spill, enten på et digitalt medium eller på et bord. Jeg dykker når jeg har mulighet, trener når samvittigheten sier ifra og er veldig glad i å reise. Gjerne til utlandet, men oftest på hytta.

Hva gleder du deg mest over ved å jobbe som utvikler?Domenet! Det er kanskje mer relatert til det å være konsulent, men det å oppleve nye domener og kunne skape løsninger som møter utfordringene kunden har, er veldig givende! Det er alltid fascinerende å lære noe nytt om hvordan Norge henger sammen, og se hvordan det kan gjenspeiles i en digital implementasjon.

I tillegg er det lite som gir så god mestringsfølelse som å implementere en elegant og lettfattelig løsning på en kompleks problemstilling.

Det er mange i bransjen som har et religiøst forhold til ting.

Opplever du at jobben som utvikler har noen negative sider?Det er mange i bransjen som har et religiøst forhold til ting, være seg teknologi, metode, rammeverk, eller lignende. Jeg har ikke opplevd det på samme måte i andre jobber jeg har hatt, og akkurat dét kan være litt slitsomt å forholde seg til.

Hva er det beste frynsegodet du får?Det desidert viktigste for meg er at Systek legger til rette for, og stiller midler tilgjengelig til, å jobbe aktivt med fag i alle fora der jeg har behov.

Du finner mange flere utviklerintervjuer på vår samleside »

Powered by Labrador CMS