– Avhengig av lengre uavbrutte tidsbolker for å være ordentlig produktiv

Ukas koder Christer Vasseng i Highsoft jobber tre dager på hjemmekontor – og mener det er helt avgjørende.

Christer Vasseng er Chief R&D Officer i Highsoft og jobber 50/50 med koding og ledelse. 📸: Privat
Christer Vasseng er Chief R&D Officer i Highsoft og jobber 50/50 med koding og ledelse. 📸: Privat Vis mer

Hvorfor ble du utvikler? 👶

Jeg var ett av de barna som skrudde fra hverandre alt jeg kunne finne et skruehull i for å finne ut hvordan ting virket.

Det gikk også mye tid på spilling, så det var bare et spørsmål om tid før jeg ville “skru fra hverandre” spill også. Omsider fikk jeg forklaringen på hvordan spill virket – de var programmert. Noe tilfeldig og kanskje veldig misinformert fikk jeg tak på en Java-referansebok og begynte å lese.

Dette var åpenbart ikke noen suksess. Forsøk nummer to et par år senere med Pascal gikk vesentlig bedre, og det ble fort klart at dette var noe jeg ville drive med, i utgangspunktet som et kreativt utløp. Koding ble fort primærhobbyen gjennom tenårene.

«Koding ble fort primærhobbyen gjennom tenårene.»

Når tiden etter hvert kom for å velge studier så jeg at det skulle startes opp et nytt program med fokus på spillutvikling på Høyskolen i Hedmark, og tenkte at det hørtes egentlig kjekkere ut enn å bli elektroingeniør eller fysiker – som var den originale planen.

Etter utdanning jobbet jeg med spill i en periode før jeg pivoterte til webteknologi ved en tilfeldighet. Siden da har jeg jobbet på alt fra helsesystemer til tradingplattformer. Etterhvert fant jeg et hjem i Indre Sogn hos Highsoft, og har vært der i flere ulike roller de siste 8-9 årene.

Hva jobber du med? 💪

Jobben min på et mer overordnet nivå er å lede organisasjonens innovasjonsarbeid samt å drive utforskende utvikling.

I praksis og mer konkret skrur jeg sammen MVPer og PoCer, og utforsker ting innen forretningsutvikling og strategi på et mer generelt nivå. Teamet jeg jobber med er en liten trio, med meg på den tekniske fronten, en forretningsutvikler, og en “potet” som jobber med innovasjonsaktiviteter, prosjektstyring, og forretningsutvikling.

Det er som regel mange baller i luften på tvers av fagfelt, og følgelig en variert arbeidshverdag som ikke bare handler om koding.

Fellesnevneren er at jeg og teamet jobber med ting som gjerne er litt utenfor det som er på dagsorden ellers i organisasjonen. Målet er først og fremst å utforske, teste og lære for å bygge opp intern kunnskap, og forhåpentligvis en gang i blant komme opp med noe som kan gi konkret verdi til produktene våre, eller som kan bli til nye produkter.

Av større prosjekt akkurat nå jobber jeg hovedsakelig med et dataanalyseverktøy som lar brukere bygge og publisere dashboards uten å ha noe særlig med forkunnskaper verken innenfor analyse eller visualisering.

Generativ AI er sentralt i produktet, da som hovedgrensesnittet brukerne forholder seg til. Det er jo mye “hype” rundt generativ AI, som tiden vil vise om er berettiget, men det fungerer ganske så bra til å transformere semi-vage brukerintensjoner til strukturert data som kan konsumeres i god, gammeldags kode. På den fronten bruker vi OpenAI samt egne Llama-baserte mini-modeller tunet til å utføre spesifikke oppgaver.

Ellers er det en relativt standard TypeScript-basert Node/Express/PostgreSQL backend, og vanilje TypeScript uten noen rammeverk på frontend. For visualisering bruker vi Highcharts, som er hovedproduktet vårt.

Hvordan ser uka ut for deg? 📆

Jeg har to faste fysiske kontordager i uka, og forsøker å skvise inn alt av møter da.

De resterende tre dagene er i “huletid” på hjemmekontor hvor jeg forsøker å ha minst mulig møteaktivitet, og mest mulig fokustid – med varierende hell.

Med dette oppsettet er det kanskje ikke så rart Christer Vasseng trives med å bruke tre dager i uka på hjemmekontor. 📸: Privat
Med dette oppsettet er det kanskje ikke så rart Christer Vasseng trives med å bruke tre dager i uka på hjemmekontor. 📸: Privat Vis mer

Som mange andre kodere er jeg helt avhengig av lengre uavbrutte tidsbolker for å være ordentlig produktiv, så hjemmekontor med kontrollerbare forstyrrelser og asynkron kommunikasjon fungerer best for meg.

  • Mandager starter med en 15 minutters teamsync, hvor vi kjapt går gjennom ukas større aktiviteter og eventuelle blokkere, diskusjonspunkt eller “rop om hjelp” (som blir parkert til en lengre teamsync på tirsdager).
  • På tirsdager og onsdager er det fysisk kontordag, og en del faste møter som hovedsakelig dreier seg om den andre siden av jobben min utover teamsync – typisk administrasjon, ledelse, strategiarbeid og lignende.

Å legge til rette for spontan “lek” er en viktig del av hverdagen og rollen min. Samtaler med kollegaer, en slack-melding, nyhetsartikkel, eller andre ting blir ofte til et stupebrett ned i et kaninhull av “hva hvis…” eller “lurer på om…”. Noen ganger blir det bomtur, mens andre ganger fører det til et konkret output eller lengre initiativ/prosjekt, som da følger “vanlige” utviklingsløp.

