Magnus Rundberget

Magnus har lang erfaring fra store og små prosjekter. Han har jobbet med en rekke teknologier og hatt mange forskjellige roller. Magnus stortrives i prosjekter der han får være med å foredle kunders ønsker og drømmer i kode. Han er dyktig i team og jobber aktivt for at teamet som helhet skal lykkes. Magnus liker både frontend og backend utvikling. I tillegg har han en forkjærlighet for automatisering og Continuous Delivery.

Favoritter for tiden: Elm, Haskell, Clojure, ClojureScript og Figwheel
Bruker på jobben: Clojure, Reframe, Docker, Python og ClojureScript
Vil lære mer: Elm, Rust, Haskell, Idris og Kubernetes

Magnus' anbefalinger

Inventing on principle

Fantastisk foredrag av Brett Victor. Programmering er et kreativt yrke. Det er antageligvis mye lettere å være kreativ dersom man kan ta, se, observere og endre helt fritt og dynamisk på et kjørende program. Hadde det ikke vært digg å kunne spole tilbake det du nettopp gjorde i appen din, endre noen parametere og så kjøre på nytt. Kanskje tom for å sammenligne. Dette foredraget var bl.a med på å inspirere mye av tankene rundt verktøy som Light Table og programmeringspråket Elm Se foredraget

Let's be Mainstream

Evan Czaplicki (forfatter av Elm) forsøker å få med hardcore funksjonelle programmerere (med en hang for typer) til å begynne å kommunisere med utenforstående på mer forståelige termer. 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 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

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 …

Screencasts

Elm package docs preview in Light Table

Screencast som demonstrerer forhåndsvisning av pakke dokumentasjon for Elm i Light Table. Se videoene.

Managing and diagramming elm packages with d3 in Light Table

Screencast hvor jeg demonstrerer avhengighetshåndtering og viser avhengighetsgraf (laget med d3) for min Elm Light Table plugin. Se videoene.

Elm plugin for Light Table

Screencast som demonstrerer første versjon av min elm plugin for Light Table Se videoene.

A pinch of Clojure love to Light Table

Screencast som demonstrerer kule features i min Light Table refactoring plugin Se videoene.

Clojure refactoring in Light Table

Screencast som demonstrerer litt av min Light Table refactoring plugin Se videoene.

The Groovy Light Table Plugin

Screencast om bruk av Groovy og Gradle i Light Table Se videoene.

Creating and Using Snippets in Light Table

Screencast som viser hvordan lage og bruke snippets i LightTable med lt-snippets Se videoene.

InstaBuster Part 2: Powerful JavaScript testing using Light Table and Buster.JS

Screencast med demo av dashboard og autotest features for LightTable InstaBuster Se videoene.

InstaBuster: JavaScript testing with LightTable & Buster.JS

Screencast med en kort introduksjon til LightTable InstaBuster Se videoene.

Sideprosjekter

Light Table

Etter å ha vært en ivrig bruker av Light Table i 1,5 år, bestemte jeg meg sommeren 2015 til å ta steget opp å joine opensource teamet til Light Table for å forsøke å gjenopplive prosjektet. Det er nok å ta tak i for å si det sånn ! Light Table på Github

Magnus' bloggposter

Introducing Elm Bootstrap

Lansering av mitt nye Elm bibliotek for å lage responsive webapplikasjoner med Twitter Bootstrap. Du får en oversikt over hva og hvorfor samt litt historie om hvordan biblioteket ble til. Les posten

Typed up CRUD SPA with Haskell and Elm - Part 6: Elm 0.18 Upgrade

I min blogserie om å lage en CRUD applikasjon i Elm og Haskell har tiden kommer for å oppgradere Elm koden til versjon 0.18. Mye av oppgraderingen denne gangen kunne automatiseres vha verktøy fra Elm Community. Resten av endringene var relativt mekaniske. Posten går relativt detaljert til verks med å sammelikne forskjellene mellom 0.17 og 0.18. Les posten

Elm Light 0.4.0 - AST driven Elm features in Light Table using PEG.js

For å kunne tilby enda mer avansert Elm støtte i Light Table har jeg implementert en hjemmesnekret AST vha peg.js. Dette har gitt vesentlig forbedret autocomplete og endel hendige refactor relaterte funksjoner. Les posten

Magnus' foredrag

Elm - Awesomesauce or just yet another language for the frontend

