utvikling

Møt utvikleren Nils Magnus, som gjerne skulle ha programmert mer i Go

Nils Magnus Larsgård hos Kodemaker.
Nils Magnus Larsgård hos Kodemaker.

Denne gang har vi intervjuet Nils Magnus Larsgård, en utvikler som jobber hos Kodemaker, som har 25 ansatte i alt.

Kan du kort beskrive stillingen og oppgavene dine?Jeg er konsulent og jobber med programmering hos kunder. Stillingstittelen min har jeg valgt selv og er ganske enkelt «programmerer». Hos kunder fyller jeg gjerne rollen som utvikler, men har hatt en fot innenfor arkitektur også.

Hvor jobber du mest, på kontoret, på hjemmekontoret eller ute hos kunder?Hos kunder! Jeg er sjeldent innom kontoret, men vi har en del internt faglig opplegg hvor vi lærer av hverandre, og ikke minst har det hyggelig og sosialt. Hjemmekontor er siste utvei for meg, jeg liker å ha folk rundt meg og kort vei til de jeg trenger å diskutere løsninger med.

Kan du fortelle litt om prosjektet/prosjektene du jobber med akkurat nå?Nei, det er konfidensielt. Forrige prosjekt derimot er ikke så hemmelighetsfullt. Det var et kult prosjekt der vi brukte kafka og hbase for å håndtere store datamengder og spark for å analysere dataene. Jeg har alltid hatt en forkjærlighet for ytelse og optimalisering så dette likte jeg veldig godt.

Hvor lenge har du jobbet som utvikler?Jeg begynte som utvikler rett fra NTNU for cirka 10 år siden og har jobbet som det siden det. Under studiene hadde jeg noen sommerjobber og deltidsjobber som utvikler hvis man kan kalle PHP-utvikling for en anstendig deltidsjobb.

Har du jobbet på samme sted hele tiden?Nei, jeg har vært innom noen konsulenthus og jobbet som selvstendig en periode. Det å jobbe i store konsulenthus er ikke min greie, men nå har jeg funnet meg til rette i et selskap med dyktige folk der alle kjenner alle og alle blir hørt.

Hvor gammel var du da du først begynte å lære deg programmering?14-15 tror jeg. Jeg fikk kjøpe en 80x286 av onkelen min da jeg var 11 år og lagde mine første enkle bat-filer på den. Det var en gedigen datamaskin med 16 fargers EGA-skjerm, 20 MB disk og dobbel diskettstasjon som jeg brukte altfor mye tid på.

Hva slags utdannelse har du?Sivilingeniør i datateknikk fra NTNU. Jeg ble ferdig i 2007 etter å ha skrevet hovedoppgaven min om å parallellisere kode for simulasjon av ladede partikler i elektriske felt, omtrent det samme som skjer når man skyter ladede blekkdråper og styrer de til den riktige posisjonen på papiret i en blekkprinter.

Hvilke plattformer utvikler du vanligvis for?Det meste jeg har gjort i jobbsammenheng er skrevet i Java og kjører etter det jeg vet på Linux-plattformer av ulike slag. Jeg har noen apper for Android på samvittigheten og noen webapper skrevet i Javascript.

Hvilken pc-plattform/OS foretrekker du selv å bruke?

Hvis jeg blir tvunget til å jobbe på Windows så skal jeg klare det, men jeg merker at produkt­ivi­teten min faller betrakt­elig på Windows

Linux for alt i verden. Fordi det er lett å tilpasse til min bruk og fordi jeg har alt jeg trenger der. Hvis jeg blir tvunget til å jobbe på Windows så skal jeg klare det, men jeg merker at produktiviteten min faller betraktelig på Windows. Jeg hadde en periode der jeg kjørte Mac for noen år siden og det kan hende jeg kommer tilbake til Apple hvis de klarer å putte 32 GB minne og funksjonstaster på laptopene sine.

Hvilke programmeringsspråk benytter du?

Java, Go og Python. Java på jobb, Go og Python på fritiden. Jeg skulle gjerne brukt Go på jobb også, men jeg har inntrykk av at det ikke er mange kunder som har tatt det i bruk ennå.

Hva er favorittspråket og hvorfor?De to siste årene har jeg fått øynene opp for Go. Det er et språk som tar ytelse og concurrency på alvor samtidig som det er enkelt å lese og forstå hva som skjer. 90 prosent av all tiden man jobber med kode er jo tross alt å lese og prøve å forstå hva koden gjør, og da er det viktig at språket er så enkelt og lite jålete som mulig. Kompileringstid og ytelse er en helt annen verden enn hva jeg har vært vant med fra Java. Jeg har en backend til et hobbyprosjekt der jeg skrev om koden fra Java til Go og oppnådde 90 prosent redusert minnebruk og cirka 70 prosent redusert CPU-bruk på samme funksjonalitet. Det gjør store utslag på regninga jeg får fra Google for bruk av ressurser på App Engine! I tillegg går kompilering og kjøring av enhetstester så fort at man som regel kan kjøre alle testene med test-deknings-rapporter for hver gang man lagrer endringer i kildekoden.

