Robin Heggelund Hansen

IT-konsulent i Kodemaker


Hvem er du, og hva holder du på med?

Mitt navn er Robin og jeg er en fyr som liker å finne ut av ting. Jeg er den typen som bruker hvert eneste ledige øyeblikk over to uker på å google etter hvilken luftavtørker vi skal kjøpe til den fuktige kjelleren, hvor det tar fire dager å tørke klær. Jeg er han som ender opp med å se alle James Hoffman videoene på youtube, kjøper håndkvern og v60 og blir snobbete på kaffe fordi jeg en gang kjøpte en Aeropress til skogtur og lurte på hvordan den skulle brukes. Jeg er dessverre også han som driver kona til vanvidd fordi jeg i et halvt år ikke klarte å bestemme meg for hvordan ventilasjonsproblemene i huset kunne løses og trengte noen å idémyldre med hver… eneste… dag.

Som jeg sa: jeg liker å finne ut av ting.

Det er en egenskap som kommer godt med i mitt virke som IT-konsulent i Kodemaker, hvor jeg leies ut til selskaper med interessante tekniske utfordringer. Når jeg ikke får betalt for å jobbe med programvare, så bruker jeg noe av fritiden min på å lage et rent funksjonelt programmeringsspråk: Gren.

Når jeg ikke gjør det så prøver jeg å få min eldste sønn (som er 4 og tror han er sjefen av huset) til å interessere seg for å overnatte i hengekøye, bli kjent med min nyfødte sønn (som ikke er stor nok til å skjønne hvem som er sjefen i huset) og spille brettspill med min kone (som lar meg tro at det er jeg som er sjefen i huset, spesielt etter at hun har vunnet rått).

Hva slags hardware og dingser bruker du?

Tastatur

Det jeg får absolutt mest oppmerksomhet for er tastaturet mitt: Keyboardio Atreus. Etter jeg fylte 30 begynte jeg å føle at jeg ble sliten av å jobbe med et tastatur hele dagen, så jeg bestemte meg for å kjøpe et ergonomisk tastatur. Utfordringen var at jeg også likte å programmere ute på kafeer, og ergonomiske tastatur har en tendens til å ta mye plass på bordet og i sekken. Når jeg endelig kom over Atreus så ble det kjøpt på flekken. Mine kollegaer har kanskje angret det kjøpet grunnet de mekaniske tastene, men ikke jeg!

Jeg har som regel også med meg en Remarkable 2. Jeg bruker den for bullet-journaling, som av en eller annen grunn fungerer mye bedre for meg enn digitale apper for journalføring eller todo-lister. Kanskje det er fordi jeg bruker mer energi på å skrive noe med pen enn tastatur, og at det derfor fester seg litt bedre?

Jeg startet opprinnelig med bullet-journaling i en moleskin notatbok, men det var litt herk å kopiere ting over til en ny notatbok når jeg gikk tom for sider, og det er fint å kunne lese notatene på mobilen de få gangene hvor jeg ikke har notatboka ved siden av meg.

Og hva slags software?

Koding

Når det gjelder software så har jeg noen generelle prinsipper:

  1. Sett deg ordentlig inn i verktøyene du bruker, om det så er programmeringsspråk, editor, rammeverk, versjonskontroll osv.. Som oftest betyr dette å kjøpe inn en bok eller se et online kurs eller noe i den dur.
  2. Bruk så lite software som du kan slippe unna med. Det er bedre å være ekspert på få ting enn alternativet.
  3. Bruk den faktiske programvaren, ikke en abstraksjon på toppen av den. Det er lettere å lære noe når du ikke også må lære hva som abstraheres over og hvordan.

Så hva betyr dette i praksis? Det betyr at jeg ikke er så veldig glad i IDEer. Faktisk styrer jeg unna når jeg kan.

IDEer har en rekke abstraksjoner som er ment å gjøre livet enklere for deg, men denne egenskapen gjør det også vanskelig å bli god på de underliggende verktøyene som IDEet abstraherer vekk. For eksempel: hvis du bruker IntelliJ så har dette en del magi rundt det å starte opp et program. Alt du trenger å gjøre er å trykke på play-ikonet og så er du i gang. Sannsynligvis er maven involvert på en eller annen måte (hvis det er et maven prosjekt), men nøyaktig hvordan eksponeres du ikke for, og da lærer du det heller ikke.

Så jeg bruker maven direkte. Samme gjelder Git. Har heller ikke noe imot å bruke psql for å kjøre spørringer mot databasen. Siden disse kjøres i en terminal, så har jeg også lært meg å bruke terminalen godt.

Her har jeg byttet ut zsh med fish shell, som jeg synes er flinkere på auto-complete og å hente opp tidligere kjørte kommandoer. Bruker også tmux for å bytte mellom terminal-oppsett avhengig av om jeg er på jobb eller holder på med Gren.

Når jeg uansett er så mye i terminalen, så kan jeg også bruke en terminal-basert tekst editor. Lenge var dette Vim, men jeg har senere migrert til Helix. Livet er for kort til å skrive en config-fil som sakte men sikkert konkurrerer med Knausgaards samlede verker i størrelse og omfang.

Jeg føler egentlig at jeg har et like godt oppsett som alle andre utviklere, men med fordelen av at jeg ikke trenger å røre musa og at jeg kan spinne opp hele utviklingsmiljøet mitt på en billig ec2 instans eller en raspberry pi. Ja, også ser det jo veldig old-school ut, som passer godt på de dagene jeg har glemt å trimme skjegget.

Hva er drømmeoppsettet ditt?

Føler egentlig at jeg har et veldig godt oppsett akkurat nå, men en eller annen gang skal jeg teste en lengre periode med et linux system hvor jeg kjører I3 for plassering av vinduer. Gjerne på en billig linux-boks jeg har mekka sjæl. Jeg hadde et sånt system i en av mine første programmeringsjobber, og jeg har veldig gode minner fra den gangen.

Det eneste jeg bruker er jo nettleseren og en drøss med terminal-vinduer, så det må jo være en god match. Eller? Kanskje noe jeg burde finne ut av.