- Jeg er himla glad i Emacs

Ukas Koder Carl Hedgren elsker Haskell, og vil aldri tilbake fra hjemmekontor

Carl Hedgren jobber som utvikler i Ava. 📸: Privat
Carl Hedgren jobber som utvikler i Ava. 📸: Privat Vis mer

Hvordan begynte du med koding? 👶

Det var en gang jeg satt med blått og gult og grått i Borland Turbo Pascal 7.0 og etter det så jeg programmerte en del i C da jeg var sånn 12 - 15.

Det var mange teksteventyr og massevis av "men hvordan fungerer dette egentlig?"-programmering.

Etter videregående var det mye MATLAB, mest simuleringskode for ymse fartøy. Etter oljenedgangen i 2014 gikk jeg over til å kjøre IT på heltid og har programmert mye JavaScript, både frontend og backend. Jeg husker når React var 0.12, og jeg har brukt den siden da og frem til "the one with the hooks".

I 2016 lærte jeg Haskell, og jeg har blitt frelst på rent funksjonell statisk typet programmering siden da.

Hva jobber du med akkurat nå? 🛠️

Jeg bygger Insider Threat Detection og Data Loss Prevention verktøy i Ava.

Det betyr mye Elm, men også mye DevOps-arbeid. Ellers går stacken i Go, Postgres, Elasticsearch og Kafka. Mesteparten av arbeidet skjer i et stort monorepo som bygges med Bazel. Vi har helt klart over middels bra infrastruktur. Teamet mitt er helt fantastisk! Jeg har aldri vært lykkeligere med en arbeidsplass. Det er mye som er på plass og veldig lite som mangler. Fremfor alt liker jeg den høye grad av eierskap. Det er en stor løsning med mange forskjellige deler og mange små domener, men tross alt er det vår løsning i felleskap.

«Jeg har bare hjemmekontor og vil helst aldri sette fot i et kontor igjen»

Hvordan ser en typisk arbeidsdag ut for deg? ☕

Opp klokka 08:30, kaffe og så er jeg på kontoret fra 09:00-ish, med egentid og planlegging til 0915 - 0930. Så tar jeg en 👋 i Slack og fortsetter etter planen )så godtj eg kan) til klokka 11, når vi har en daglig team sync.

Vårt team er ganske distribuert med halvparten i Norge, halvparten i London og en person i Tallinn. Code review, speccing og coding fortsetter til 14 - 15 da teamet tar en runde med Ricochet Robots på robo.lol.

Så har vi en sync med produktteamet to ganger i uken på slutten av dagen. Jeg har bare hjemmekontor og vil helst aldri sette fot i et kontor igjen. Det har aldri vært bedre å være på jobb enn i 2020.

Kontoret mitt hjemme er bedre enn noe kontor jeg noen gang har sittet på, med kanskje unntak av da teamet mitt hadde sitt eget kontor helt på toppen av Schibsted-bygningen med panoramautsikt over Oslo.

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

Jeg har ganske smale interesser, men det nærmeste er å bli kjent med hvordan man skriver plugins for ghcide: den helt suverent gode Haskell lsp-serveren.

Så vil jeg bli bedre på typenivåprogrammering. Jeg vil gjerne se på flutter, men den er lenger bak i listen.

«Emacs. Jeg er himla glad i den editoren, ass.»

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

Emacs. Jeg er himla glad i den editoren, ass.

På jobben bruker jeg GoLand. JetBrains lager gode produkter generelt, men i dag når nesten alt går i lsp så fungerer emacs veldig bra.

Magit! er kanskje den beste måten å bruke Git på. Så er det Nix. Se for deg et byggverktøy som gir deg garantien "hvis den ikke bygger på min maskin så bygger den heller ikke noe annet sted". Jeg har brukt Nix siden 2017 og det har utvilsomt vært den aller beste systemopplevelsen jeg har hatt. IT som bare funker.

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

Enten YAML eller JavaScript.

Når arbeidsdagen kan oppsummeres med slike commits: "CI", "CI, again", "Pls CI", "travis, go home you are drunk pls pls pls pls just work now?", så føles det jo ikke som om det har blitt skapt mye verdi.

Javascript har nettopp samme problemet, bare at feedback-syklusen er kjappere.

Arbeidsplassen til Carl. 📸: Privat
Arbeidsplassen til Carl. 📸: Privat Vis mer
Carl sin boksamling. 📸: Privat
Carl sin boksamling. 📸: Privat Vis mer

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

Funksjoner og typer. Helt ærlig, å snakke med utviklere kan iblant oppleves som å vandre inn i et kjøkken der personalet ikke helt har koll på sjargongen.

Mirepoix? Julienne? Chinois? Functor? Det finnes et sett med tidløse grensesnitt. Vær så snill og bruk dem.

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

Jeg har akkurat kjøpt et gammel hus så mine hobbyer er i rekkefølge: kjøpe materialer, kjøpe verktøy, pusse opp ved hjelp av 1 og 2.

Så blir det litt koding også. Mitt neste prosjekt er litt lsp-tooling.