Profilbilde av Magnar Sveen

Magnar Sveen

Systemutvikler

+47 918 56 425
magnar@kodemaker.no

Utvikler med 23 års erfaring

  • Solid og erfaren frontendutvikler
  • Dreven på testdrevet utvikling
  • Mye praktisk erfaring med responsiv design
  • Opptatt av hyppige leveranser og smidig utvikling
  • Tar oppgaver i hele stacken, fra deployment og bygg, via databaser og backend, til frontendytelse og brukertesting.

«Magnar is one of the smartest full-stack developers I've ever met. We tested his flexibility by asking him to take over our DevOps stack, write one of the back-end services and lead the rewrite of our app. All of which he pulled off with stunning success. Magnar would be a fantastic asset to any team.»

- Owen Fraser-Green, Leder MyEnergy, Hafslund

Om Magnar

Magnar kaller seg framsieutvikler, men egentlig trives han godt i hele stacken. Han er opptatt av og oppdatert på webutvikling. Han har et entusiastisk forhold til frontendutvikling - webstandarder, frontendytelse, brukergrensesnitt, responsiv design, browserproblematikk, html, css og javascript.

Magnar får svært gode tilbakemeldinger fra våre kunder. Etter kundenes ønske har han holdt flere kurs der han har vært konsulent, blant annet om JavaScript og testing.

Norled

Arkitektur, infrastruktur og implementasjon av nytt informasjonssystem for fergedrift basert på Clojure og Datomic.

Oiiku

Robust meldingsmodul for tidsstyrt, event-styrt eller manuell utsending av SMS eller e-post. Clojure og Datomic.

Hafslund Strøm

App for iOS og Android med Cordova og ClojureScript, automatisert bygg og utrulling, system for firmware-oppdateringer.

Teknologi



Utviklingsverktøy

Emacs, Visual Studio, Maven, Eclipse, Leiningen, Ant, SBT, Grunt, TextMate, tools.deps og IntelliJ IDEA


Devops

Docker, Ansible, Amazon Web Services (AWS), Varnish, Travis CI, nginx, Jenkins, Jmeter, Datadog, AWS S3, Lambdacd, Capistrano og Weave


Web- og apputvikling

JSP, Optimus, ASP.NET, Apache Cordova, JBoss, Stasis, ASP, Struts, Html5, JSTL, Spring og Cheetah


Utvikling

JUnit, Sinon, Midje, Cucumber, Mocha, Expectations, Buster.JS, Chai, Watir og JsTestDriver


Data

Datomic, DataScript, MS SQL Server, PostgreSQL, Hibernate, SQL, MS Access, Influx DB, Oracle og MongoDB


Webutvikling

HTML, CSS, Responsiv design, Frontend, jQuery, Quiescent, AngularJS, OOCSS, Reagent, Twitter Bootstrap, Jawr og React


Software

JIRA, Confluence, Photoshop, Visio, Pswincom, Twilio, Sanity og Mailgun


Annet

Git, Funksjonell programmering, Immutability, Design, TDD, Automatisert testing, CVS, core.async, Mount, Spring MVC, Busybox, Elasticsearch, Subversion, CentOS, Arkitektur, Ubuntu, Visual source safe, Visual interdev, Kafka og Homoikonisitet


Prosjekter


Arbeidsgiver

Kodemaker Systemutvikling AS


Hafslund Strøm / Fortum
2020-

Mine Sider, App, Produktsider, Bestillingsløp

Utvikling og forvaltning av flere av Fortum og Hafslund Strøm sine kunderettede flater.

ClojureScript, Clojure, Responsiv design, Sanity, Datadog, Git, Amazon Web Services (AWS), AWS S3, tools.deps og Varnish


Norled
2016-2020

Nytt informasjonssystem for fergedrift

Utvikler nye informasjonssystemer for fergedrift for Norled. Jobber også med billett-app for kunder, samt app for fergebillettørene.

Clojure, ClojureScript, Datomic, DataScript, Reagent, Mount, Docker, Amazon Web Services (AWS), Apache Cordova, HTML, CSS, Responsiv design, Kafka, Influx DB, Lambdacd og Travis CI


Hafslund Strøm
2016

Hafslund Strøm app for iOS og Android

