- Vi bør bli flinkere til å se på teknologier som ikke er mainstream

- Et eksempel fra min egen karrière er Erlang, forteller Ukas Koder Erlend Hamberg.

Erlend Hamberg forteller at han ble interessert i koding allerede i 12-årsalderen. 📸: Privat
Erlend Hamberg forteller at han ble interessert i koding allerede i 12-årsalderen. 📸: Privat Vis mer

Hvordan begynte du med koding? 👶

Jeg husker ikke hvorfor, men jeg hadde veldig lyst til å lære programmering allerede fra jeg var rundt 12–13 år.

Jeg forstod riktignok aldri hvordan man skulle komme i gang, og hadde ingen jeg kunne spørre.

Å lage nettsider var mer tilgjengelig, og etter å funnet et «Lær HTML»-hefte på den lokale Rimi-butikken tror jeg at jeg leverte omtrent hver eneste skoleoppgave på ungdomsskolen som en nettside.

Jeg var også ekstremt interessert i Pokémon etter å ha lastet ned spillene til Gameboy-emulator før de kom til Norge, og lagde Ash's Pokémon Side som fikk enormt med trafikk da Pokémon-spillene og -filmen etter hvert kom til Norge. Da var det fullt kjør med journalister som ringte for å skrive om dette nye fenomenet - men innen dét skjedde hadde jeg akkurat blitt gammel nok til at det hele var ganske flaut, så jeg sa nei til alle intervjuforespørsler.

«Da var det fullt kjør med journalister som ringte for å skrive om dette nye fenomenet.»

Noen år senere, da jeg hadde fått meg en egen PC og installert Linux (hvor det faktisk var lett å installere en kompilator!), kjøpte jeg «Teach Yourself C++ in 21 Days» og brukte omtrent 21 uker på å lære meg akkurat nok C++ til å tegne ting med OpenGL.

Jeg hang da også mye på IRC og hadde endelig andre jeg kunne diskutere programmering med og spørre om ting. Da jeg etter hvert begynte på datateknikkstudiet på NTNU trodde jeg at jeg «kunne programmering», og jeg måtte snuble ganske mange ganger før det gikk opp for meg at det var utrolig mye mer å lære. Særlig programmeringsspråkfaget, som introduserte andre paradigmer enn prosedyre- og objektorientert programmering, var en øyeåpner.

Hva jobber du med akkurat nå? 🛠️

Jeg jobber for konsulentselskapet Blank og sitter for tiden hos reMarkable hvor jeg jobber med sky-løsningene som vi kjører på Google Cloud Platform, og er skrevet i Go.

Det skjer ekstremt mye spennende på reMarkable for tiden og den suksessfulle lanseringen av reMarkable 2, med veldig gode anmeldelser, var veldig motiverende.

Hjemmekontoret til Hamberg. 📸: Privat
Hjemmekontoret til Hamberg. 📸: Privat Vis mer

Hvordan ser en typisk arbeidsdag ut for deg? ☕

Jeg jobber stort sett hjemmefra, men teamet mitt møtes fysisk én uke om gangen omtrent hver måned.

Arbeidsdagen min begynner med at jeg går eller sykler en liten tur.

Gåturen til jobb var noe jeg ikke visste var viktig før den plutselig var borte, men etter noen uker på hjemmekontor innså jeg hvor mye jeg setter pris på å starte dagen med å få litt luft, og ikke minst hvor lite våken jeg faktisk er hvis jeg ruller ut av senga, gjennom badet og rett til hjemmekontoret.

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

En interesse jeg har hatt helt siden studiet – og som fikk en skikkelig boost da jeg etterpå hadde internship i selskapet Galois – er typesystemer, og da særlig korrekthet- og sikkerhetsaspektene ved disse.

Jeg er derfor glad for å se at typesystemer med avhengige, førsteklasses-typer (at du kan bruke typer som argumenter og returverdier) begynner å dukke opp også utenfor akademia.

