Kristoffer jobber full remote: – Mye hjemmekontor, og en del reisekontor

Open source-prosjektet Headscale endte opp med jobb hos Tailscale, forteller Ukas Koder Kristoffer Dalby.

- Når jeg står fast prøver jeg å koble av litt, det blir fort en runde i buldrehallen eller en løpetur, eller bare ta med laptoppen og sette meg et annet sted for å bryte mønsteret litt, sier Kristoffer Dalby. 📸: Privat
- Når jeg står fast prøver jeg å koble av litt, det blir fort en runde i buldrehallen eller en løpetur, eller bare ta med laptoppen og sette meg et annet sted for å bryte mønsteret litt, sier Kristoffer Dalby. 📸: Privat Vis mer

Hvorfor ble du utvikler? 👶

Jeg har alltid vært interessert i datamaskiner og det som kan bygges med dem. Mye tid ble brukt på å kjøre Counter-Strike og Team Fortress 2 spillservere og sette opp større LAN parties i hjemkommunen.

Utvikling var ikke noe jeg kom meg inn i før jeg begynte på Informatikk på NTNU, og skal jeg være helt ærlig så hadde jeg ikke gjort så mye mer undersøkelse enn at jeg søkte meg inn på “noe med data”.

Der fant jeg fort ut at det var noe jeg virkelig kunne tenke meg å drive på med og det ble påbegynt mange prosjekter privat, i studentmiljøet og med venner som gjorde at man lærte enda fortere.

Etter endt studie, og mersmak for utlandet etter et utvekslingssemester i Madrid, søkte jeg litt rundt omkring før jeg til slutt fikk tilbud om å bli med i et traineeprogram som heter "Young Graduate Trainee" hos European Space Agency (ESA) i Nederland. Her jobbet jeg mye med å bygge prototyp-programvare for å automatisere infrastruktur og nettverk, samt bringe litt ungt blod til en avdeling med høy snittalder og litt utdatert syn på IT.

«Jeg tenkte at dette er jeg jo ikke kvalifisert til, men takket ja til intervju.»

I ESA jobbet jeg tett med min kamerat Juan Font, som hadde vært trainee tidligere. Mye av oppgavene var relatert til å bygge en intern sky og Kubernetes løsning med Go og Python.

Man kan kun være trainee hos ESA i to år, så når min tid var ute ble jeg kontaktet av en rekrutterer fra London som lette etter Site reliability engineer (SRE) for et team i et algoritmisk/kvantitativt-tradingselskap, G-Research. Jeg visste ikke helt hva SRE var, og etter litt googling fant jeg ut at det var en Google-stilling for folk med endel erfaring, gjerne på tvers av programvareutvikling og infrastruktur.

Jeg tenkte at dette er jeg jo ikke kvalifisert til, men takket ja til intervju og etter seks intervjuer var jobben min. De så etter en litt mer uerfaren SRE som de kunne forme som de ville, så det var jo en bra kombinasjon.

📸: Privat
📸: Privat Vis mer

I G-Research var det endel programmering i Go, jobbe med Kubernetes og bygge monitorering plattformen for trading systemet.

Samtidig som jeg jobbet der, og korona feide over landet, så trengte jeg et hobbyprosjekt og jeg begynte å titte på et prosjekt Juan hadde startet mens han kjedet seg av de samme grunnene.

Dette prosjektet hadde han kalt Headscale, en re-implementasjon av Tailscale sin kontrollserver, for å lære hvordan det fungerte. Tailscale er en alle til alle-"VPN" som lar alle dine enheter snakket sammen trygt og kryptert over internett, og man trenger ikke tenke på ting som brannmurer og "port-forwarding", informasjonen som må veksles mellom enhetene orkestreres av en kontroll server.

Jeg begynte å pusle med dette prosjektet og engasjementet ble en spiral med flere og flere pull-requests og mye utfylling av tester. Prosjektet begynte etterhvert å få veldig mye oppmerksomhet (det har i skrivende stund 13.000 stjerner på Github) og mange begynte å ta det i bruk for hjemmelabben sin.

Gjennom prosjektet hadde vi alltid litt av og på kommunikasjon med folkene bak Tailscale hvor vi fikk litt tips om en protokoll skulle endres eller lignende. På et tidspunkt ble prosjektet så populært at andre ble interessert i å bruke det til å konkurrere med Tailscale, og vi kom i snakk med CTO-en deres om temaet. Etter litt snakk så kom vi inn på å jobbe for Tailscale, og bruke tid på begge prosjektene, og etter en runde med intervjuer var det i boks og ny jobb var landet.

Hva jobber du med? 💪

Hos Tailscale sitter jeg på en måte med to forskjellige hatter: Jeg jobber 50 prosent på prosjekter for Tailscale også har jeg 50 prosent av tiden min dedikert til å videreutvikle Headscale.