Hadde ansvar for utvikling av Hafslund sin nye Strøm-app og Link-app for smarthjem. Ved hjelp av responsiv design kunne et lite team levere app for både web, iOS og Android.

Apache Cordova, ClojureScript, Quiescent, core.async, Optimus og JavaScript


Oiiku AS
2016

Meldingsmodul for SMS og e-post

Utviklet en solid meldingsmodul med støtte for tidsstyrt, event-styrt eller manuell utsending av SMS eller e-post.

Clojure, Datomic, Mount, Twilio, Mailgun, Pswincom og AngularJS


Hafslund Strøm
2015

Backend system for oppfølging av hardware

Utviklet verktøy for kontroll over hardware ute hos kunder, med live oversikt og regelbasert utrulling av oppgraderinger.

Clojure, ClojureScript, Datomic, Quiescent, core.async, Twitter Bootstrap, Expectations, Optimus og Docker


Hafslund Strøm
2014-2015

DevOps i Hafslund Link

Link er Hafslund sin satsning på monitorering og automatisering i hjemmet. Jeg holdt i automatisering av bygg og utrulling. Stikkord er one-click deploy, blue-green utrulling, integrasjonstesting, og generelt hjelpe utviklerteamet på veien til kontinuerlig utrulling.

Docker, Ansible, Jenkins, Weave, SBT, Amazon Web Services (AWS), Bash, Ubuntu, CentOS og Busybox


Schibsted Payment ID (SPiD)
2014

Løsning for API-dokumentasjon

Utviklet nytt nettsted for teknisk dokumentasjon. Vi gjør mange grep for å holde dokumentasjonen aktuell og oppdatert. Sidene blir bygget opp basert på informasjon hentet rett fra SPiD sitt REST API. Eksempler i guides hentes fra fungerende eksempler, for å sikre at kodeeksempler ikke er utdatert.

Clojure, Responsiv design, Stasis, Optimus og Midje


Schibsted Payment ID (SPiD)
2014

Frontend for ny innlogging

Prototypet ny innlogging, registrering og kjøpsflyt for SPiD, med fokus på brukervennlighet, støtte for mobil, og forenkling av tekniske løsninger.

HTML, CSS, Responsiv design, JavaScript, Grunt, Mocha og Chai


Kodemaker
2014

Nye nettsider

Utviklet nye nettsider for Kodemaker. Lagde alt fra deployment og bygg, til responsiv design i frontend.

Clojure, Ansible, Responsiv design, Stasis, Optimus, Midje, nginx og Varnish


Oiiku
2013-2014

Eventsystem for bedrifter

Jobbet i et lite team med å utvikle eventsystemet Oiiku. Vi måtte alle bidra på alle fronter: fra frontend, via backend, til database og drift. Systemet består av mange frittstående applikasjoner (pluss SSO) som kommuniserer via REST.

JavaScript, Clojure, AngularJS, Ansible, Datomic, MongoDB og Elasticsearch


FINN Reise
2013

Bygge frontendkompetanse i fire team

Leid inn for å bidra til storsatsning på ny platform til FINN reise. Fokus på testdrevet utvikling, samt kontinuerlig integrasjon og utrulling. Mitt ansvar var å løfte frontendkompetansen på tvers av fire team.

HTML, CSS, JavaScript, Java, Spring MVC, Buster.JS, Sinon, JUnit og Jawr


FINN Oppdrag
2009-2013

Ansvarlig frontendutvikler

Ansvarlig frontendutvikler. Utviklet hele framsia fra bunnen av. Vi var første marked i FINN til å bruke responsiv design. Skrev over 1000 JavaScript tester og likte det.

JavaScript, Responsiv design, OOCSS, Spring MVC, HTML, CSS, jQuery, JsTestDriver, JSP, Sinon, Java, JUnit, Git, JIRA og Confluence


FINN Motor
2009

Spesialist på browserproblematikk

Reddet FINN motor sine nye annonsesider fra massive IE6-problemer.

CSS og HTML


NSB
2009

Integrasjon mellom ruteplanleggingsverktøy og togsett

Integrasjon mellom ruteplanleggingsverktøy og togsett. Utviklet fra bunn av med Test Driven Development.

