utviklerprofilen
Startet som et privat prosjekt. Nå jobber Håvard fulltid med å ferdigutvikle appen
Les ukens utviklerintervju.
Denne uken er det Håvard Nesvold (41) som har stilt opp som ukens utviklerprofil. Han jobber i sitt eget selskap, Left Mouse Button.
Kan du fortelle litt om hva du jobber med for tiden?Jeg er i ferd med å ferdigstille første versjon av appen «MedMonitor», et hjelpemiddel for pårørende eller personer som har demens eller en lignende sykdom.
Prosjektet er et samarbeid med Nasjonalforeningen for folkehelsen, hvor jeg er både utvikler og prosjektleder. Det meste av tiden går med på å utvikle selve appen, men det har også vært mye møtevirksomhet med aktører som kan ha nytte av denne typen hjelpemiddel, for ikke å glemme koordinering med testbrukere.
Appen er en blanding mellom en medisinalarm og en slags helsejournal.
Jeg har lenge hatt et spesielt engasjement for demenssaken, og prosjektet har utspring i en app jeg utviklet for noen år siden for å hjelpe min egen familie. Så fikk jeg tildelt støtte fra Stiftelsen Dam, noe som ga meg muligheten til å jobbe fulltid med å lage en produksjonsklar versjon av appen som kan tilbys alle.
MedMonitor utvikles for både iOS og Android, og lages med React Native. React Native er et rammeverk utviklet av Facebook hvor man kan lage applikasjoner for både Android og iOS basert på samme kildekode. I rammeverket skriver man det meste av app-koden med det svært populære React-biblioteket, sammen med enkelte native plattformfunksjoner. Appen er en blanding mellom en medisinalarm og en slags helsejournal. I tillegg finnes det funksjoner for blant annet å varsle pårørende dersom medisiner ikke tas til tiden.
I tillegg har jeg nylig begynt som frilanser. Etter at appen er ferdigstilt, vil jeg begynne på et oppdrag for en kunde, som senior systemutvikler innen Java.
Hvor jobber du mest, på kontoret, på hjemmekontoret eller ute hos kunder?
Det har vært mest jobbing på hjemmekontor på Oppsal under arbeidet med dette prosjektet. Jeg har egentlig alltid jobbet ganske bra hjemmefra, og lar meg ikke distrahere av forefallende husarbeid. :)
Hvor lenge har du jobbet som utvikler?
Jeg har jobbet med utvikling siden jeg var ferdig med studiene i 2003, så det blir vel 16 år
nå.
Har du vært ansatt ved samme sted hele tiden?
Nei. Før dette jobbet jeg i Finn.no, hvor jeg blant annet var lead developer og etter hvert også områdeleder for én av markedsplassene der – Finn småjobber. Denne tjenesten finnes ikke lengre på Finn, men det var et utrolig spennende prosjekt, og én av de første og største tjenestene innen delingsøkonomi i Norge.
Det var en veldig interessant og lærerik tid.
Det var en veldig interessant og lærerik tid. På småjobber hadde vi en fenomenal kultur og tekniske forutsetninger for å eksperimentere og iterere raskt med koden og produktet.
Jeg har jobbet omtrent 50/50 som konsulent (Bekk, Kantega) og in-house (Finn.no, Posten, med flere) i løpet av min karriere.
Hvor gammel var du da du først begynte å lære deg programmering?
Mitt første møte med programmering var da jeg skrev av kildekode for spill som sto i gamle datablader for datamaskinen «Oric 1» som storebroren min hadde på 80-tallet. Det kan ikke akkurat kalles programmering, men jeg husker fortsatt godt «goto»-kommandoen og et par andre :). Jeg var vel da en sju-åtte år.
Ellers lagde jeg noen tekstbaserte eventyrspill på Amiga 500 når jeg var rundt 12. Mitt «mesterverk» fra den tiden var nok riktignok et spill som var inspirert av de populære Sierra-spillene (Police Quest, Leisure Suit Larry, og så videre) som het «Bob Xaviers struggle to save mankind». Også dette spillet var for Amiga. Det kom på to disketter og var programmert i noe som het AMOS BASIC – jeg var veldig stolt!
Hva slags utdannelse har du?
Cand. scient fra Universitetet i Oslo.
Hvilke plattformer utvikler du vanligvis for?
Jeg har stort sett utviklet på Java-plattformen, men har de senere årene også vært innom noe Node. I forbindelse med MedMonitor har jeg etter hvert fått mye erfaring med React Native og utvikling av apps for iOS og Android. Selv om man bruker React Native, kommer man ikke utenom å måtte lære seg en del om både native Android- og iOS-utvikling for at opplevelsen for sluttbruker skal bli bra.
Hvilken pc-plattform/OS foretrekker du selv å bruke?
Jeg liker egentlig å kunne være i stand til å jobbe effektivt både på Windows og Mac, så når jeg jobber på mine egne prosjekter, så pleier jeg å bytte litt. Det er ikke så stor forskjell på hvor produktiv man kan være synes jeg, men når det er sagt så ville jeg nok valgt en Mac dersom jeg måtte ta et standpunkt, mye fordi at når man lager apps for iOS så er du i praksis tvunget til å jobbe på Mac.
En ren Linux-maskin har jeg ikke hatt noen gang. Det kunne forsåvidt vært spennende å prøve det en stund.
Hvilke programmeringsspråk benytter du?
I dag jobber jeg med Java, Javascript og Go.
Hva er favorittspråket og hvorfor?
Jeg tror jeg nesten må si C. Det er så tett man kommer hardwaren uten å jobbe med assembler, minneadresser og alt det der.
Jeg husker godt foreleseren Dag Langmyhr.
Mitt første bekjentskap med C var i et fag på Universitetet i Oslo, og jeg husker godt foreleseren Dag Langmyhr, som sa at når man gjorde noe galt i C, så gjorde man egentlig ikke noe annet enn å lage et nytt, riktignok utilsiktet, program.
Ellers liker jeg fremdeles å programmere på Java-plattformen, hvor Kotlin har kommet som et friskt supplement. Og Go. I tillegg til å være utrolig kjapt, så har Go en grunnleggende filosofi jeg liker. Less is more!
Hvilke to verktøy greier du deg ikke uten, og hvorfor?
Jeg har måttet jobbe mye mer med grafikk enn jeg har gjort før, så sånn sett har jeg blitt veldig glad i bildebehandlingsprogrammet GIMP, som er et fritt alternativ til Adobe Photoshop. Og når det kommer til Java-programmering så må jeg nok si IntelliJ.
Hva slags oppgaver liker du best å jobbe med?
Oppgaver som gir tydelig verdi for noen, er det mest motiverende. Noe som faktisk leder til en konkret endring eller forbedring. Det kan være så mye …
Det er uansett viktig å være bevisst på hva som er det faktiske målet, og at man har en hensiktsmessig tilnærming for å nå det. Og noen ganger er det jo ikke noe bedre enn å bare sette seg ned for å fikse noen seiglivede bugs …
Hvordan sørger du for å holde deg faglig oppdatert?
Jeg følger med på Medium, Reddit, og forskjellige blogger. Jeg leste mye fagbøker før, men det er sjeldnere nå. I min erfaring lærer man alltid mest av å jobbe med noe konkret – og av å jobbe med andre.
I hvilken grad har metoder og teknologier som DevOps, maskinlæring, nettsky og konteinere endret måten du jobber på?
Alt har blitt utrolig mye enklere. Oppsett av servere gjøres på minutter. En helt ny tjeneste kan settes opp på like lang ting som man før brukte på å starte opp PC-en. Jeg har etter hvert ganske mange apper å følge med på, men jeg kan styre alt fra en hvilken som helst datamaskin, og endringer er aldri lengre unna enn en git push, så er det i produksjon. Det er veldig gøy.
Ser du noen trender framover som virkelig vil forandre hverdagen til utviklere?
Jeg sitter med en følelse av at flere og flere utviklere i økende grad vil ha nytte av – men også tvinges til – å være generalister på en måte som gjør at skillet mellom backend/frontend i enda større grad vil forsvinne.
Du kan si at fullstack-begrepet bare vil omfatte enda mer. I tillegg får vi enda flere programmerbare dingser – klokker, lamper, knapper, alt mulig – «frontend/backend» vil til slutt miste sin mening.
Jeg kunne tenkte meg å lage et spill med Unity eller noe slikt en gang.
Hvilke teknologier eller fagområder skulle du gjerne kunnet mer om?
Det kunne vært spennende å kunnet litt mer maskinlæring. Og spillprogrammering. Jeg kunne tenkte meg å lage et spill med Unity eller noe slikt en gang.
Deltar du jevnlig på konferanser? I så fall, hvilken er den viktigste for deg?
Ikke jevnlig, men har vært mye på Javazone, så da må jeg vel nesten si at den er den viktigste. Der møter jeg alltid mange kjente, og det er jo veldig hyggelig!
Hvilket forhold har du til innebygd personvern?
Jeg synes det er flott at dette har fått fornyet fokus gjennom innføringen av GDPR. Når det er sagt, så tror jeg mange fortsatt har mye å ta tak i. Å implementere løsninger som er i henhold til GDPR kan være veldig krevende.
Bidrar du, enten i jobben eller på fritiden, til noe åpen kildekode-prosjekt – i så fall,
hvilke(t)?
Det er så marginalt at jeg må svare nei.
Hvor mye programmerer du på fritiden?
Antagelig altfor mye. Jeg har alltid hatt et eller annet prosjekt å holde på med på fritiden. Selv om det er mye som kan være tøys, så er det som regel gøy – og så og si alltid lærerikt!
Har du noen (andre) hobbyer?
Jeg er glad i å være med familien. Ellers har jeg spilt basket i mange år, og liker å være på tur i skog og mark.
Hva gleder du deg mest over ved å jobbe som utvikler?
Alt man kan få til – det er egentlig uendelig med muligheter for en utvikler, så lenge man har lyst til å skape noe.
Opplever du at jobben som utvikler har noen negative sider?
Egentlig ikke. Jeg tror utviklere generelt har en takknemlig jobb, med stor fleksibilitet, og mange utviklingsmuligheter dersom man vil. Man tar muligens med seg jobben overalt til tider. Kverner i hodet på et problem man skal løse.
Hva er det beste frynsegodet du får?
Alltid muligheten til å lære noe nytt, og ofte gode muligheter for fleksibel arbeidstid.