Fullstackutvikler, med mål om gode brukeropplevelser
Jeg er fullstackutvikler med en kjærlighet for frontend. De siste årene har jeg bygget løsninger i både Vue og React med .NET eller Supabase bak — fra elektronisk stemmegivning i en folkeavstemning til styreportal og datarom der tilgangsstyring og sporbarhet er selve produktet. Det siste året har jeg jobbet AI-assistert i den typen kode — høy fart på selve skrivingen, men med verifikasjonen forankret hos meg og ikke hos maskinen. Jeg jobber tett med design og forretning, og er mest fornøyd når det jeg leverer faktisk kan brukes av alle som skal bruke det.
Samvar er to produkter på én plattform. Hemvar er driftsappen for boligselskap — borettslag og sameier — der styret følger opp eiendommen sin: avvik med bilder, driftsoppgaver, vedlikeholdsplan og dokumenter, per bygg. Fagvar er verktøyet fagfolkene bruker til tilstandsanalyser. Poenget er koblingen mellom dem: rapporten en fagperson skriver i Fagvar havner rett inn i styrets Hemvar, i stedet for å bli en PDF på e-post.
Jeg bygger begge appene og backend-en de deler. Tre React 19-apper — Hemvar, Fagvar og et internt adminverktøy — i et pnpm- og Turborepo-monorepo med Vite og TanStack Router, mot ett felles .NET-API. Clerk håndterer innlogging, og tenants er typet per app, slik at samme person kan sitte både i et Fagvar-firma og i et Hemvar-styre uten at de blandes. Bygningsdeler er kodet etter NS 3451, eiendommer slås opp mot matrikkelen hos Kartverket, og fakturering går per bygg via Tripletex. Adminappen gir KPI-er, kundeoppfølging og resynk av delte rapporter på tvers av begge produktene.
React 19
TypeScript
Vite
TanStack Router
.NET
Clerk
Turborepo
Tripletex
02
AdmincontrolFullstackutviklervia Sopra Steria
Admincontrol — styreportal og virtuelt datarom
Admincontrol leverer styreportal og virtuelt datarom til styrer, ledergrupper og rådgivere i Norden. Alt som ligger der er fortrolig — styrepapirer, transaksjonsdokumenter, sensitive personopplysninger — og tilgangsstyring og sporbarhet er ikke en detalj rundt produktet, det er produktet.
Jeg jobbet fullstack på produktet, med React og TypeScript i frontend og .NET mot SQL Server bak. Kravene til presisjon gikk gjennom alle lag: en feil i tilgangsstyring eller datamodell er ikke en kosmetisk bug her, den er et sikkerhetsbrudd. Jeg brukte AI aktivt for å holde høy fart, men med menneskelig verifikasjon som et eget lag i prosessen — jeg leste og forsto hver linje som gikk videre, og lot ingenting passere på tillit alene. Fart fra maskinen, kontroll fra mennesket.
React.js
TypeScript
.NET
C#
SQL Server
03
ValgdirektoratetFrontend- og fullstackutvikler
Elektronisk stemmegivning til folkeavstemning
Valgdirektoratet har det operative ansvaret for valggjennomføring i Norge. Til folkeavstemningen i Søgne, Songdalen og Kristiansand skulle det for første gang leveres en løsning der stemmeberettigede kunne avgi stemme elektronisk.
Jeg bygget stemmeportalen i Vue med TypeScript, på et nytt designsystem basert Valgdirektoratets eget. På backend implementerte jeg en Backend-for-Frontend i .NET med Duende Identity Server, slik at velgere kunne logge inn via ID-porten. Jeg kjørte brukertester med blindeforbundet, og det var et stregnt krav om tilgjengelighet og at vi fulgte WCAG 2.1.
Folkeavstemningen ble gjennomført delvis elektronisk — enklere og rimeligere enn en rent fysisk gjennomføring.
Vue.js
TypeScript
.NET 7
OIDC / ID-porten
WCAG 2.1
C#
Duende Identity Server
Scrum
GitLab
04
Norsk HelsenettFrontendutviklervia Capgemini
SyntPop — syntetiske testpersoner for helsesektoren
Norsk Helsenett trengte realistiske, men syntetiske testpersoner for å kvalitetssikre digitale helsetjenester uten å røre ekte persondata. SyntPop er selvbetjeningsløsningen for å finne, opprette og redigere slike testpersoner.
Jeg bygget frontend i React mot et .NET-API dokumentert med OpenAPI. SyntPop var pilot for Norsk Helsenetts nye designsystem, så jeg jobbet tett med designteamet for å få WCAG 2.1 inn fra starten. Jeg skrev også Python-script for å vaske helsedata.
React.js
TypeScript
.NET
WCAG 2.1
Python
OpenAPI / Swagger
Scrum
05
Extenda RetailSoftware engineer
Drift og modernisering av kassesystemer
Extenda Retail leverer kasse- og butikkdatasystemer til ledende dagligvarekjeder i Norge og Norden. Systemene er forretningskritiske: står de, stanser butikkdriften.
Jeg vedlikeholdt og moderniserte store .NET-systemer i daglig produksjon, fra .NET Framework 4.5 mot .NET 5. Deler var hendelsesdrevet over RabbitMQ. Teamet jobbet testdrevet, så jobben var ofte å skrive tester rundt eksisterende kode før den kunne endres trygt.
C#
.NET Framework
RabbitMQ
TDD
MySQL
.NET Core
GitHub
06
StatpedFullstackutvikler
Tastaturbo og modernisering av læringsspill
Statped lager digitale læremidler for barn og unge med særskilte behov. Tastaturbo er et skriveverktøy som brukes i skolen, ved siden av en portefølje eldre læringsspill bygget i Flash.
Jeg videreutviklet Tastaturbo og portet gamle Flash-spill til JavaScript. Arbeidet foregikk tett på pedagoger og testbrukere, og jeg brukertestet jevnlig med blinde og døve elever. Det var her jeg lærte hvordan leselister og skjermlesere faktisk brukes.
Læremidlene kunne fortsatt brukes i skolen etter at Flash ble faset ut.
JavaScript
Universell utforming
Brukertesting
HTML5
CSS
Scrum
##Erfaring
Sopra Steria/Systemutvikler
Senior fullstackutvikler ved kontoret i Drammen, hele perioden ute hos Admincontrol — sikkerhetskritisk programvare for styrer og transaksjoner.
ContentCloud/FullstackutviklerSelvstendig oppdrag
Selvstendig oppdrag på en UGC-plattform og markedsplass, fra planlegging til lansering — arkitektur og teknologivalg, design og siste finpuss.
Valgdirektoratet/Rådgiver og fullstackutvikler
Del av et mindre team som forvaltet deler av valgsystemet EVA, i tillegg til folkeavstemningsløsningen.
Capgemini/Konsulent, frontendutvikler
Utleid som frontendkonsulent, hovedsakelig til Norsk Helsenett.
Extenda Retail/System engineer
Feilsøking og feilretting i forretningskritiske legacy-systemer, ut fra kundenes egne beskrivelser.
Statped/Rådgiver og utvikler
Modernisering av læringsspill for blinde og døve elever, blant annet porting fra Flash til JavaScript.
##Kompetanse
Til daglig
TypeScript
React
Next.js
Tailwind CSS
HTML
CSS
.NET (C#)
PostgreSQL
Git
Komfortabel med
REST-API
Vue.js
Nuxt
OIDC og autentisering
WCAG 2.1
Semantisk HTML og ARIA
Supabase
Brukertesting
GitHub Actions
Scrum
OpenAPI / Swagger
TDD
Kjent med
Python
Kotlin
RabbitMQ
Azure
i18n
Docker
Universell utforming er ikke en avkrysningsboks for meg. Jeg har jobbet med WCAG 2.1 på tvers av offentlig sektor, helse og utdanning, brukertestet med blinde og døve brukere, og vært med på å bygge designsystemer der kravene er lagt inn fra starten i stedet for etterpå.
##Utdannelse
2015–2018
Bachelor i informatikk, NTNU
Valgfag innen frontendutvikling og design. Bacheloroppgave om personvern og sikkerhet på nett.