Groovy, Java, Hibernate, Maven og JUnit


FINN Reise
2009

Opprydding frontend

Stor opprydding og omlegging av JavaScript-bruken på reisesidene, da særlig søkeskjemaene. Endringene gjorde det lett å tilby skjemaene i iframe for VG, Aftenposten, Aftonbladet og www.destination.se. Holdt JavaScript-kurs for teamet, deretter alle FINNs frontend-utviklere, og til slutt et JavaScript for Javautviklere-kurs for hele FINNs utviklingsavdeling. Orkestrerte omlegging av FINNs CSS-organisering for å lette utviklernes jobb.

JavaScript, CSS, HTML, jQuery, JSP, JSTL, Java, JUnit, Ruby, Watir, Cucumber, CVS, Ant, JIRA og Confluence


FINN Surf Sammen
2008-2009

Utvikler på FINN.no's første sosiale medier satsning

Lagre annonser og del dem med venner og familie. En satsning på samhandling på FINN.no, med stort fokus på brukervennlighet og Ajax. Var med fra starten, jobbet med skisser til løsning og databasestruktur. Gikk fort over i rolle som frontendansvarlig på scrumteamet. Står bak mesteparten av Ajax- funksjonaliteten i forbindelse med lagring og deling av annonser.

JavaScript, CSS, HTML, jQuery, JSP, Java, CVS, JIRA og Confluence


Nordic Lottery Systems
2007-2008

Internettspill

Utvikling av et nytt internettspill med internasjonal målgruppe. Hadde veldig varierte oppgaver - fra webdesign og ajax, via refaktorering av betalingsløsning i java, via domene-drevet test-first parprogrammering, via ytelsesmåling med JMeter, og helt til automatisering av deployment med ruby og capistrano.

HTML, CSS, JavaScript, jQuery, Struts, Java, Eclipse, Jmeter, Ruby, Capistrano, JBoss, Spring, Hibernate, Maven, Oracle, JIRA og Confluence


OwnIT
2006-2007

Koster Booking

Hadde ansvar for adminverktøy og integrasjon mot betalingsløsning for en booking-nettside.

C#, ASP.NET, Java, Visual Studio og MS SQL Server


Nordic Lottery Systems
2006

Internettspill

Utvikling av et nytt internettspill med internasjonal målgruppe. Jobbet med webstandards, web accessibility og usability.

CSS, HTML, JavaScript, jQuery, JSP, Photoshop, JIRA, CVS, Eclipse, JBoss, Maven og PostgreSQL


DAF Norge
2006

Håndtering av ettermarkedsavtaler

Et system som brukes av DAFs verksteder, kunder og DAF sentralt for oversikt over lastebilenes reparasjoner, faste servicer og tilhørende fakturagrunnlag. Lagde systemet fra bunnen av; database, applikasjonslag, frontend, og integrasjon mot delelagersystemet ABS.

C#, ASP.NET, HTML, CSS, Visual Studio, MS SQL Server og JavaScript


Arbeidsgiver

Synkarion AS


Bravida
2005

BraWeb Bestilling

BraWeb Bestilling: Et arbeidsverktøy for Bravidas prosjektledere og montører, som lot Bravidas kunder holde seg fortløpende oppdatert på status på sine bestillinger. Utviklet systemet egenhendig - fra analyse og design, til implementasjon og testing. Systemet hadde mange interaktive elementer a.la Ajax før begrepet ble myntet.

C#, ASP.NET, HTML, CSS, Visual Studio, Visual source safe, MS SQL Server og JavaScript


Mobildata/Kjedehuset
2005

Webbasert timeregistrering

Et timeregistrerings- og ressursstyringsverktøy på web og til bruk på håndholdte enheter. Programmeringen ble outsourcet til Bulgaria. Hadde sentral rolle i design av databasemodell og brukergrensesnitt.

Photoshop og Visio


Arbeidsgiver

Deltidsarbeid under studier


ITEA NTNU
2003-2004

Network Administration Visualized

Network Administration Visualized: Et visuelt administrasjonsverktøy for nettverksdrift som brukes av alle landets universiteter og over et dusin av landets høyskoler. Hadde ansvar for utvikling av brukergrensesnitt, samt valg og bruk av templating løsning.