De mest givende sidesporene er forholdsvis enkle og kjappe ting som løser reelle og spesifikke problemer. Det er mye tid og frustrasjon som kan spares ved å kaste sammen et script eller to for noen som ikke har kompetanse til å gjøre det selv, og som kanskje ikke har tenkt på at noe kan automatiseres eller forenkles med litt kodemagi.

Det er sjeldent to like uker, selv om jeg også tilbringer en del tid i prosjekter med mer håndfaste (og mindre spontane) oppgaver. Gjengangeren er hyppig kontekstskifting mellom både forskjellige kodeoppgaver, og mellom fagfelt.

Hva er det neste du har lyst til å lære deg eller bli bedre på? 🧠

Jeg ligger litt bak når det kommer til orkestrering av containere, spesifikt Kubernetes, så der har jeg et gap å fylle.

Ellers har jeg også et mål om å bli bedre til å håndtere kortstokker. Jeg er en ivrig brettspiller hvor det ofte er kort involvert, og det begynner bli regelrett flaut å ikke kunne ta en skikkelig overhand shuffle en gang..

Hva er den mest utfordrende situasjonen du har stått i? 👀

Det er nok ikke den mest utfordrende, men definitivt den første krigshistorien som ramla inn i hodet:

For en del år tilbake var jeg ansvarlig for å reimplementere en legacy-applikasjon som i korte trekk var en relativt enkel server, men med betydelig trafikk og CPU/minne-intensive oppgaver. Den var opprinnelig implementert i et språk og en stack som høyst få av teamet kunne jobbe i (og som var deprecated), men kanskje viktigst av alt: den krasjet rett som det var, og det var utfordrende å få den opp igjen når det skjedde.

Halvveis inn i det planlagte løpet hadde jeg noe som virket noenlunde, men det var ikke testet skikkelig, og hvertfall ikke med trafikkmønstrene den måtte håndtere i produksjon.

«På en fredags kveld fikk jeg en telefon om at den eksisterende serveren igjen var nede, men at denne gangen klarte ingen å få den opp igjen.»

På en fredags kveld fikk jeg en telefon om at den eksisterende serveren igjen var nede, men at denne gangen klarte ingen å få den opp igjen.

Konsensus var at det var bedre å få deployet noe som kanskje fungerte, enn å ikke ha noe i det hele tatt. Jeg kom meg inn til kontoret og deployet det jeg hadde. Det begynte bra – 98% av requests feilet, og serveren levde i kanskje tre-fire minutter før den kræsja. Det var tidlig lørdags morgen når den endelig var stabil nok til at jeg kunne puste med magen igjen.

Det var “to stress i en smekk” – det var vanskelig å holde hodet kaldt når jeg visste at relativt essensiell funksjonalitet var fullstendig ødelagt for kundene våre, men det som fikk svetten til å virkelig renne var at det gikk flere timer før jeg i det hele tatt visste om jeg klarte fikse det innen en rimelig tid.

Hva ser du på som bransjens største utfordring akkurat nå? 🔭

Bransjen har vært i en lengre periode med masseansettelser som spesielt de siste par årene har snudd til det motsatte. Arbeidsmarkedet blir stadig tøffere.

Dersom denne trenden holder, vil det nok fortsette å gå ekstra hardt ut over nyutdannede og juniorer, som sannsynligvis i enda større grad vil bli nedprioritert i ansettelsesprosesser bak de med mer erfaring. Dette spesielt når de med erfaring på seniornivå nå er en økende gruppe arbeidssøkere.

Mer langsiktig kan vi risikere å havne i en situasjon hvor stadig færre velger programmering som yrke som følge av færre arbeidsmuligheter, som igjen vil kunne føre til et massivt hull i arbeidsstyrken etterhvert som de etablerte blir eldre.

Vi som bransje er helt avhengig av jevn tilførsel av unge lovende med friske, nye ideer som kan bære faklene videre.

Hva er ditt beste tips til andre utviklere? 🤖

Å komfortabelt leve i uvitenhet er en “dyd”. Vi er i et bredt fagfelt hvor ingen er i stand til å være ekspert på alt. Hvis vi er heldige er vi (eller blir vi) eksperter på en eller to ting, gjennomsnittlig på en håndfull eller to andre, og i beste fall har vi hvertfall kjennskap til noen flere.

«Å si “dette skjønner jeg ikke”, eller “dette vet jeg ikke” er ikke et nederlag.»

Og det er helt greit! Å si “dette skjønner jeg ikke”, eller “dette vet jeg ikke” er ikke et nederlag, men en mulighet til å lære noe nytt og å utvikle seg faglig.

En annen side av dette er at det finnes ting man ikke trenger å vite, og ting man ikke trenger å vite akkurat nå. Hvis man for eksempel må lære noe nytt for å dra en oppgave i land, holder det å vite akkurat det man trenger for å komme ett steg videre. Detaljene og den dype forståelsen kan komme senere – det er mye lettere å lære nye ting når man har litt kontekst, og det er ofte mer håndterbart å få denne gradvis istedenfor å prøve forstå alt på en gang.

Det er også mye mer motiverende å ha hyppig fremgang enn å sitte og lese dokumentasjon/tutorials i timevis – selv om man kanskje ikke forstår fullt og helt hva man har gjort, eller hvorfor noe virker (så lenge man er komfortabelt og bevist uvitende).