Elm er kanskje et av de mest spennende språkene og platformene for å lage solide, raske og vedlikeholdbare web frontends. I dette fordraget får du en liten smakebit av fordelene med funksjonell programmering (med typer) i Elm. Du får også en innføring i hvordan Elm er mere enn bare et språk. Språket, plattformen og arkitekturen promoterer en ny måte å tenke på som virkelig fanger ens oppmerksomhet. Foredraget består av noen få slides og en solid dose med live-coding ! Se video

Functional Frontends with Elm

Lyntale hvor jeg lager en enkel Chat klient med Elm

Functional Reactive Programming for the Web using Elm

I dette foredraget får du en oversikt over hvordan Elm omfavner Funksjonell Reaktive Programmering vha signaler (verdier som endrer seg over tid). Du vil lære litt om Elm platformen og arkitekturen for en typisk Elm applikasjon. Live koding står også på blokka ! Se video

Gradle - Det er faktisk ditt bygg

Mange klamrer seg fortsatt til illusjonen at alle bygg er (nesten) helt like. Det stemmer kanskje i knøtteligaen, men i litt større organisasjoner finner man alltid spesielle krav til bygge/leveranseprosessene. Det virker logisk å velge et byggeverktøy som er svært fleksibelt og samtidig er basert på konvensjoner. Det verktøyet heter Gradle. Se video

Open source

Elm

  • Utviklet Elm Bootstrap. Elm bibliotek for å lage responsive webapplikasjoner med Twitter Bootstrap 4.
  • Utviklet Elm Light Table Plugin. Light Table plugin for Elm. Syntax-highlighting, repl/inline eval, elm reactor integrasjon mm
  • Har bidratt til node-test-runner.

Clojure

  • Utviklet rewrite-cljs. ClojureScript port av rewrite-clj. Bibliotek for traversering og omskriving av Clojure/ClojureScript/EDN- kode
  • Har bidratt til buddy-auth.

Light Table

  • Utviklet Clj-Light-Refactor. Plugin som gir Clojure refactoring support til Light Table
  • Utviklet AsciiLight. Light Table plugin for live-edit visning av Asiidoctor dokumenter
  • Utviklet lt-snippets. Snippet/templates plugin for Light Table
  • Utviklet LightTable InstaBuster. Light Table plugin for BusterJS
  • Utviklet LightTable-Groovy. Groovy plugin for Light Table. Steg 1 er å lage et langt bedre Groovy Console. Steg 2 er helt åpent. Sky’s the limit!

Groovy

Prosjekter

(Konfidensielt) 2018-

Utvikling av nytt spillkonsept knyttet til Dart.

Oiiku 2017

Utvikling av bordplasseringsmodul til Event håndteringssystem. Bordplasseringen skulle kunne effektiv plassere 1000vis av deltakere effektivt samt balansere diverse konfigurerbare kriterier. Oppgaver: Utvikling av backend tjenester og integrasjon mot kjernemoduler i eventsystemet. Finne best mulig løsning for å løse det NP komplette problemet å automatisk best mulig plassere 1000vis av deltakere på tvers av 100vis av bord.

Aprila Bank 2017

Utvikling av tjenster/produkter for ny B2B bank. Startup som har som mål å tilby banktjenester til små og mellomstore bedrifter på en helt ny og spennend måte. Oppgaver: Integrasjon mot diverse 3.parts løsninger, etablering av mikrotjenster, teknologievalueringer, frontend utvikling, automatisert testing mm.

Animalia - Dyrehelseportalen 2016

Utvikling av applikasjon til veterinærer og produsenter for registrering av medisinering og helserelatert informasjon. Prosjektet er en omskrivning/nyutvikling av en eksisterende applikasjon til en moderne responsiv webapplikasjon. Første versjon av ny applikasjon gikk i produksjon i Januar 2017 og er nå under kontinuerlig videreutvikling. Oppgaver: Analyse, design og full-stack utvikling av en mikrotjeneste-basert arkitektur med flere sluttbruker-applikasjoner.

Animalia - Vedlikehold og videreutvikling 2015

Vedlikehold og videreutvikling av flere av de eksisterende Grails applikasjonene i Animalia. Oppgaver: Utvikling, bugfixing, refaktorering og arkitetekturarbeide med tanke på applikasjonenes levetid.

Animalia - Helsegris 2014

Utvikling av ny applikasjon for oppfølging av dyrehelse for griser. Det er også et mål for prosjektet å lage endel gjenbrukbare tjenester. Oppgaver: Utvikling, mentoring og veiledning på utvikling av tjenestearkitekturer.

Animalia - Sauekontrollen 2013

