Magnus Rundberget

Systemutvikler

Magnus er en ringrev som er like engasjert i faget nå som da han skrev sin første Othello-implementasjon på høgskolen, om ikke mer. Han er analytisk av natur og nøler ikke med å brette opp ermene for å levere det som trengs, raskt og med høy kvalitet.

Med sin bredde og erfaring kan Magnus ta mange forskjellige roller i et prosjekt. Han trives best i team som leverer ofte og forbedrer seg hele tiden. Læring er viktig for Magnus, og han er like opptatt av å dele kunnskap som av å utvikle seg selv.

I drømmeprosjektet får Magnus være med på hele reisen, fra problem og idé til fungerende kode. I eksisterende løsninger ser han alltid etter hva som kan gjøres bedre. Han bidrar ofte med å sette opp eller forbedre CI/CD-prosesser, redusere teknisk gjeld, gi bedre brukeropplevelser og automatisere prosesser.

Magnus er svært opptatt av funksjonell programmering, både med og uten sterk statisk typing. Språk som ClojureScript og Elm, og ideene bak dem, fikk ham til å kaste seg over frontendutvikling med stor entusiasme.

I perioder bidrar Magnus mye til åpen kildekode. Han gjør det for å lære, gi noe tilbake og dele kunnskap.

Magnus bruker agentisk utvikling med Claude Code daglig, også til større oppgaver som refaktoreringer på tvers av kodebasen. I Lovdata-prosjektet har han også jobbet med integrasjonen mot KI-søket i nye Lovdata Pro.

Teknologi

Favoritter for tiden:
Bruker på jobben:
Elm, Kotlin, Claude Code og Datadog
Vil lære mer:

Magnus' anbefalinger

Inventing on principle

Fantastisk foredrag av Bret Victor. Programmering er et kreativt yrke, og det er nok mye lettere å være kreativ når man fritt kan se, observere og endre et kjørende program. Hadde det ikke vært digg å kunne spole tilbake det du nettopp gjorde i appen din, endre noen parametere og kjøre på nytt? Kanskje til og med sammenligne resultatene. Foredraget var bl.a. med på å inspirere verktøy som Light Table og programmeringsspråket Elm.

Se foredraget
Let's be Mainstream

Evan Czaplicki (skaperen av Elm) oppfordrer hardcore funksjonelle programmerere (med hang til typer) til å snakke med andre på et språk folk forstår. Etter å ha sett denne fikk jeg endelig lyst til å kikke på et typet funksjonelt språk.

Se foredraget
Test-driven JavaScript Development

Dette foredraget av Christian Johansen var en av grunnene til at jeg i stor grad kastet jQuery-scripting på båten. En inspirerende og lærerik testdrevet sesjon hvor man lager en autocomplete-komponent.

Se foredraget

Magnus snakker gjerne om

Fluefiske

Du går langs en deilig elv omringet av flott norsk natur. I sidesynet ser du plutselig en liten uregelmessighet i vannoverflaten. Du stopper for å kikke. Etter en liten stund ser du en ørret som forsiktig stiger til overflaten og slurper i seg en liten døgnflue. Pulsen stiger, du skifter flue og navigerer deg forsiktig i posisjon for å kaste …

Bloggposter

Constraint Solvers og utfordrende planlegging
Kotlin og Constraint programming

For kombinatorisk komplekse planleggingsproblemer kan constraint solvers være et svært nyttig verktøy å ha i verktøykassen. Jeg har selv bare hatt bruk for det noen få ganger, men da har det vært utrolig snasent i bruk. Hva i huleste er constraint solvers og hvordan kan man ta de i bruk?

Moro med trær og glidlåser

Av og til støter du borti programmeringsoppgaver der det gir mening å bruke tre-strukturer for å komme opp med en elegant løsning. I denne bloggposten ser vi på hvordan man kan bruke en tre-struktur for å implementere et hierarkisk søkefilter med noen fiffige krav. For å krydre det litt ekstra, skal vi gjøre det med et funksjonelt språk (Elm) hvor mutering er umulig!

Snasen rutehåndtering i Kotlin med Arrow.kt

Kan du få rutehåndteringskoden din til å ha robust feilhåndtering og være lettlest/lett å vedlikeholde? Kanskje?! Vi tar en titt på hvordan man kan bruke Arrow.kt som et hjelpeverktøy når man implementerer rutehåndtering i Kotlin.

Se flere bloggposter

Foredrag

Screencasts

Sideprosjekter

Light Table

Etter å ha vært en ivrig bruker av Light Table i 1,5 år bestemte jeg meg sommeren 2015 for å bli med i open source-teamet til Light Table og forsøke å gjenopplive prosjektet. Det var nok å ta tak i, for å si det sånn!