CSS, Python, Cheetah, HTML, Photoshop, Subversion og PostgreSQL


Bits AS
1999-2000

Fredrikstadnett

Fredrikstadnett: Fredrikstad Kommunes satsning på et samlende nettsted for Fredrikstad. Utviklet webelementer som debattsider, publiseringsverktøy og online chat.

HTML, ASP, SQL, MS Access, JavaScript og Visual interdev


Anbefalinger


Vidar Litlehamar

IT Sjef, Norled

«Magnar fremstår som solid, trygg og særdeles effektiv, både «oppe i tårnet» med arbeidet med å oversette domene til arkitektur, så vel som i håndverket med å produsere nydelig, effektiv kode. Det er det at han leverer i toppklasse på begge disse områdene og samtidig elsker å lære bort, som for meg gjør at Magnar skiller seg ut. Når han i tillegg er en svært omgjengelig fyr er det ikke annet å gjøre enn å trille terningkast seks og gi ham de aller beste anbefalinger.»


Owen Fraser-Green

Leder MyEnergy, Hafslund

«Magnar is one of the smartest full-stack developers I've ever met. I had the great pleasure of working with him on our Smart Home project at Hafslund where we tested his flexibility by asking him to take over our DevOps stack, write one of the back-end services and lead the rewrite of our app. All of which he pulled off with stunning success. Besides his prowess as a developer, we also miss his sharp wit in the office. Magnar would be a fantastic asset to any team.»


Bjørnar Stray Berentsen

Founder & CEO, Oiiku

«Magnar er en utrolig dyktig, effektiv, strukturert og selvgående utvikler. I tillegg til høy teknisk kompetanse er han uvanlig god til å se helheten og gjøre de rette prioriteringene. Magnar er positiv og løsningsorientert og bidrar til et hyggelig miljø på kontoret.»


Geir Henning Pettersen

Tech Lead, FINN reise

«Magnar kom inn tidlig i et prosjekt der vi ønsket å øke kompetansen vår på frontendteknologi.

Magnar hadde en vanskelig rolle, hvor vi ønsket at han skulle påvirke vår teknologi uten å løse problemene for oss. Hovedoppgaven hans var å gjøre våre faste ansatte og vår frontendteknologi bedre.

Magnar gjorde våre folk bedre og la opp løpet rent teknologisk slik at vi lærte å jobbe testdrevet i frontend. Læringen fra Magnar har vært veldig viktig for vårt prosjekt. Han er meget faglig dyktig i alle lag, men på frontend er han blandt de beste i Norge. Han er dessuten meget pedagogisk anlagt og enkel å jobbe med.

Nå ca. ett år etter er jeg ikke i tvil om at grunnen til at vi har flere flinke folk på frontendteknologi er mye takket være at Magnar var hos oss i en tidlig fase.

Jeg gir Magnar mine beste anbefalinger.»


Bjørn Henrik Vangstein

Avdelingsleder IT, FINN.no

«Magnar Sveen skiller seg klart ut i mengden, både faglig og personlig. Han ble raskt ettertraktet på huset, både på grunn av sine fagkunnskaper, som stikker dypt og favner bredt, men også på grunn av sine initiativ, pedagogiske evner, og behagelige vesen. Det er generell oppfatning i FINN at Magnar overgår de fleste når det gjelder utvikling av front-endløsninger. Magnar har et modent perspektiv på faget, og klarer å se bruker, teknologi og lønnsomhet i sammenheng. Magnars gode sosiale evner, kombinert med vilje og evne til å dele sine kunnskaper med andre gjør ham til en svært ettertraktet ressurs i de fleste utviklingmiljøer.»


Kaija Ommundsen

Prosjekteier, FINN oppdrag

«Jeg har hatt glede av å bygge opp FINN oppdrag sammen med Magnar. Jeg har sjelden møtt en utvikler som han; svært opptatt av å lage gode opplevelser for brukeren med god flyt og godt språk i sentrum. Kombinerer du dette med et sylskarpt hode og evne til å tenke helhetlig og konseptuelt, får du Magnar. Han er en usedvanlig dyktig frontutvikler, men jeg har satt minst like stor pris på hans deltagelse i diskusjoner om strategi, konsept, design, arkitektur, datamodell og arbeidsmetodikk. Hans evne til å jobbe i team og finne måter å komme videre på når det stopper opp, hans til tider skarpe spissformuleringer og hans evne til å finne pragmatiske løsninger på komplekse problemer har gjort at hele teamet som står bak FINN oppdrag har oppnådd gode resultater. Grip sjansen om du får mulighet til å jobbe sammen med Magnar - det skaper gode løsninger, interessante diskusjoner og garantert læring underveis.»


