utvikling
– Det er vel liten tvil om at Kotlin har gjort livet veldig mye greiere for oss utviklere
Les ukens utviklerintervju.
Ukens utviklerprofil er Thomas Pettersen (35), som er medeier, ansatt og altmulig-mann og Skråstrek, et konsulentselskap en vennegjeng på ni personer gikk sammen om å danne i august 2019.
Kan du kort beskrive stillingen og oppgavene dine?Jeg er primært mobilutvikler/backendutvikler, men er involvert i alt fra innsalg og økonomioppgaver, til faglige og sosiale samlinger. Fordelen med å være et lite selskap, er at man får ta del i og påvirke alle deler av virksomheten.
Hvor jobber du mest, på kontoret, på hjemmekontoret eller ute hos kunder?Jeg jobber for det meste ute hos kunder. Jeg har mest tro på at man skal sitte tett på kunden, for å jobbe sammen om å finne de gode løsningene.
Kan du fortelle litt om prosjektet/prosjektene du har jobbet med i det siste?Jeg jobber til daglig som mobilutvikler på Android-plattformen hos Rema1000/Æ. Jeg sitter sammen med et team fra Shortcut, hvor vi jobber med spennende ting for å løfte merkevaren Æ og Rema. Ellers har jeg de siste åra vært involvert i den nye Get BoX (Android TV), Yr, OBOS Nabohjelp, CalproSmart og mange flere.
Mest spennende må nok Yr-appen ha vært. Jeg har nemlig to bachelorgrader – én i meteorologi og én i programmering. Det må være omtrent det eneste prosjektet hvor de to lar seg kombinere.
Det har vært en vill reise i utvikler-forstand, fra det Android var i 2009 til i dag.
Hvor lenge har du jobbet som utvikler?Jeg begynte som utvikler i 2009, og har for det aller meste jobbet med Android og backend. Det har vært en vill reise i utviklerforstand, fra det Android var i 2009 til i dag.
Har du vært ansatt ved samme sted hele tiden?Jeg var ansatt i Mesan (konsulentselskap i Oslo) fra 2009. Mesan ble for øvrig kjøpt opp av Netcompany i 2016 og skiftet navn da. Etter 10 flotte år der, var jeg moden for å prøve noe nytt. Derfor dannet vi Skråstrek, hvor jeg håper jeg kan bli lenge. Herlig gjeng!
Hvor gammel var du da du først begynte å lære deg programmering?Jeg var utstyrt med en 386 PC fra jeg var veldig ung, og fattet tidlig interesse for IT. Men det var først når jeg flyttet til Oslo som 19-åring at programmeringsinteressen blusset opp.
Det første jeg begynte å leke litt med var faktisk ActionScript og å lage småting i Flash/Flex. Det var spennende å lage digitale komponenter jeg kunne interagere med, og begynne å forstå hvordan man kunne programmere oppførsel.
Det ledet fort til at jeg måtte lære meg PHP/HTML, for å kunne publisere disse selverklærte genistrekene mine og vise verden hva jeg hadde fått til. Det er heldigvis kun i Wayback machine (arkiv for internett) at man finner spor av dette arbeidet i dag.
Hva slags utdannelse har du?Jeg har som tidligere nevnt to bachelorgrader. Én i meteorologi/oseanografi og én i programmering. I tillegg er jeg utdannet T-banefører, som jeg var ett år på heltid og som student under den siste bachelorgraden min i programmering.
Hvilke plattformer utvikler du vanligvis for?Det blir mobile plattformer for det meste, med Android som primærplattform. På backend går det som regel i sky (Amazon, Google, Microsoft) og Docker-containere.
Det er to ting som skiller meg fra andre utviklere, jeg drikker ikke kaffe og jeg jobber i Windows.
Hvilken pc-plattform/OS foretrekker du selv å bruke?Det er to ting som skiller meg fra andre utviklere, jeg drikker ikke kaffe og jeg jobber i Windows. Jeg har forsøkt iherdig å drikke alle varianter av hipsterkaffe og å jobbe på Mac opp gjennom årene, men jeg må si jeg trives best i det jeg er vant til.
Windows har blitt veldig mye mer utviklervennlig over tid, og jeg kjenner ikke noe behov for å bytte. Misunnelsen har vært stor hver eneste gang Macbook har blitt lansert i ny versjon, men etter Surface Book 2 (PC fra Microsoft) kom i mine hender, har den misunnelsen forduftet.
Hvilke programmeringsspråk benytter du?Som mobilutvikler har jeg desidert størst tyngde på Android. Men, jeg har som alle utforskende mobilutviklere også syslet med iOS, Xamarin, React Native, Phonegap, Flutter, Windows Phone, etc. Jeg har også jobbet en del med Java/Kotlin på backend, samt noe JavaScript.
Hva er favorittspråket og hvorfor?Det er vel liten tvil om at Kotlin har gjort livet veldig mye greiere for oss utviklere. Fra å være i en litt traust og verbos Java-verden, har man plutselig fått innovative løsninger, pragmatiske tilnærminger og mer frihet.
Jeg elsker Kotlin! Det er enkelt å lære, kraftfullt å bruke og gir meg som utvikler en helt annen dimensjon når jeg programmerer. I tillegg er det høy fart på utviklingen av språket og rammeverkene rundt, slik at vi får stadige forbedringer som for eksempel coroutines. Skulle jeg hatt throwback til noe, måtte det vært PHP av nostalgiske grunner.
Jeg elsker Kotlin!
Hvilke to verktøy greier du deg ikke uten, og hvorfor?Jeg klarer meg naturlig nok ikke uten Android Studio, da det er der jeg kan lage Android-apper.
Ellers er jeg også helt forelsket i GitKraken for å håndtere Git (kildekodesystem) på en god måte. Jeg syns at de som på død og liv skal sitte i konsollet for å demonstrere at de nesten husker halvavanserte kommandoer og kaster bort mye tid, er noen dinosaurer. #brannfakkel
Hva slags oppgaver liker du best å jobbe med?Det er et vell av oppgaver som er interessante! Jeg trives kanskje best når jeg kan få til komplekse logikk og løse spennende ting. Et godt eksempel på det, var da jeg måtte beregne solbanen på værvisningen i Yr-appen. Den følger døgnet, endringer i høyde på året, kurven etter hvor du er på jordkloden (flatere og flatere mot polene) og hastighet når man swiper bortover.
De dagene jeg setter meg ned på pulten tidlig på morran, dypdykker inn i et problem og plutselig oppdager at det er lunsj for lengst, da har jeg det gøy på jobb!
Jeg drar også en del på konferanser, hvor jeg både deltar og holder foredrag.
Hvordan sørger du for å holde deg faglig oppdatert?Først og fremst går det på å prøve ut nye ting. Kommer det ny teknologi eller nye rammeverk, eller at en eller annen teknikk nevnes på Medium (utviklerblogg), er det alltid spennende å teste ut hvordan de funker og hva de kan brukes til. Jeg drar også en del på konferanser, hvor jeg både deltar og holder foredrag.
I hvilken grad har metoder og teknologier som DevOps, maskinlæring, nettsky og konteinere endret måten du jobber på?På mobil har vi fått gode verktøy som spesialiserte byggservere for mobil, automatisk deploy/release av apper og spennende muligheter for å monitorere bruk og tilstand. Før i tiden var man nærmest i blind når en app ble lansert, og man var helt avhengig av gode brukertilbakemeldinger for å vite hva som skjedde.
På backend har det jo også skjedd store endringer. Da jeg jobbet hos NRK, laget vi en mobil backend som en deployerbar WAR-fil. Da vi skulle legge ut nye versjoner av vår backend, måtte man stoppe en server midlertidig. Det betydde at nrk.no var utilgjengelig en liten stund …
Når jeg jobber med backend nå, går det automatiske deploys til en skyplattform gjennom docker-konteinere som sørger for null nedetid, automatisk lastbalansering av trafikk, god ressurshåndtering og et superfleksibelt system.
Ser du noen trender framover som virkelig vil forandre hverdagen til utviklere?I Android-verden er det fortsatt mye manuelt oppsett og mange kreative (les: totalt ubrukelige) løsninger utviklere finner på. Jeg tror det vil komme løsninger for å lage mer komplette oppsett, som vil gjøre utviklingstiden mye lavere og produktene både mer robuste og moderne.
Jeg tror også vi vil se et initiativ støtte av både Apple og Google for å lage kode én gang som funker på begge plattformer, på grunn av konkurransen fra tredjeparts kryssplattformrammeverk og web.
Jeg skulle gjerne hatt mer dybde på maskinlæring og AI.
Hvilke teknologier eller fagområder skulle du gjerne kunnet mer om?Jeg skulle gjerne hatt mer dybde på maskinlæring og AI. Jeg skjønner konseptene, men innser min egen begrensing i matematikken som må til for å få til virkelig spennende ting.
Deltar du jevnlig på konferanser? I så fall, hvilken er den viktigste for deg?Jeg drar hvert år til London for DroidCon UK. Den pleier å være bra. Ellers må jeg nevne Mobile Era som et knallbra norsk initiativ som jeg håper kan bygge seg opp som en ledende mobilkonferanse i Europa. Det er heller ikke uvanlig at jeg titter innom Software, JavaZone, Yggdrasil og andre konferanser for å få med meg hva som rører seg. Alltid noe spennende!
Bidrar du, enten i jobben eller på fritiden, til noe åpen kildekode-prosjekt – i så fall, hvilke(t)?Jeg må vel ærlig innrømme at de fleste kunder jeg har vært hos har en tendens til å holde kildekoden tett til brystet. Da blir det lite tid til åpen kildekode.
Hvor mye programmerer du på fritiden?Jeg programmerer en del på fritiden på diverse småprosjekter eller prototyper. Jeg bidrar også inn i et par startups, hvor jeg hjelper til der det trengs når jeg klarer å klemme inn litt tid. Skulle ønske døgnet hadde noen flere timer, for det er så mye gøy å gjøre.
Har du noen (andre) hobbyer?Min aller største hobby og lidenskap er nok matlaging. Vi har nylig bygget ut kjøkkenet hjemme i leiligheten til et nirvana for folk som er glad i å lage mat. Vakuumskuff, stekeovn, dampovn, kjølehjørne, massevis av benkeplass og alle tenkelige husholdningsapparater.
Min aller største hobby og lidenskap er nok matlaging.
Jeg holder en del kokkekurs/matkvelder for venner og kolleger, og prøver stadig vekk ut nye oppskrifter og smaker.
Hva gleder du deg mest over ved å jobbe som utvikler?Uten tvil det at jeg får muligheten til å påvirke folks liv. For Nabohjelp var jeg med på å gjøre om på norsk kultur naboer imellom, på Yr tilgjengeliggjorde vi informasjon som er bokstavelig talt livsviktig for bønder i Afrika, hos CalproSmart har vi gjort livet for folk med alvorlige lidelser svært mye enklere, og hos Get (Telia) fikk jeg være med på å lage en ny TV-hverdag for mange hundre tusen i norske hjem.
Opplever du at jobben som utvikler har noen negative sider?I de prosjektene hvor vi ikke får være med på prosessen med å lage produktene, men blir sett på som rene kodemaskiner, føler jeg ofte at penger kastes bort. Det velges kanskje løsninger som gir minimal gevinst for brukerne, men som har stor utviklingskostnad. I tillegg vil det ofte være stor forskjell på intensjon og endelig produkt fordi utviklerne ikke har eierskap til hva man lager.
Jeg jobbet også på et prosjekt hos en kunde tidlig i min karriere, hvor jeg var med på å utvikle systemer som er til for å ta folk eller gjøre livet surt. Nødvendig for bedriften fra et økonomisk perspektiv, men vondt for de som blir ramma. Slike prosjekter ønsker jeg ikke å være en del av igjen.
Hva er det beste frynsegodet du får?Egen råflink CFO <3. Ellers kan jeg vel si mobil, konferanser, gadgets, turer og alt annet supergøy vi gjør i Skråstrek.