Bidrag til fri programvare

  • TypeScript WebSocket Machine - Klientbibliotek for websocket-kommunikasjon i nettleser. Bygget rundt en tilstandsmaskin med støtte for automatisk gjenoppkobling og pulskontroll.
  • Elm Bootstrap - Elm-bibliotek for å lage responsive webapplikasjoner med Twitter Bootstrap 4.
  • Elm Light Table Plugin - Light Table-plugin for Elm. Syntax highlighting, REPL/inline eval, integrasjon med elm reactor m.m.
  • rewrite-cljs - ClojureScript-port av rewrite-clj. Bibliotek for traversering og omskriving av Clojure-, ClojureScript- og EDN-kode.
  • Clj-Light-Refactor - Plugin som gir refaktoreringsstøtte for Clojure i Light Table.
  • AsciiLight - Light Table-plugin for live forhåndsvisning av Asciidoctor-dokumenter.
  • lt-snippets - Plugin for snippets og maler i Light Table.
  • LightTable InstaBuster - Light Table-plugin for BusterJS.
  • LightTable-Groovy - Groovy-plugin for Light Table. Steg 1 er å lage en langt bedre Groovy Console. Steg 2 er helt åpent. Sky’s the limit!
  • gradle-buster-plugin - Gradle-plugin for å kjøre JavaScript-tester med BusterJS i JVM-prosjekter.
  • Har bidratt til node-test-runner, buddy-auth og gradle-ssh-plugin

Prosjekter

Stiftelsen Lovdata
Elm, Kotlin, Kunstig intelligens, Språkmodeller og Claude Code

Lovdata utvikler en ny versjon av det juridiske arbeidsverktøyet Lovdata Pro. Den kraftig moderniserte versjonen er langt mer mobilvennlig og får betydelige løft på en rekke andre områder.

Magnus ble opprinnelig leid inn for å tilføre ekspertkompetanse på Elm. Han jobber som fullstackutvikler og bidrar også med kompetanse på arkitektur og utviklingsmetodikk.

Nye Lovdata Pro har KI-søk. Magnus har jobbet med backend-integrasjonen mot KI-søket i Kotlin, med feilhåndtering og monitorering i Datadog. I det daglige bruker han agentisk utvikling med Claude Code, også til større oppgaver.

The Social Gaming Group
Clojure, Ansible og GitLab

I 2018 var Kodemaker med på å utvikle software for flere dartspill, som ble lansert da utestedet Oche åpnet. Siden den gang er det laget tilsvarende spill for Shuffle, og installasjonene har spredt seg over hele verden. Kodemaker ble engasjert for å effektivisere utrullingen av ny software, slik at den kan skalere i takt med vekstambisjonene.

Oppgavene til Magnus:

  • Oppsett av byggepipelines i GitLab
  • Utvikling av Ansible-playbooks for oppsett og installasjon av spillsoftware
  • Utvikling av en tjeneste for asynkron installasjon (Clojure og PostgreSQL)
FFL AS
Kotlin, Swift, SwiftUI, Google cloud run og Firebase

Fantasy football er et stort og voksende marked. FFL ville som ny og ambisiøs aktør ta en ledende posisjon med et engasjerende, morsomt og svært brukervennlig spill. Da muligheten til å være med på utviklingen dukket opp, øynet to av Kodemakers mest fotballgale utviklere drømmeoppdraget.

Kodemaker var ansvarlig for utvikling av app, backend og integrasjon mot tredjepartsleverandører av data, og for å etablere rutiner for CI/CD og devops og lage nødvendige administrasjonsverktøy. Vi bidro selvfølgelig også med domenekunnskap og kreative innspill for et best mulig produkt.

Rolle: Fullstackutvikler, DevOps, tech lead

Se flere prosjekter

Referanser

Simon Skrede
Director of Development, Lovdata

«Magnus has worked for Lovdata since March 2023 as a developer and project QA for a complex rewrite of our main software offering to the legal professional market in Norway. He has worked full-stack with our Elm frontend and Kotlin backend. Since literally the first hour he sat down at his desk, he has consistently delivered value to the project with professional craftsmanship and enthusiasm for both domain and technology. Through teaching sessions both one-on-one and with the whole team, he has also shared his knowledge with his co-workers. He is a good team player and though humble in nature, he will ask the right questions and will not hesitate to state his mind on the important issues.»

Yuwen He
Product Manager, Mercell

«I had the pleasure of working with Magnus during his time as a consultant and tech lead on our team at Mercell. From the outset, Magnus demonstrated exceptional leadership and technical expertise, making our collaboration not only seamless but highly effective.

As a Product Manager, I found Magnus to be an excellent co-pilot. Alongside me and our UX designer, Magnus formed an integral part of the product trio. Together, we collaborated effortlessly to ensure our products were desirable, feasible, and user-friendly. The synergy within our trio was exceptional, enabling us to deliver solutions that truly added value for private corporations, helping them succeed in public procurement.

I joined the team late, but Magnus ensured I was brought up to speed swiftly with a thorough and well-structured overview of the project. His clarity and resourcefulness were invaluable in getting me integrated and productive quickly.

Beyond his own technical contributions, Magnus took an active role in mentoring two junior developers on our team. His hands-on coaching in best practices and constructive one-on-one feedback helped them grow significantly in their roles.

Magnus’s influence extended well beyond the team. He actively collaborated with external partners and was a key contributor to strategic and architectural decision-making across the company. His insights were consistently thoughtful, practical, and forward-looking, earning him the respect and trust of everyone he worked with.

Magnus is a resourceful and highly respected tech expert, and I would welcome the opportunity to work with him again in the future. I wholeheartedly recommend him to any organization seeking a skilled, collaborative, and inspiring leader in technology.»

Daniel Haukaas
Produkteier, FFL AS

«Det var både gøy og lærerikt å jobbe med Magnus på fantasy football-prosjektet FFL i 2022. Magnus er flink til å se helheten og tenke nøye igjennom valgene man tar før man begynner å implementere, noe jeg satt stor pris på når vi jobbet sammen. Vil absolutt anbefale Magnus videre.»

Se flere referanser