- Vi har en tendens til å hoppe på nye rammeverk og biblioteker for raskt

Ukas Koder og Vipps-utvikler Thomas Kjeldahl Nilsson advarer mot neomani - og tvungen parprogrammering.

Thomas Kjeldahl Nilsson jobber som selvstendig utvikler, og er for tida på oppdrag for Vipps. 📸: Privat
Thomas Kjeldahl Nilsson jobber som selvstendig utvikler, og er for tida på oppdrag for Vipps. 📸: Privat Vis mer

Hvordan begynte du med koding? 👶

Da jeg gikk på barneskolen knotet jeg litt med BASIC-kode på Commodore 64. Det begrenset seg til å skrive inn programmer fra blader, og kanskje justere litt på dem for å se hva som skjedde.

Da jeg gikk på ungdomsskolen knotet jeg litt med AMOS på Amiga og QBasic på PC.

«Da jeg gikk på ungdomsskolen knotet jeg litt med AMOS på Amiga og QBasic på PC.»

Vi klarte å få til Programmering som valgfag, jeg og et par kamerater. Såvidt jeg husket kodet vi stort sett tekst-eventyr ala. Zork... og vi spilte mye Scorched Earth.

Vi var stort sett overlatt til oss selv i de timene.

Men jeg begynte egentlig ikke å programmere "på ordentlig" før jeg startet på Blindern og tok det første programmeringskurset der: Simula-programmering i Emacs.

Jeg trodde jeg skulle studere kjemi og ta litt informatikk på siden. Det ble fort heltid informatikk og programmering istedet.

- Dagen starter så med et fast videomøte med app-teamet, forteller Thomas Kjeldahl Nilsson. 📸: Privat
- Dagen starter så med et fast videomøte med app-teamet, forteller Thomas Kjeldahl Nilsson. 📸: Privat Vis mer

Hva jobber du med akkurat nå? 🛠️

Jeg har jobbet med Android-teamet hos Vipps i litt over et år nå.

Jeg jobber mest med Vipps på nett (du kan kjøpe ting i nettbutikker med Vipps-appen nå, så du slipper å dra fram kredittkortet ditt) og Vipps Logg inn (du kan bruke Vipps-appen til å logge inn på mange nettsteder nå, istedet for å lage enda et passord som du kommer til å glemme).

Hvordan ser en typisk arbeidsdag ut for deg? ☕

Aller først åpner jeg Slack og taster inn hva som skjedde i går, hva jeg holder på med idag, og eventuelle hindringer jeg har. Dette skjer i en asynkron "slackup"-tråd. (ref denne)

«Vi har et fast "snakke om løst og fast"-møte på morgenen, mest for å se hverandre i real-time.»

Dagen starter så med et fast videomøte med app-teamet. De fleste av oss har vært remote siden Covid traff Norge, og er det fortsatt.

Vi har et fast "snakke om løst og fast" møte på morgenen, mest for å se hverandre i real-time så vi ikke bare møtes via tekst. Noen ganger snakker vi om prosjekter og utfordringer, noen ganger er vi bare sosiale og prater litt tull i teamet før arbeidsdagen starter.

Resten av dagen fordeles mellom synkrone videomøter, mange løpende asynkrone diskusjonstråder på Slack, og programmering. På en god dag er det mest programmering. :)

Thomas Kjeldahl Nilsson brygger øl på fritida. Da ligger det i korta at han ikke brygger kaffen sin på noen kjip kaffetrakter. 📸: Privat
Thomas Kjeldahl Nilsson brygger øl på fritida. Da ligger det i korta at han ikke brygger kaffen sin på noen kjip kaffetrakter. 📸: Privat Vis mer

Hva har du lyst til å lære mer om framover? 📚

Flutter ser lovende ut foreløpig.

Jeg har sett en del kryssplatform app-rammeverk komme og gå de siste 10 årene, og Flutter er den eneste jeg selv har blitt fristet til å bruke.

Hvilke konkrete verktøy klarer du deg ikke uten? 😻

Emacs.

Jeg bruker primært Emacs til TODO-lister og notater (org-file), det meste jeg gjør i Git (magit), og all generell crunching av standard tekst (makroer, egendefinerte funksjoner).

Emacs fantes før jeg ble født, jeg har brukt Emacs siden jeg begynte å studere i 1997, og ser ikke bort fra at jeg fortsatt bruker Emacs den dagen jeg går i pensjon.

"hjemmekontor-parprogrammering-med-katta.jpg" - dette er en parprogrammering han kan like. I motsetning til tvungen parprogrammering med mennesker. 📸: Privat
"hjemmekontor-parprogrammering-med-katta.jpg" - dette er en parprogrammering han kan like. I motsetning til tvungen parprogrammering med mennesker. 📸: Privat Vis mer

Hva er det verste du kan bli spurt om på jobben? 🔥

Parprogrammering "bare for å parprogrammere".

Misforstå meg rett: jeg synes parprogrammering er topp... som en metode man bevisst plukker fram innimellom til intens kunnskapsoverføring, eller til sparring rundt viktige/vanskelige løsninger.

Men jeg kunne aldri jobbe i et miljø hvor man sier: "her skal alle parprogrammere minst X timer hver eneste dag". Da hadde jeg blitt klin kokos.

Vi er alle forskjellige: selv trenger jeg å være en del alene i hodet mitt når jeg arbeider.

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

Vi kan bli mer varsomme med å innføre nye teknologier før de faktisk løser et betydelig problem.

Vi har en tendens til å hoppe på nye rammeverk og biblioteker for raskt; vi har litt "neomania". Og så ender vi med å stable for mange rammeverk, biblioteker og "magiske svarte bokser" oppå hverandre.

Det er vanskelig nok å bygge robust programvare. Det blir enda vanskeligere når man legger til flere "moving parts" enn man trenger.

Jeg er faktisk mer fornøyd når jeg klarer å ta vekk noe unødvendig, enn når jeg legger til ny teknologi.

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

Jeg koder langt mindre på fritida nå som jeg har familie, så det blir ikke mye hobby-programmering, iallfall mens jeg er i fulltidsoppdrag.

Den tiden jeg har utenfor arbeidstid og familie brukes stort sett på bøker, vektløfting, og litt kampsport (jeg liker Judo og Brasiliansk Jiu Jitsu; håper Covid snart blåser over...)

Iblant brygger jeg øl, også.