Hvordan ble du utvikler? 📚
Det er egentlig litt tilfeldig at jeg ble utvikler.
Jeg gikk byggfag på videregående, og visste ikke helt hva jeg skulle gjøre etter folkehøgskole og siviltjenesten.
Siden jeg var glad i gaming, hadde kodet en haug med nettsider, og vært på The Gathering et par år hvor jeg hadde fått prøvd meg litt på å “kode” demoer (kan skryte på meg en ellevteplass i 2006), så endte jeg opp med å søke på informatikk på Universitet i Oslo.
Der kom jeg inn på andrevalget mitt på Institutt for Informatikk, på bacheloren IT: Språk, logikk, og filosofi. Vil uansett si at kodeinteressen for alvor ikke startet før under studiene, og at alle hobbyprosjektene jeg hadde mens jeg studerte har gjort meg til den koderen jeg er i dag.
Hva jobber du med for tida? 💪
Jeg jobber i plattformteamet NAIS (som står for NAVs Application Infrastructure Service) hos NAV, og jobber til daglig med å utvikle den Kubernetes-baserte applikasjonsplattformen til NAV (les mer på nais.io).
De siste månedene har det hovedsakelig vært fokus på å bygge opp en ny dataplattform for analyser og deling av data internt (og eksternt litt lengre frem i tid).
NAIS koder hovedsakelig i Go, så backend blitt skrevet i det, mens frontend har blitt skrevet i React og Nextjs. Personlig orker jeg ikke å jobbe med så tunge frontends, så jeg har i all hovedsak bidratt til backenden.
I løpet av de fire årene jeg har jobbet i NAIS føler jeg at jeg har klart å lage en liten vaktmesterrolle, så jeg bruker også ganske mye tid på support og flikke på gammel kode eller oppsett. Trives egentlig ganske godt i denne rollen, selv om jeg noen ganger glemmer å bli med på alt det nye spennende vi også driver med.
NAV gjør DevSecOps med 'security champions': - Det første forsøket feilet
Hvordan ser en typisk arbeidsdag ut for deg? ☕
Etter at hjemmekontor ble påbudt har teamet nesten ikke klart å løsrive seg fra friheten ved å kunne sitte hjemme. Selv liker jeg å være litt begge steder, men kanskje mest fordi vi er to stykker på hjemmekontoret.
For å holde kontakten innad i teamet har vi Zoom kjørende hele dagen, med 12 forskjellige breakout-rom. Ti rom for å samarbeide hvor man kan hoppe inn for å stille spørsmål eller bare bli med, og to ikke-forstyrr-rom når man trenger å fokusere ekstra. Dette oppsettet har vist seg å fungere overraskende bra, og gjør at vi fortsatt klarer å holde samholdet vi hadde når vi var fysisk på kontoret hver dag.
«I starten gikk det mye i topp ti-lister for byer, elver og fjell, men i det siste har det vært dyrefamilier.»
Jeg er også en av de første “på jobb”, og siden Zoom fortsatt ikke har klart å lage et API for å lage breakout-rom, må dette gjøres manuelt av noen, og da ofte meg. For å gjøre denne jobben litt morsommere prøver jeg å finne på tema for romnavn hver dag. I starten gikk det mye i topp ti-lister for byer, elver og fjell, men i det siste har det vært dyrefamilier.
Vi er litt over 25 utviklere på teamet, så vi har delt teamet opp i plattform-interessegrupper (PIG) (tungt inspirert av Kubernetes-teamet), hvor hver gruppe har ansvar for forskjellige områder av plattformen (PIG Deployment, PIG Sikkerhet, PIG KubeOps, og så videre).
For at alle enkelt skal kunne følge med på hva som skjer i teamet bruker vi en Trello-tavle og har et felles ukentlig møte på mandag. Der snakker vi om hva de forskjellige oppgavene vi holder på med, og hva vi burde fokusere på videre. I løpet av uken, når det er behov, møtes man i de forskjellige PIG-ene for å diskutere hva man skal jobbe videre med, og få teamet til å fokusere på. Dette blir igjen viderebrakt til mandagsmøtet.
Hva er ditt beste tips til et verktøy andre burde begynne å bruke? 🔨
Har lyst til å si at folk bør lære seg Emacs, et verktøy for å gjøre alt! Spesielt Magit, som er Emacs sin Git-mode, er veldig kraftig og digg å jobbe med.
Ellers bruker jeg Hazeover for å skjule bakgrunnsvinduer, så jeg ikke blir forstyrret.
Hvis du jobber mye med Kubernetes så går jeg ut i fra at du bruker kubectx og kubens, men den mindre kjente kubie kan også være nyttig. Den lar deg ha forskjellige context og namespace i forskjellige terminaler. Er hendig når man hopper mye frem og tilbake.
Ber det offentlige åpne kildekoden: - NAV sørger for at det ikke er helsvart
Hva har du lyst til å lære mer om framover? 🦉
Prøver stadig å bli flinkere til å lese dokumentasjonen på rammeverket eller biblioteket jeg bruker, i stedet for å søke på nett etter løsninger. Glemmer meg ofte, da det ofte er kjappere å søke etter problemet mitt enn å finne frem i mylderet av dokumentasjon.
Hva er det verste du kan bli spurt om på jobben? 🔥
Det verste er nok å bli spurt om å holde foredrag om Docker og Kubernetes, spesielt sistnevnte når brukerne ikke en gang kan Docker. Ellers holder jeg meg langt unna React og disse fancy single-page app-rammeverkene, blir for tungt og meningsløst for meg. Trenger ikke “1.000 linjer” med Javascript for å sortere en HTML-tabell.
NAV åpner en av Norges eldste kodebaser
Når ble du sist flau, nervøs eller stressa for noe på jobb? 😅
Er ikke så ofte jeg blir flau på jobb, da jeg synes vi har en veldig god kultur på at det er lov å gjøre feil. Fokuset blir ofte heller på hvordan vi kan unngå at lignende skjer igjen. Synes også vi har vært flinke med å bygge en solid test-suit, som gjør at vi kan være trygge på at endringer vi gjør på plattformen ikke knekker noe.
Hva synes du norske utviklere bør bli flinkere på? 🙏
Jeg synes utviklere og folk generelt bør bli flinkere til No Hello, Don’t ask to ask, just ask, og spesielt The XY Problem.
Sistnevnte kan skape en del frustrasjon når det viser seg at tiden du har brukt til å hjelpe noen med å få Y til å fungere, heller burde vært brukt på hjelpe de å løse X.
Tror dette er nyttig selv nå som vi kommer tilbake på kontoret, for det er overraskende mange samtaler som starter med “Unnskyld, har du to minutter?”. Når du først har tatt kontakt med noen så har du allerede forstyrret de nok, så da er det bedre å gå rett på sak, så man enklere kan se om man skal svare nå eller om det kan vente litt.