Hvilke to verktøy greier du deg ikke uten?Git og ssh. Da får jeg sjekket inn koden min og sjekket loggene på serveren. Det er litt kjedelig å velge bare to verktøy, for man må jo ha en god editor (gjerne fra Jetbrains) og en kompilator i tillegg for å gjøre en jobb.

Hva slags oppgaver liker du best å jobbe med?Rent teknisk er det programmering og utvikling av nye applikasjoner. Utover det er det mest motiverende når man er i prosjekter der man ser nytten av det man lager i et større perspektiv. Det at programmene jeg lager forbedrer eller forenkler andres hverdag, er en stor bonus.

Hvordan sørger du for å holde deg faglig oppdatert?Jeg følger med på anbefalinger fra kollegaer, blogger, podcaster, konferanser og en sjeldent gang noe på Twitter. Jeg bruker en del tid på å lese meg opp og teste ut nye ting.

I hvilken grad har metoder og teknologier som DevOps, nettsky og konteinere endret måten du jobber på?Bruk av skytjenester og konteinere gjør at det går fortere å rulle ut ny funksjonalitet til produksjon. DevOps er jo ikke akkurat noe nytt, men det er fint at det settes fokus på at kommunikasjon mellom drift og utvikling skal være effektiv. Jeg liker at man som utvikler skal erfare hvordan applikasjonen oppfører seg i produksjon og at man derfor blir mer oppmerksom på hva som er viktig å huske på når man utvikler. På den måten blir koden mer robust og man unngår en del feil.

Ser du noen trender framover som virkelig vil forandre hverdagen til utviklere?

Jeg håper flere norske selskaper omfavner sky­tjenester i større grad

Jeg håper flere norske selskaper omfavner skytjenester i større grad. Jeg har inntrykk av at det er mange selskaper som kvier seg for å bruke skyløsninger fordi det er skummelt og de ikke ser de store gevinstene.

Hvilke teknologier eller fagområder skulle du gjerne kunnet mer om?Jeg har prøvd å lære meg omtrent ett programmeringsspråk i året, og etter å ha sett hva flinke kolleger i Kodemaker får til med Clojure, så frister det å sette seg inn i et rent funksjonelt språk for å få dette paradigmet ordentlig inn i fingrene. Så neste språk er en variant av Lisp som står høyt på lista over hva jeg skal lære meg. Forøvrig kunne jeg godt tenkt meg et crashkurs i design og fargevalg for webutvikling.

Deltar du jevnlig på konferanser? I så fall, hvilken er den viktigste for deg?Javazone er den viktigste konferansen. Ikke nødvendigvis på grunn av innholdet, men det er hyggelig å treffe gamle kjente og se hvilke trender som kommer og går. Jeg prøver å komme meg på minst én annen konferanse i året som ikke har med Java å gjøre for å få nye impulser. I år dro jeg på en konferanse om maskinlæring med workshop om Tensorflow. I Kodemaker kan vi for øvrig delta på akkurat de konferansene vi vil innenfor en romslig budsjettramme, og det er et stort pluss for meg.

Hvilket forhold har du til innebygd personvern?Ikke mye. Det har ikke vært relevant i de siste prosjektene jeg har vært på.

Hvor mye programmerer du på fritiden?Det går i bølger. Noen perioder kan jeg bruke all tilgjengelig fritid på hobbyprosjekter eller ting som jeg drar med meg hjem fra jobb. Jeg har en Android-app med en tilhørende backend som stadig blir endret og oppgradert. Og så leker jeg en del med maskinlæring og Tensorflow på fritiden. Det er ganske kult å se hva man kan gjøre med Tensorflow og nevrale nettverk når man har nok data.

Bidrar du, enten i jobben eller på fritiden, til noe åpen kildekode-prosjekt?

De artigste prosjektene er de der jeg ser at mitt arbeid direkte forenkler eller forbedrer hverdagen til andre

Jeg har ikke noe fast prosjekt jeg vedlike­holder, men jeg har skrevet et gradle-plugin til generere Java-kildekode fra wsdl-er. Nå nylig overtok jeg et bibliotek som er skrevet i Go for å tolke filer for værdata (grib-filer). Begge ligger tilgjengelig på Github og blir vedlikeholdt i rykk og napp.

Hva gleder du deg mest over ved å jobbe som utvikler?Det å kunne gå til jobb og lage noe som andre har nytte og glede av er veldig engasjerende. De artigste prosjektene er de der jeg ser at mitt arbeid direkte forenkler eller forbedrer hverdagen til andre.

Opplever du at jobben som utvikler har noen negative sider?

Nei.

Føler at du får den lønnen du fortjener?Ja, i Kodemaker er det lønn som fortjent. Jeg har vært i nok selskaper der det er eksterne aksjonærer som stikker av med kaka mens de ansatte ikke har noe de skulle sagt. Men siden Kodemaker er ansatt-eid så blir alt rettferdig fordelt på de ansatte.

Les flere utviklerintervjuer på denne siden »

Powered by Labrador CMS