Tiden på Headscale-prosjektet er en kombinasjon av forbedringer jeg selv ønsker å gjøre, og forespørsler/bugs fra brukere. Jeg styrer hvordan jeg bruker den tiden selv, og det blir fort en blanding av prosjektstyring/triaging av Github og Discord og koding.

Jeg har en del overordnede mål jeg ønsker å gjøre med prosjektet for å forbedre det, gjøre det lettere å vedlikeholde og gjøre det mer robust. Utover det er det jo en del bugs som skal skvises. For tiden jobber jeg på en skikkelig stor refaktorering som skal gjøre det lettere for andre å komme med kode, og for oss i fremtiden, det var mye kode som bar preg av at vi lærte oss Go mens vi startet prosjektet.

På Tailscale-siden jobber jeg på diverse prosjekter, for tiden på et prosjekt for å integrere endepunktsikkerhet inn i produktet vårt. Her får jeg mulighet med å jobbe med hele vår stack som fra SaaS plattformen til klient (de fleste plattformer) og web.

Vi er en skikkelig tung Go-bedrift. Mange av de originale folkene er fra Googles Go kompilator-team, så det meste av stacken vår er Go, med native kode for platform UI og Typescript/React for web.

«Tailscale er full remote, så det er mye hjemmekontor, og en del reisekontor.»

Hvordan ser uka ut for deg? 📆

Tailscale er full remote, så det er mye hjemmekontor, og en del reisekontor. Jeg prøver å reise en del nå som muligheten er der, og Tailscale støtter de ansatte til å dra og møte hverandre så det blir en god blanding av privat- og jobbreise.

I løpet av en uke har vi standup 15 minutter tre av dagene så vi kan ha fulle fokusdager. Andre møter legger jeg til tirsdager og torsdager da det er mye tidsforskjell mellom de andre ansatte og meg, så jeg har to sene kvelder i uka hvor jeg fort blir sittende til 20:00.

Typisk prøver jeg å ha to rene Tailscale-dager og to Headscale-dager hver uke, også flyter den siste litt begge veier.

Ettersom noen dager blir lange er det mye fleksibilitet til å jobbe når det passer meg, så jeg bruker en del tid på dagen til å gjøre ærend, spise lunsj med andre remote-venner, og buldre.

📸: Privat
📸: Privat Vis mer

Hva er ditt beste råd for å komme seg videre når du står fast i kodinga? 🧠

Når jeg står fast prøver jeg å koble av litt, det blir fort en runde i buldrehallen eller en løpetur, eller bare ta med laptoppen og sette meg et annet sted for å bryte mønsteret litt.

Om det er et problem som egner seg godt for litt parprogrammering eller diskusjon er stort sett alltid en kollega med på å hoppe inn i en Google Meet og diskutere.

Jeg merker jeg blir bedre og bedre på å finne balansen mellom "dette kan jeg få til, til slutt..." og snakke med kollegaer for å låse opp.

«En trend jeg håper dør er kryssplattform-applikasjoner som bruker web teknologi.»

Hvilke trender tror du på framover? 🔭

En trend jeg håper dør er kryssplattform-applikasjoner som bruker web-teknologi, eller for generalisert tek til å lage brukergrensesnittet. Det er stort sett veldig merkbart på ytelse og har dårlig kontinuitet visuelt.

Det jeg håper blir den nye generasjonen av den trenden, er apper hvor business- og backend-logikken i appen er skrevet i et felles språk. For eksempel Go, som vi gjør i Tailscale, eller Rust med uniff*** som Element/Matrix.org.

Så bruker man plattformens optimaliserte språk/rammeverk for å lage selve UI-en, SwiftUI på iOS og Kotlin på Android. Da kan man gjenbruke mye av koden, og samtidig ha god flyt i brukergrensesnittet.

Hva synes du er mest krevende ved å være utvikler? 😅

Det er jo mye opp og nedturer; mye frustrasjon, også mye dopamin når man først får det til.

I tidligere jobber har jeg funnet det veldig frustrerende når man må kjempe om endring eller budsjett fra store organisasjoner, som ikke nødvendigvis forstår nødvendigheten av gode IT systemer eller oppdatering av teknologi.

Hvor tror du utvikleryrket er på vei? 🤖

Jeg tror AI kommer til å komplimentere jobbene våre, brukes til å skrive bootstrap-kode, oversette mellom språk eller generere grensesnitt, men jeg tror ikke at vi kommer til å bli arbeidsledige med det første.

Jeg tror utviklere må lære seg å bruke verktøyene effektivt og at om man ikke henger med er slik man kan falle bakpå å bli irrelevant.

Over tid tror jeg mange mange flere vil kunne kode på et grunnleggende nivå, ettersom det blir så utrolig relevant i andre ingeniørdisipliner, dataroller og lignende.

Når det er sagt tror jeg interessen for å bygge ting fra bunnen av er noe som krever en egen interesse. Det blir nok flere av oss, men jeg tror ikke alle vil være utviklere.