Full-stack utvikling i Grails. Prosjektekspert på JavaScript/TDD og provisjonering (Ansible).

Animalia - Storfekjøttkontrollen 2012

Animalia er et fagmiljø for kjøtt og eggbransen. Animalia tilbyr verdikjedesystemer til bønder og deres rådgivere. Man har en klar strategi om å tilby gode og moderne selvbetjeningsløsninger på web. Magnus er leid inn for å hjelpe til med transformasjon og utvidelsen av eksisterende systemer til moderne web-teknologi basert på Java-platformen. Oppgaver: Utvikling av frontend og backend for nytt system. Mentoring i smidig utvikling. Mentoring av fastansatte/nyansatte i moderne systemutvikling.

Storebrand Aktuarsystemer 2011

Storebrand Aktuarsystemer er et datterselskap i Storebrand konsernet. De har utviklet et pensjonskassesystem som håndterer pensjonskasser for store norske kunder. Man har et stadig økende behov for å utvikle ny funksjonalitet i et raskere tempo. Samtidig har man også opparbeidet endel teknisk gjeld. Magnus er leid inn i første rekke som seniorutvikler på java delen av løsningen. Oppgaver: Utvikling av ny funksjonalitet i Java, Pl/SQL og noe .Net. SCRUM mentoring og mentoring på best practices innen systemutvikling generelt. Forbedring av eksisterende utviklingsprosess, bistand med innføring av nye produktive verktøy og disipliner.

Forsvaret FLO/IKT 2010

FLO/IKT holder for tiden på med en svært omfattende SOA implementering. En av utfordringene i forsvaret er at man har mange nettverk med lav båndbredde og/eller ustabile forbindelser. Man er derfor i gang med å utvikle en proxy basert løsning for å håndtere webservice kall også i denne type nettverk. Denne løsningen ser man for seg vi bli en viktig komponent i SOA arkitekturen. Oppgaver: Basert på en spesifikasjon og referansemplementasjon fra Forsvaret forskningsinstitutt var Magnus sin oppgave å lage en produkuksjonsklar første versjon som skal integreres i SOA arkitekturen.

Telenor Mobil 2009

Oppgradering av mellomvareplattform (COS). Oppgradering av Java4-Java6, weblogic8-weblogic10 og maven1-gradle. Oppgaver: Scrum assistanse, Utvikling av webservices, porting av biblioteker, weblogic konfigurasjon, ytelsestesting, byggesystem analyse og migrering.

Forsvaret FLO/IKT 2008-2009

Modernisering av fagapplikasjoner for dokumenthåndtering/rapporthåndtering til Web 2.0. Oppgaver: Kravstyring, Arkitekturevaluering, Utvikling på alle applikasjonslag, ytelsestesting, mentoring.

Se flere prosjekter i Magnus' CV

Magnus' referanser

Simon Herberg

Architect, Telenor

Karl Magnus was part of a team that upgraded our JAVA and Weblogic software. In addition he was the driving force behind the replacement of Maven 1.x with Gradle for our build system. He worked well both within the team and on individual tasks.


Mitul Thobhani

Owner and Co-Founder, Portfolio Software Limited

Magnus is one of those rare individuals who has the ability to understand a concept at the high level as well as the implementation minutia at the same time. His skills and deep experience in software architecture along with his professional, patient and calm nature allowed me to gain not only the information needed about the project on which we worked, but insights and inspiration in the more general field of software development.


Norman Katz

Development Director, Nordic Lottery Systems

When I joined NLS Magnus was the person to go to to get answers to any and all questions relating to the complex rules of our online lottery. In time, I came to rely on him to make initial scoping estimates of potential coding projects. For those projects we chose to pursue, his estimates and their related task lists formed the basis for further detailed planning. Furthermore, Magnus's estimates could always be relied on to be very close to the eventual reality. Magnus was always looking for ways to improve our product. For example, on a project that sought through simulation techniques to validate the correctness of the product's internal calculations, Magnus recognized that this would provide the ideal test bed for profiling the product's performance. Through his efforts we were able to greatly speed up the application, in addition to fullfilling the primary purose, validation of its calculations. I recommend Magnus without reservation


Bill Lewis

Head Of Application Development, PricewaterhouseCoopers

Magnus joined us towards the start of our exposure to Web Technology and greatly helped us make the right decisions. I would have no hesitation recommending Karl for his technical capability and clarity of thought


Magnus Rundberget

Kodeentusiast
+47 928 83 365
magnus@kodemaker.no