Endre Midtgård Meckelborg

Teknisk Leder, FINN oppdrag

«Ved oppbyggingen av FINN oppdrag jobbet jeg sammen med Magnar, og det var en lærerik og morsom opplevelse. Magnar er en av de beste frontend-utviklere jeg har jobbet med. Han har veldig god forståelse for brukergrensesnitt, og ser raskt hva som fungerer og hva som ikke gjør det. Magnar er dyktig i alle applikasjonslag, men utpeker seg spesielt for sin kunnskap rundt JavaScript/HTML/CSS. JavaScript-koden til Magnar er fritatt for dårlig klipp-og-lim-kode, og fungerer perfekt på alle plattformer! Sjekk ut hans omdømme på StackOverflow.»


Utdanning


1998, 2005

NTNU

Sivilingeniør/Master Datateknikk


Presentasjoner


2021





2014


2013


2012

  • Emacs Rocks hos UiO (Gjesteforeleser hos Universitetet i Oslo)
  • Emacs Rocks hos FINN.no (Internforedrag hos FINN.no)
  • Zombie TDD: Live parprogrammering (JavaZone)
  • Emacs Rocks hos Steria (Internforedrag hos Steria)
  • Zombie TDD: I live på CiA (Communities in Action)

2011


2010

  • HTML5 - Hva kan vi bruke NÅ? (Internforedrag hos FINN.no)

2009

  • JavaScript for Javautviklere (Kurs for FINN.no)
  • Slik bruker vi JavaScript hos FINN (FINN Academy)

Bidrag til fri programvare



Andre faglige bidrag


Zombie TDD - Testdrevet JavaScript

Ganske mange episoder med video av live testdrevet programmering i JavaScript. Gjesteepisoder med Christian Johansen og Johannes Brodwall. Inkluderer live programmering på Communities in Action og JavaZone.

Zombie CLJ - Clojure og ClojureScript

I denne oppfølgeren til ZombieTDD lager Christian og jeg spill med Clojure og ClojureScript. Det går i parprogrammering hele veien. Og jaggu skriver vi ikke flere tester først. Skulle tro XP hadde noe for seg.

Emacs Rocks!

Jeg ble så begeistret for Emacs at jeg trengte et utløp for all min entusiasme. Resultatet ble denne serien med 3-minutters videoer av kule triks som nå er sett over tre hundre tusen ganger.

Parens of the dead

Mer zombier og Clojure, denne gangen på engelsk. Jeg tenkte det kunne være moro å lage noe for et større publikum. Litt mer finpussa og litt mindre jovialt enn originalen.

mytomatoes

Et lite produktivitetsverktøy jeg smalt sammen på en uke, som nå har flere tusen besøkende daglig - med 3,5 millioner 25 minutters arbeidsøkter registrert. Den første versjonen var kodet med PHP, men nylig lagde jeg en Clojure backend som er litt morsommere å vedlikeholde.

Adventur Delux

Et tekstbasert eventyrspill jeg har skrevet på siden 1997, på størrelse med Ringenes Herre fire ganger. Drager, demoner, bøllefrø og fusentaster. Jeg har lagd fem forskjellige editorer opp gjennom årene - i AMOS, Java, Ruby on Rails, Groovy, samt den siste inkarnasjonen som har en Clojure backend til en Emacs Lisp frontend.

Artikkel: Noen artige tekniske detaljer fra Kodekamp

Jeg arrangerte Kodekamp i helga, en hjemmesnekret konkurranse i kodeskriving. Det var intenst og gøy. Her er en liten samling fikse finurligheter og lett underholdende anekdoter derfra.

Artikkel: Kan mindre frihet være bra?

Er det alltid bra med mer frihet? Nei, ikke når vi skriver kode. La meg forklare.