Dette skjer både ved at eksisterende språk som Scala og Haskell får ny funksjonalitet, men også gjennom språk som Idris, som er bygget fra grunnen av med førsteklasses typer. Dette er dog fortsatt ganske umoden teknologi, så det forblir nok en nisje i overskuelig fremtid. Jeg har skrevet litt om dette på Blanks blogg.

Av andre ting jeg har lyst å lære mer om kan jeg nevne Nix, som kort fortalt gir 100 prosent reproduserbare miljøer for alt fra prosjekter til hele systemer, Pijul som er en reimplementasjon av teorien bak versjonskontrollsystemet darcs som jobber med patcher i stedet for snapshots slik git gjør, og Rust som er et eksempel på at man kan ta gode ideer fra akademia og lage et nytt språk som har klare, praktiske fordeler.

«Den beste Vim-implementasjonen er, absurd nok, Emacs evil-mode.»

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

Nevronene i hjernen min har – på godt og vondt – formet seg etter Vim, og den beste Vim-implementasjonen er, absurd nok, Emacs' evil-mode, så jeg bruker Doom Emacs til all programmering.

Nå som «alle» språk har en language-server har det blitt veldig lett å bruke én editor til alt.

Ellers så er jeg også en av dem som bruker PostgreSQL til «alt». Den har et bunnsolid fundament, men også fantastisk JSON-støtte – inkludert constraints på felter i dokumenter, noe som er fantastisk både under utvikling når skjemaer ofte endres og man kanskje ikke vil ha migrering for «alt», men også for å kunne velge akkurat hvor mye man ønsker å normalisere data i et produksjonssystem.

Med den etter hvert veldig modne TimescaleDB-utvidelsen kan man også bruke PostgreSQL til eventer og tidsserier, så nå skal det mye til for at jeg velger noe annet.

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

Jeg har etter hvert blitt flinkere på «ops-ting», men jeg merker ganske fort at jeg blir lei hvis det blir veldig mye fokus på ting som å sette opp og konfigurere infrastruktur, finne ut hvorfor to systemer plutselig ikke snakker sammen og innse at Terraform-provideren har en bug fra oktober 2018 som stjal en dag av livet ditt.

Slike ting er ekstremt tilfredsstillende å ha på plass, men veien dit er ikke alltid så spennende.

«Vi bør bli flinkere til å se på teknologier som er litt utenfor "mainstream".»

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

Jeg vet om mange ting jeg selv bør bli flinkere på, men folk jobber med så mye forskjellig, med helt ulike rammer og mål, at jeg synes det blir vanskelig å peke på noe generelt.

Hvis jeg måtte si én ting blir det at vi kanskje bør bli flinkere til å se på teknologier som er litt utenfor «mainstream».

Google og Facebook har enorme markedsføringsbudsjetter, og det er trygt å bruke ting der alle svar allerede ligger på Stack Overflow, men av og til er faktisk et spesialverktøy det riktige valget.

Et eksempel på dette fra min egen karrière er Erlang, som har akkumulert så mange gode ideer gjennom sine 30 år i telekom at det nesten føles som juks å bruke det i systemer som må ha høy feiltoleranse. Man blir rett og slett ledet til å skrive solide systemer gjennom funksjonaliteten som finnes, og ikke minst: Det som ikke finnes.

Med prosjekter som Elixir og Gleam kan man også bruke språk med moderne syntaks som er bygget på Erlangs teknologi.

Kaffeplassen til Hamberg huser en aeropress-kaffemaskin. 📸: Privat
Kaffeplassen til Hamberg huser en aeropress-kaffemaskin. 📸: Privat Vis mer

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

Jeg er glad i å reise og har ganske ekstrem bortelengsel for tiden.

Ellers er jeg glad i å løpe. Jeg oppdager fortsatt nye områder i Oslo på løpeturer, selv etter å ha bodd her i seks år.

Jeg liker også å kode på fritiden, og har blant annet laget en halvpopulær app for iOS som er en valutakalkulator som virker uten at man må ha data for å finne ut hvilken valuta som gjelder der man er.

Man kan trygt si at markedet for en app som er fokusert på reise har tørket litt inn, men det betyr jo bare at jeg har god tid til å skrive den om i SwiftUI!