Artikkel: Lag ditt eget rammeverk

Ja, det er en oppfordring. Jeg mener for guds skyld ikke at du skal lage et nytt rammeverk som andre kan bruke, men lag et til deg selv. Sett opp et stilas som passer til det du bygger.

Men ikke med en gang.

Artikkel: Samspill mellom generiske UI-komponenter

I forbindelse med bloggposten om en enkel frontendarkitektur som funker, spurte Ove: “Hvis du har en tekstboks og en knapp, hvem har ansvaret for å ta verdien fra tekstboksen og sende den til eventbussen når man trykker på knappen?” Det er et betimelig spørsmål med noen interessante detaljer.

Artikkel: Sy sammen s-expressions med thread-first og -last

Når man er ny til Clojure er macro-ene -> og ->> temmelig forvirrende. Ikke bare er de vanskelige å søke etter på nett, men koden ser også helt mystisk ut. Heldigvis er det ikke lenge til du blir nyforelska og bruker dem overalt. Kanskje etter denne bloggposten?

Artikkel: En enkel frontendarkitektur som funker

Det er mange store stilaser å velge blant for din frontendarkitektur, men trenger du all leamikken? Her er en enkel arkitektur som jeg har hatt mye glede av.

Artikkel: Et lite Clojure-triks til å bli glad av

Det viktigste og beste med Clojure er pure functions og immutability, men i dag skal jeg skrive om noe ganske annet. Jeg skal skrive om en småting som gjør meg glad når jeg koder.

Artikkel: Terningene er kastet med CSS

Snart er det JavaZone, og da blir det kosetime med Christian og meg. Vi skal lage et nytt zombiespill - denne gangen med terninger.

Terningspill er langt morsommere hvis man kan se terningene rulle, så jeg brettet opp ermene (ikke armene) og skrev litt CSS i forberedelse til presentasjonen. Her er det jeg lærte om å kaste terninger med CSS.

Artikkel: Et gammelt triks i en ny kontekst

Det er lett å ta gamle triks med seg inn i en ny hverdag. Den første Clojure-koden jeg skrev ligner ikke spesielt mye på den jeg skriver i dag. I denne bloggposten skriver jeg kort om én av tingene jeg har gradvis lært meg av med.

Artikkel: What the .emacs.d!?

En lang samling med triks og tips for å sette opp Emacs’en din sjæl. Høyt anbefalt over å dumpe inn noen andres config og håpe det blir bra.

Artikkel: Responsiv design: Hva gjør vi med IE?

Nesten alle nettlesere forstår media queries. Men det er fortsatt en hel del stakkars jævler der ute som bruker IE 8. Hvem skal tenke på dem? Joda, det er oss, det.

Artikkel: Å generere tester og dokumentasjon

En gjestebloggpost på Torbjørn Marø sin Programmeringsblogg om å kombinere testing og dokumentasjon ved hjelp av makroer og Emacs Lisp sin homoikonisitet.

Artikkel: Bøker for vordende framsiefolk

En kamerat og kollega som stort sett har holdt seg til baksia, fortalte meg at han ville bli skikkelig god på framsia. Om jeg har noe lesestoff å anbefale? Å ja. Disse bøkene mener jeg er essensielle for vordende framsieutviklere.

Artikkel: Ingrediensene i Responsive Webdesign

Responsive Design handler om at nettsia tilpasser seg størrelsen på skjermen. Det kommer som et svar på det voksende mylderet av enheter i varierende størrelser som besøker nettsidene våre. Her ser jeg på de to hovedingrediensene.

Artikkel: OOCSS: Et paradigmeskifte

Jeg satt min stolthet i å skrive slank HTML. Jeg kjente alle triksene i boka for å få nettlesere til å oppføre seg. Men selv om HTMLen var ryddig og semantisk, så hadde CSS’en eksplodert. Kunne det være noe i OOCSS? Det var jo i mot alt jeg hadde lært.

Artikkel: 5 JavaScript-uvaner du må legge av deg

Jeg tør påstå at JavaScript er et av språkene som er mest utsatt for cargo culting. For noen år siden var det utstrakt klipping og liming, og uvanene spredte seg fortere enn du kunne si globalt navnerom. Her er noen saker du må slutte med.