[{"data":1,"prerenderedAt":693},["ShallowReactive",2],{"navigation":3,"referencer":35},[4,11,17,23,29],{"fields":5,"sys":9},{"navigationTitle":6,"slug":7,"external":8},"Om Nicky","nicky-christensen",false,{"id":10},"nav-1",{"fields":12,"sys":15},{"navigationTitle":13,"slug":14,"external":8},"Udvalgte projekter","referencer",{"id":16},"nav-2",{"fields":18,"sys":21},{"navigationTitle":19,"slug":20,"external":8},"Blog","blog",{"id":22},"nav-blog",{"fields":24,"sys":27},{"navigationTitle":25,"slug":26,"external":8},"Hvad koster det?","projekt-estimator",{"id":28},"nav-estimator",{"fields":30,"sys":33},{"navigationTitle":31,"slug":32,"external":8},"Kontakt","kontakt",{"id":34},"nav-3",{"cases":36,"page":525,"pageModules":634},[37,72,99,145,191,227,262,298,328,372,410,451,488],{"fields":38,"sys":65},{"slug":39,"title":40,"role":41,"shortDescription":42,"location":43,"technical":44,"url":51,"responsibility":52,"aboutTheProject":53,"thumbnailCaseImage":54,"images":58,"seoTitle":59,"seoDescription":60,"relatedCase":61},"harness-idp","Harness IDP — Environment Management","Staff Software Engineer II","Enterprise-platform der giver udviklere selvbetjent kontrol over environments, services og infrastruktur. Jeg havde det tekniske ejerskab over frontenden og byggede brugeroplevelsen i React fra bunden.","Harness",[45,46,47,48,49,50],"React","TypeScript","Kubernetes","Infrastructure as Code","RBAC","CI\u002FCD","https:\u002F\u002Fdeveloper.harness.io\u002Fdocs\u002Finternal-developer-portal\u002Fenvironment-management\u002Foverview\u002F","Som Staff Software Engineer II havde jeg det fulde tekniske ejerskab over frontenden på Harness' Environment Management-platform.\n\n- Satte den tekniske retning og arkitektur for hele frontend-laget\n- Byggede brugeroplevelsen i React og TypeScript — fra komplekse domænekoncepter som environments, pipelines og infrastruktur til klare, intuitive UI-mønstre\n- Samarbejdede tæt med produkt, backend og platform-teams om at sikre korrekthed og brugervenlighed\n- Etablerede frontend-standarder der skalerede på tværs af flere teams og featureområder","Harness er en af verdens førende platforme til software delivery og DevOps — brugt af enterprise-virksomheder til at automatisere deres udviklingsprocesser. Environment Management er en central del af deres Internal Developer Portal (IDP).\n\nPlatformen giver udviklere og platform engineers mulighed for at oprette, konfigurere og administrere environments fra ét samlet kontrolpunkt. Hvert environment er en sammensætning af services, CD-pipelines og infrastruktur — provisioneret automatisk gennem Infrastructure-as-Code.\n\nDen store udfordring var at gøre noget inherent komplekst — infrastruktur, permissions, pipeline-orkestrering og lifecycle management — tilgængeligt og overskueligt i en brugerflade. Det krævede en frontend der kunne håndtere dyb domænekompleksitet uden at gå på kompromis med brugervenligheden.\n\nDet er den type problem jeg trives med: at tage komplekse tekniske domæner og oversætte dem til interfaces der føles enkle og intuitive.",{"fields":55},{"file":56},{"url":57},"\u002Fimages\u002Fcases\u002Fharness-placeholder.png",[],"Harness IDP — Environment Management (Case)","Staff Software Engineer II hos Harness. Teknisk ejerskab over frontenden på Environment Management-platformen — bygget i React og TypeScript.",{"fields":62},{"slug":63,"title":64},"rig-dev","Rig.dev",{"id":66,"createdAt":67,"updatedAt":68,"contentType":69},"case-harness","2025-02-01T10:00:00Z","2026-03-01T10:00:00Z",{"sys":70},{"id":71},"caseItem",{"fields":73,"sys":94},{"slug":63,"title":74,"role":75,"shortDescription":76,"location":64,"technical":77,"url":82,"responsibility":83,"aboutTheProject":84,"thumbnailCaseImage":85,"images":89,"seoTitle":90,"seoDescription":91,"relatedCase":92},"Rig.dev — Kubernetes Application Platform","Frontend Tech Lead","Open-source platform der gør Kubernetes tilgængeligt for udviklere. Jeg ledte frontend-arkitekturen og byggede det centrale dashboard til at deploye, overvåge og skalere applikationer. Rig blev efterfølgende opkøbt.",[78,46,47,79,80,50,81],"Vue","Go","Docker","gRPC","https:\u002F\u002Frig.dev","Som Frontend Tech Lead havde jeg det fulde ansvar for frontend-arkitektur og leverance på Rig-platformen.\n\n- Ledte arkitekturbeslutninger og satte frontend-standarder for hele teamet\n- Byggede platformens dashboard — det centrale kontrolpanel til deployments, applikationer og capsules\n- Formede produktets retning i tæt samarbejde med DevEx, backend og design\n- Sikrede en frontend-arkitektur der kunne vokse med produktet — fra tidlig startup til opkøb","Rig.dev er en open-source application platform der gør Kubernetes tilgængeligt for almindelige udviklere — uden at de behøver være infrastruktur-eksperter. Platformen abstraherer kompleksiteten væk og giver et enkelt interface til at deploye, debugge og skalere applikationer.\n\nDerudover tilbyder Rig API'er til user management, autentificering, storage og database-integrationer — alt det en applikation typisk har brug for ud over selve deploymentet.\n\nMit fokus var at bygge dashboardet: det visuelle kontrolpanel hvor udviklere styrer deres applikationer, overvåger deployments og administrerer ressourcer. Sammen med CLI og CI\u002FCD-pipelines (GitHub Actions-integration) udgør det den samlede developer experience.\n\nRig.dev blev efterfølgende opkøbt — et bevis på at produktet og teknologien havde reel markedsværdi.",{"fields":86},{"file":87},{"url":88},"\u002Fimages\u002Fcases\u002Frig-placeholder.png",[],"Rig.dev — Open-Source Kubernetes Platform (Case)","Frontend Tech Lead hos Rig.dev — en open-source Kubernetes-platform. Byggede dashboardet og ledte frontend-arkitekturen. Rig blev efterfølgende opkøbt.",{"fields":93},{"slug":39,"title":40},{"id":95,"createdAt":96,"updatedAt":67,"contentType":97},"case-rig","2023-05-01T10:00:00Z",{"sys":98},{"id":71},{"fields":100,"sys":139},{"slug":101,"title":102,"role":103,"shortDescription":104,"location":102,"technical":105,"url":113,"responsibility":114,"aboutTheProject":115,"thumbnailCaseImage":116,"images":120,"seoTitle":137,"seoDescription":138},"playable-platform","Playable","Frontend Team Lead & Tech Lead","Gamification-platform til marketing — brugt af brands til at bygge interaktive kampagner, spil og landing pages. Jeg ledte frontend-teamet og stod for den tekniske omskrivning af hele platformen.",[106,107,108,109,110,111,112],"Vue3","Pinia","Typescript","AWS","Game Development","Single Page Application","Vuex","https:\u002F\u002Fplayable.com","Som Frontend Team Lead & Tech Lead havde jeg det fulde tekniske ejerskab over frontenden på Playables SaaS-platform.\n\n- Ledte frontend-teamet og satte teknisk retning, standarder og arkitektur\n- Drev den komplette omskrivning af platformen fra legacy-kode til Vue 3 + TypeScript\n- Sikrede frontend-integration med backend, game engine og eksterne systemer\n- Etablerede code review-processer, teststrategier og CI\u002FCD pipelines\n- Samarbejdede tæt med produkt, design og backend om prioritering og tekniske trade-offs","Playable er en gamification-platform, der gør det muligt for brands at bygge interaktive kampagner, spil, popups og landing pages — og integrere dem direkte i deres marketing.\n\nPlatformen er brugt af store virksomheder og bureauer til at skabe engagement på tværs af kunderejsen. Med en avanceret kampagne-bygger kan brugerne skabe alt fra simple popups til komplekse spil-baserede kampagner, der kører på eget domæne, som embedded popups eller via iframes.\n\nDa jeg kom til Playable, stod platformen over for en større teknisk omskrivning. Jeg tog ejerskab over processen, definerede den nye arkitektur baseret på Vue 3 og TypeScript, og ledte teamet igennem migrationen — samtidig med at vi leverede nye features og holdt platformen stabil i produktion.",{"fields":117},{"file":118},{"url":119},"\u002Fimages\u002Fcontentful\u002Foverview-playable.png",[121,125,129,133],{"fields":122},{"file":123},{"url":124},"\u002Fimages\u002Fcontentful\u002Fplayable-1.png",{"fields":126},{"file":127},{"url":128},"\u002Fimages\u002Fcontentful\u002Fplayable-2.png",{"fields":130},{"file":131},{"url":132},"\u002Fimages\u002Fcontentful\u002Fplayable-3.png",{"fields":134},{"file":135},{"url":136},"\u002Fimages\u002Fcontentful\u002Fplayable-4.png","Playable — Gamification SaaS-platform (Case)","Som Frontend Team Lead ledte jeg omskrivningen af Playables gamification-platform til Vue 3 og TypeScript. Se case og tekniske detaljer.",{"id":140,"createdAt":141,"updatedAt":142,"contentType":143},"case-playable","2021-06-15T10:00:00Z","2023-11-01T10:00:00Z",{"sys":144},{"id":71},{"fields":146,"sys":185},{"slug":147,"title":148,"role":149,"shortDescription":150,"location":151,"technical":152,"responsibility":160,"aboutTheProject":161,"thumbnailCaseImage":162,"images":166,"seoTitle":183,"seoDescription":184},"sysmon-grundfos","Grundfos SYSMON","Lead Frontend Developer","IoT-platform til overvågning og fjernbetjening af industrisystemer. Vandt 5 priser, herunder en Red Dot Award. Jeg definerede frontend-arkitekturen og ledte frontend-udviklingen.","Creuna",[78,112,153,154,111,155,156,157,158,159],"ES6","Javascript","HTML","CSS","Highcharts","GIT","Google Maps","Jeg havde lead-rollen på frontend fra dag ét og var ansvarlig for de teknologiske valg og arkitekturen.\n\n- Definerede frontend-arkitekturen som en SPA baseret på Vue\u002FVuex\n- Byggede en frontend der kunne håndtere ekstreme datamængder med høj performance\n- Samarbejdede tæt med UX, design og 2 andre frontend-udviklere\n- Sikrede at koden var skalerbar, optimeret og hurtig nok til real-time data\n- Bidrog til en løsning der vandt 5 priser, herunder en Red Dot Award","SYSMON er Grundfos' platform til overvågning og analyse af industrisystemer. Den giver fabrikanter nem adgang til fjernbetjening, support og real-time data — i en løsning der føles elegant og enkel, trods den tekniske kompleksitet.\n\nApplikationen skulle håndtere massive datamængder i realtid, visualiseret gennem Highcharts og Google Maps. Det stillede høje krav til performance og skalerbarhed i frontenden.\n\nI tæt samarbejde med Grundfos' team og kollegaer hos Creuna udviklede vi et produkt, der var nyskabende nok til at vinde 5 internationale priser — heriblandt en Red Dot Award. Et af de projekter, jeg er mest stolt af i min karriere.",{"fields":163},{"file":164},{"url":165},"\u002Fimages\u002Fcontentful\u002Foverview-sysmon.jpg",[167,171,175,179],{"fields":168},{"file":169},{"url":170},"\u002Fimages\u002Fcontentful\u002Fsysmon-1.jpg",{"fields":172},{"file":173},{"url":174},"\u002Fimages\u002Fcontentful\u002Fsysmon-2.jpg",{"fields":176},{"file":177},{"url":178},"\u002Fimages\u002Fcontentful\u002Fsysmon-3.jpg",{"fields":180},{"file":181},{"url":182},"\u002Fimages\u002Fcontentful\u002Fsysmon-4.jpg","Grundfos SYSMON — IoT-platform (Case)","Lead Frontend Developer på Grundfos SYSMON — en prisvindende IoT-platform til overvågning af industrisystemer. Vandt Red Dot Award.",{"id":186,"createdAt":187,"updatedAt":188,"contentType":189},"case-sysmon","2019-01-10T10:00:00Z","2023-10-15T10:00:00Z",{"sys":190},{"id":71},{"fields":192,"sys":221},{"slug":193,"title":194,"role":195,"shortDescription":196,"location":197,"technical":198,"url":207,"responsibility":208,"aboutTheProject":209,"thumbnailCaseImage":210,"images":214,"seoTitle":219,"seoDescription":220},"athena-cms-case","White Label SaaS-platform — Survey Association","Head of Development & Fullstack","Custom-bygget SaaS-platform til spørgeskemaer, rapportgenerering og dataanalyse. Jeg havde det fulde tekniske ansvar — fra arkitektur og teamledelse til udvikling.","Freelance",[199,200,201,202,203,204,154,155,156,205,206],"VueJS","Apollo","GraphQL","Netlify","Google App Engine","Cloudinary","Vuetify","Google Firestore","http:\u002F\u002Fcms.athenasurveys.com\u002F","Som Head of Development havde jeg ansvaret for hele den tekniske leverance — fra tilbudsskrivning til lancering.\n\n- Fuldt teknisk ejerskab: arkitektur, teknologivalg og kvalitetssikring\n- Ledelse af udviklingsteamet med ansvar for fremdrift og levering\n- Byggede hele frontend-laget med Vue, Apollo og GraphQL\n- Designede API-laget med GraphQL oven på Google Firestore\n- Stod for projektledelse, tilbudsskrivning og kundemøder","Survey Association havde brug for en white label SaaS-platform, der kunne lade deres kunder oprette spørgeskemaer, generere rapporter og analysere surveydata.\n\nPlatformen er custom-bygget med Vue, Apollo og GraphQL i frontenden, og Google Firestore og App Engine i backend. Vi byggede et GraphQL-mellemlag, der gav frontenden et hurtigt og fleksibelt API — en arkitekturbeslutning der viste sig afgørende for platformens skalerbarhed.\n\nCMS-delen er koblet sammen med flere progressive web apps (PWA'er), som bruges af surveyors i felten. Hele systemet hostes via Netlify og Google Cloud.",{"fields":211},{"file":212},{"url":213},"\u002Fimages\u002Fcontentful\u002Fathena-cms.png",[215],{"fields":216},{"file":217},{"url":218},"\u002Fimages\u002Fcontentful\u002Fathena-cms-portfolio.png","White Label SaaS-platform — Survey Association (Case)","Head of Development på en custom SaaS-platform til spørgeskemaer og dataanalyse. Bygget med Vue, GraphQL og Google Cloud.",{"id":222,"createdAt":223,"updatedAt":224,"contentType":225},"case-athena-cms","2020-03-01T10:00:00Z","2023-09-01T10:00:00Z",{"sys":226},{"id":71},{"fields":228,"sys":256},{"slug":229,"title":230,"role":75,"shortDescription":231,"location":232,"technical":233,"url":238,"responsibility":239,"aboutTheProject":240,"thumbnailCaseImage":241,"images":245,"seoTitle":254,"seoDescription":255},"enversion-case","Enversion — Brand Website","Moderne brand website til SaaS-virksomheden Enversion, bygget med Nuxt og hostet på Netlify. Jeg stod for den tekniske arkitektur og frontend-udviklingen.","Enversion",[199,234,202,235,236,154,80,237],"NuxtJS","Azure","Zapier","Contentful","https:\u002F\u002Fenversion.com","Som Frontend Tech Lead hos Enversion var jeg ansvarlig for de tekniske valg og arkitekturen bag virksomhedens online tilstedeværelse.\n\n- Definerede tech stack og arkitektur for brand websitet\n- Byggede løsningen med Nuxt for optimal SEO og performance\n- Opsatte CI\u002FCD pipeline med Netlify og Docker\n- Integrerede Contentful som headless CMS til indholdsadministration\n- Automatiserede workflows med Zapier og Azure","Enversion er en SaaS-virksomhed der havde brug for et brand website, der kommunikerede deres produkter og vision professionelt.\n\nJeg byggede løsningen med Nuxt (Vue.js) for at sikre god SEO, hurtig loading og en moderne udvikleroplevelse. Contentful blev valgt som headless CMS, så marketing-teamet kunne opdatere indhold uafhængigt af udviklerne.\n\nSitet hostes på Netlify med automatiske deploys og er integreret med Azure og Zapier til automatisering af interne workflows.",{"fields":242},{"file":243},{"url":244},"\u002Fimages\u002Fcontentful\u002Fenversion-case-thumb.jpg",[246,250],{"fields":247},{"file":248},{"url":249},"\u002Fimages\u002Fcontentful\u002Fenversion-case-1.png",{"fields":251},{"file":252},{"url":253},"\u002Fimages\u002Fcontentful\u002Fenversion-case-2.png","Enversion — Brand Website (Case)","Frontend Tech Lead på Enversions brand website. Bygget med Nuxt og hostet på Netlify med fokus på performance og SEO.",{"id":257,"createdAt":258,"updatedAt":259,"contentType":260},"case-enversion","2020-11-01T10:00:00Z","2023-08-01T10:00:00Z",{"sys":261},{"id":71},{"fields":263,"sys":292},{"slug":264,"title":265,"role":75,"shortDescription":266,"location":267,"technical":268,"url":270,"responsibility":271,"aboutTheProject":272,"thumbnailCaseImage":273,"images":277,"seoTitle":290,"seoDescription":291},"kaunt-case","kaunt — Automatisk bogføring med AI","AI-drevet bogføringsplatform der automatiserer regnskab for små virksomheder. Jeg var ansvarlig for frontend-arkitekturen og tekniske standarder.","Freelance \u002F Enversion",[78,154,108,269,201,234],"Node JS","https:\u002F\u002Fkaunt.com","Som Frontend Tech Lead havde jeg ansvar for den tekniske retning og arkitektur på kaunt-platformen.\n\n- Definerede frontend-arkitekturen med Vue, TypeScript og GraphQL\n- Satte tekniske standarder og best practices for teamet\n- Byggede brugergrænsefladen der gør automatisk bogføring tilgængelig for ikke-regnskabsfolk\n- Samarbejdede med backend-teamet om API-design og dataflow","kaunt er en platform der bruger kunstig intelligens til at automatisere bogføring. Den webbaserede løsning giver virksomhedsejere og bogholdere et klart overblik over hvad der er bogført, hvornår og hvordan.\n\nUdfordringen var at gøre noget komplekst (regnskab og AI) tilgængeligt og intuitivt for brugere, der ikke nødvendigvis har regnskabsbaggrund. Frontenden er bygget med Vue og GraphQL for at sikre hurtig data-loading og en responsiv brugeroplevelse.",{"fields":274},{"file":275},{"url":276},"\u002Fimages\u002Fcontentful\u002Fkaunt-case-thumb.jpg",[278,282,286],{"fields":279},{"file":280},{"url":281},"\u002Fimages\u002Fcontentful\u002Fkaunt-case-1.png",{"fields":283},{"file":284},{"url":285},"\u002Fimages\u002Fcontentful\u002Fkaunt-case-2.png",{"fields":287},{"file":288},{"url":289},"\u002Fimages\u002Fcontentful\u002Fkaunt-case-3.png","kaunt — AI Bogføringsplatform (Case)","Frontend Tech Lead på kaunt — en AI-drevet bogføringsplatform. Ansvarlig for frontend-arkitektur og udvikling.",{"id":293,"createdAt":294,"updatedAt":295,"contentType":296},"case-kaunt","2020-09-01T10:00:00Z","2023-07-01T10:00:00Z",{"sys":297},{"id":71},{"fields":299,"sys":322},{"slug":300,"title":301,"role":302,"shortDescription":303,"location":197,"technical":304,"url":308,"responsibility":309,"aboutTheProject":310,"thumbnailCaseImage":311,"images":315,"seoTitle":320,"seoDescription":321},"athena-app","Survey App — Online\u002Foffline inspektionsværktøj","Head of Development","Progressive web app til skibssyn, der fungerer online og offline. Jeg havde det fulde tekniske ansvar — fra arkitektur til projektledelse og udvikling.",[199,200,201,154,305,204,202,155,306,307],"IndexedDB","SCSS","Google Cloud","https:\u002F\u002Fsac.athenasurveys.com\u002F","Som Head of Development havde jeg det overordnede ansvar for hele projektet — ikke bare koden.\n\n- Fuldt teknisk ejerskab: arkitektur, teknologivalg, kvalitetssikring\n- Projektledelse, tilbudsskrivning og kundemøder\n- Byggede hele frontenden med Vue, Apollo og GraphQL\n- Implementerede offline-funktionalitet med IndexedDB\n- Ledelse af udviklingsprocessen fra koncept til lancering","Survey Association havde brug for en app, der lader surveyors udføre skibssyn direkte fra en tablet eller telefon — også uden internetforbindelse ude på havet.\n\nApp'en er bygget som en progressive web app (PWA) med Vue og Apollo\u002FGraphQL. Det centrale tekniske krav var offline-funktionalitet: brugerne skal kunne udfylde spørgeskemaer, uploade billeder og gemme data lokalt — og synkronisere automatisk, når forbindelsen vender tilbage.\n\nApp'en kommunikerer med den tilhørende SaaS-platform (Athena CMS), som jeg også udviklede. Sammen udgør de en komplet løsning til digital inspektion i maritime miljøer.",{"fields":312},{"file":313},{"url":314},"\u002Fimages\u002Fcontentful\u002Fathena-app-overview.png",[316],{"fields":317},{"file":318},{"url":319},"\u002Fimages\u002Fcontentful\u002Fathena-app-portfolio.png","Survey App — Online\u002FOffline Inspektionsværktøj (Case)","Head of Development på en progressive web app til skibssyn der fungerer online og offline. Bygget med Vue og Firebase.",{"id":323,"createdAt":324,"updatedAt":325,"contentType":326},"case-athena-app","2020-02-01T10:00:00Z","2023-06-01T10:00:00Z",{"sys":327},{"id":71},{"fields":329,"sys":367},{"slug":330,"title":331,"role":332,"shortDescription":333,"location":197,"technical":334,"url":341,"responsibility":342,"aboutTheProject":343,"thumbnailCaseImage":344,"images":348,"seoTitle":365,"seoDescription":366},"ny-hjemmeside-til-unlimited-performance","Unlimited Performance","Fullstack Developer & Designer","Komplet redesign og udvikling af website til personlige trænere i Aalborg. Resulterede i stødt voksende trafik, flere leads og en Page Speed score på 100\u002F100.",[335,155,154,336,337,338,306,339,340],"WebDesign","Umbraco","jQuery","Gulp","BEM","Razor","https:\u002F\u002Funlimitedperformance.dk","Jeg havde det fulde ansvar for projektet — fra design til backend.\n\n- Designede og udviklede hele websitet fra bunden\n- Byggede løsningen på Umbraco CMS med custom moduler\n- Optimerede performance til en Page Speed score på 100\u002F100\n- Implementerede online spørgeskemaer der reducerede administrationstid for nye klienter\n- Sikrede responsivt design og SEO-optimering","Unlimited Performance er et personlig træning-firma i Aalborg, der ønskede en stærk online profil for at tiltrække flere kunder og etablere sig som de førende trænere i byen.\n\nJeg designede og udviklede et komplet website med fokus på tre ting: hastighed, leadgenerering og troværdighed. Resultatet er et site der scorer 100\u002F100 i Page Speed, har et klientgalleri og blog til thought leadership, samt online spørgeskemaer der har reduceret den administrative opstartstid for nye klienter.\n\nSiden lanceringen har trafikken været stødt voksende, og Unlimited Performance modtager flere henvendelser via websitet end nogensinde før.",{"fields":345},{"file":346},{"url":347},"\u002Fimages\u002Fcontentful\u002Foverview-up.jpg",[349,353,357,361],{"fields":350},{"file":351},{"url":352},"\u002Fimages\u002Fcontentful\u002Fup-pagespeed.png",{"fields":354},{"file":355},{"url":356},"\u002Fimages\u002Fcontentful\u002Fup-1.jpg",{"fields":358},{"file":359},{"url":360},"\u002Fimages\u002Fcontentful\u002Fup-2.jpg",{"fields":362},{"file":363},{"url":364},"\u002Fimages\u002Fcontentful\u002Fup-3.jpg","Unlimited Performance — Website Redesign (Case)","Komplet redesign og udvikling af website til personlige trænere. Resulterede i voksende trafik og flere leads.",{"id":368,"createdAt":369,"updatedAt":96,"contentType":370},"case-up","2019-06-01T10:00:00Z",{"sys":371},{"id":71},{"fields":373,"sys":404},{"slug":374,"title":375,"role":149,"shortDescription":376,"location":151,"technical":377,"url":382,"responsibility":383,"aboutTheProject":384,"thumbnailCaseImage":385,"images":389,"seoTitle":402,"seoDescription":403},"shop-vestas-webshop","Shop Vestas","Verdens største e-handelsplatform for vindmøllereservedele med 25.000+ varenumre i 6 sprog. Jeg overtog som Lead Frontend og drev migrering fra AngularJS til Vue.",[378,379,380,340,381,155,306,339,154],"Vue.js","Webpack","AngularJS","Episerver","https:\u002F\u002Fshop.vestas.com\u002Fen","Jeg startede som frontend-udvikler og avancerede til Lead Frontend med ansvar for hele frontenden.\n\n- Teknisk ejerskab over frontenden på en enterprise-platform i 6 sprog\n- Drev migrering af kodebasen fra AngularJS til Vue.js\n- Udviklede et designsystem baseret på Fractal til brug på tværs af Vestas' digitale projekter\n- Kontinuerligt fokus på UX, tilgængelighed og performance-optimering\n- Ensrettede frontend-arkitekturen mod Cross Channel på tværs af Vestas' platforme","Shop Vestas er Vestas' e-handelsplatform, hvor kunder kan identificere og bestille reservedele til deres vindmøller. Med over 25.000 varenumre og 6 sprogversioner er det den største e-handelsløsning indenfor vindmøllereservedele.\n\nPlatformen er bygget på Episerver, integreret med Vestas' SAP-setup, hvorfra det massive produktkatalog bliver trukket. Løsningen er stor, stabil og skalerbar — og kræver en frontend der kan håndtere kompleksiteten.\n\nEn central opgave var migreringen fra AngularJS til Vue.js, som vi gennemførte sideløbende med nyudvikling. Derudover udviklede vi et komponentbaseret designsystem med Fractal, der sikrer konsistens på tværs af Vestas' digitale projekter.",{"fields":386},{"file":387},{"url":388},"\u002Fimages\u002Fcontentful\u002Foverview-vestas.jpg",[390,394,398],{"fields":391},{"file":392},{"url":393},"\u002Fimages\u002Fcontentful\u002Fvestas-1.jpg",{"fields":395},{"file":396},{"url":397},"\u002Fimages\u002Fcontentful\u002Fvestas-2.jpg",{"fields":399},{"file":400},{"url":401},"\u002Fimages\u002Fcontentful\u002Fvestas-3.jpg","Shop Vestas — E-handelsplatform med 25.000+ Produkter (Case)","Lead Frontend Developer på verdens største e-handelsplatform for vindmøllereservedele. 25.000+ varenumre i 6 sprog.",{"id":405,"createdAt":406,"updatedAt":407,"contentType":408},"case-vestas","2019-03-01T10:00:00Z","2023-04-01T10:00:00Z",{"sys":409},{"id":71},{"fields":411,"sys":445},{"slug":412,"title":413,"role":414,"shortDescription":415,"location":416,"technical":417,"url":419,"responsibility":420,"aboutTheProject":421,"thumbnailCaseImage":422,"images":426,"seoTitle":443,"seoDescription":444},"dbu-redesign","DBU.dk — Redesign","Frontend Developer","Responsivt redesign af Dansk Boldspil-Unions website. Jeg implementerede det nye design i frontenden med AngularJS til søgning, filtrering og datahentning fra eksterne API'er.","DIS\u002FPLAY",[380,155,418,154,306,337],"Integrering","https:\u002F\u002Fdbu.dk","Min primære rolle var at implementere det nye responsive design i frontenden.\n\n- Implementerede det nye design på den eksisterende Sitecore-platform\n- Byggede dynamiske funktionaliteter med AngularJS: søgning, filtrering og datarendering\n- Integrerede eksterne API'er til resultater, statistikker og turneringsdata via SportSys\n- Udviklede subsites som DBU Trænerlounge","I 2016 fik DBU.dk et tiltrængt facelift. Det gamle design var forældet og ikke mobilvenligt — men indholdet og den underliggende Sitecore-platform skulle bevares.\n\nOpgaven var at implementere et nyt, responsivt design oven på den eksisterende løsning. AngularJS blev brugt til de dynamiske dele: søgning, filtrering, rendering af kampresultater og integration med SportSys til levering af statistikker og turneringsdata.\n\nUdover hovedsitet udviklede jeg også subsites som DBU Trænerlounge.",{"fields":423},{"file":424},{"url":425},"\u002Fimages\u002Fcontentful\u002Foverview-dbu.jpg",[427,431,435,439],{"fields":428},{"file":429},{"url":430},"\u002Fimages\u002Fcontentful\u002Fdbu-1.jpg",{"fields":432},{"file":433},{"url":434},"\u002Fimages\u002Fcontentful\u002Fdbu-2.jpg",{"fields":436},{"file":437},{"url":438},"\u002Fimages\u002Fcontentful\u002Fdbu-3.jpg",{"fields":440},{"file":441},{"url":442},"\u002Fimages\u002Fcontentful\u002Fdbu-4.jpg","DBU.dk — Responsivt Redesign (Case)","Frontend Developer på det responsive redesign af Dansk Boldspil-Unions website. Implementeret med AngularJS.",{"id":446,"createdAt":447,"updatedAt":448,"contentType":449},"case-dbu","2019-01-15T10:00:00Z","2023-03-01T10:00:00Z",{"sys":450},{"id":71},{"fields":452,"sys":482},{"slug":453,"title":454,"role":455,"shortDescription":456,"location":416,"technical":457,"url":460,"responsibility":461,"aboutTheProject":462,"thumbnailCaseImage":463,"images":467,"seoTitle":480,"seoDescription":481},"amnesty-hjemmeside","Amnesty Danmark","Frontend Developer & Umbraco Developer","Responsivt website til Amnesty Danmark med fokus på kunderejse, medlemsengagement og donationskonvertering. Jeg udviklede frontend og backend i et tæt tværfagligt samarbejde.",[336,340,458,155,154,338,306,459],"C#","Integration","https:\u002F\u002Famnesty.dk","Min rolle dækkede både frontend-udvikling, backend og Umbraco-implementering.\n\n- Udviklede frontenden i samarbejde med kollegaer\n- Implementerede frontend-komponenter i Umbraco CMS\n- Byggede custom moduler, herunder en Twitter-integration i C#\n- Deltog i konceptudvikling i et War Room-setup med UX og design\n- Fulgte scrum-baseret udviklingsproces gennem hele projektet","Amnesty Danmarks website skulle styrke den digitale kunderejse med fokus på medlemsaktivering, oplysning og donationskonvertering.\n\nProjektet startede med et konceptforløb i et War Room, hvor UX, design og frontend samarbejdede tæt om at definere oplevelsen. Derefter fulgte den tekniske udvikling på Umbraco, hvor vi arbejdede i sprints med en scrum-baseret tilgang.\n\nJeg bidrog på tværs af frontend og backend — fra markup og styling til Umbraco-implementering og custom C#-moduler som en Twitter-integration.",{"fields":464},{"file":465},{"url":466},"\u002Fimages\u002Fcontentful\u002Foverview-amnesty.jpg",[468,472,476],{"fields":469},{"file":470},{"url":471},"\u002Fimages\u002Fcontentful\u002Famnesty-1.jpg",{"fields":473},{"file":474},{"url":475},"\u002Fimages\u002Fcontentful\u002Famnesty-2.jpg",{"fields":477},{"file":478},{"url":479},"\u002Fimages\u002Fcontentful\u002Famnesty-3.jpg","Amnesty Danmark — Website (Case)","Frontend og Umbraco-udvikling til Amnesty Danmark. Fokus på medlemsengagement, donationskonvertering og tilgængelighed.",{"id":483,"createdAt":484,"updatedAt":485,"contentType":486},"case-amnesty","2019-01-05T10:00:00Z","2023-02-01T10:00:00Z",{"sys":487},{"id":71},{"fields":489,"sys":519},{"slug":490,"title":491,"role":455,"shortDescription":492,"location":493,"technical":494,"url":497,"responsibility":498,"aboutTheProject":499,"thumbnailCaseImage":500,"images":504,"seoTitle":517,"seoDescription":518},"cinemaxx-website","CinemaxX — Website & Online Booking","Website med online booking og kundeklub til en af Danmarks største biografkæder. Jeg stod for frontend-udvikling, performance-optimering og Umbraco-implementering.","DIS\u002FPLAY (AKQA)",[155,306,380,495,336,154,340,496],"YouTube Integration","Performance Optimering","https:\u002F\u002Fcinemaxx.dk","Min rolle var centreret om frontend-udvikling og performance.\n\n- Frontend-udvikling med fokus på hastighed og brugeroplevelse\n- Performance-optimering af hele websitet\n- Implementering af frontend-komponenter i Umbraco CMS\n- Udvikling af YouTube-integration og andre JavaScript-funktionaliteter\n- Markup og styling med fokus på tværbrowser-kompatibilitet","CinemaxX er en af Danmarks største biografkæder med sale i Aarhus, København og Odense. Deres online platform er central for billetsalg, filminfo og kundeklub.\n\nJeg var med til at udvikle platformen hos DIS\u002FPLAY (AKQA) med fokus på frontend-performance og brugeroplevelse. Et nøglefokus var at sikre hurtige indlæsningstider, da platformen skulle håndtere peak-trafik ved populære premierer.\n\nDerudover implementerede jeg frontend-komponenter i Umbraco og byggede integrationer til YouTube til trailers og andet videoindhold.",{"fields":501},{"file":502},{"url":503},"\u002Fimages\u002Fcontentful\u002Foverview-cinemaxx.jpg",[505,509,513],{"fields":506},{"file":507},{"url":508},"\u002Fimages\u002Fcontentful\u002Fcinemaxx-1.jpg",{"fields":510},{"file":511},{"url":512},"\u002Fimages\u002Fcontentful\u002Fcinemaxx-2.jpg",{"fields":514},{"file":515},{"url":516},"\u002Fimages\u002Fcontentful\u002Fcinemaxx-3.jpg","CinemaxX — Website & Online Booking (Case)","Frontend-udvikling og performance-optimering til CinemaxX biografkæde. Website med online booking og kundeklub.",{"id":520,"createdAt":521,"updatedAt":522,"contentType":523},"case-cinemaxx","2019-01-01T10:00:00Z","2023-01-01T10:00:00Z",{"sys":524},{"id":71},{"fields":526,"sys":629},{"seoTitle":527,"seoDescription":528,"modules":529},"Udvalgte projekter - Nicky Christensen","Se mine projekter: Fra Grundfos (Red Dot Award) til Vestas og Playable. Teknisk ansvar og ejerskab på tværs af SaaS, e-commerce og enterprise.",[530,615],{"fields":531,"sys":610},{"heading":532,"brandsText":533,"logos":534},"Jeg har blandt andet arbejdet med","",[535,541,547,554,561,568,575,582,589,596,603],{"fields":536,"sys":539},{"title":232,"file":537},{"url":538},"\u002Fimages\u002Fcontentful\u002Fenversion-logo.png",{"id":540},"brand-1",{"fields":542,"sys":545},{"title":151,"file":543},{"url":544},"\u002Fimages\u002Fcontentful\u002Fcreuna-logo.png",{"id":546},"brand-2",{"fields":548,"sys":552},{"title":549,"file":550},"Grundfos",{"url":551},"\u002Fimages\u002Fcontentful\u002Fgrundfos-logo.png",{"id":553},"brand-3",{"fields":555,"sys":559},{"title":556,"file":557},"AKQA",{"url":558},"\u002Fimages\u002Fcontentful\u002Fakqa-logo.png",{"id":560},"brand-4",{"fields":562,"sys":566},{"title":563,"file":564},"Vestas",{"url":565},"\u002Fimages\u002Fcontentful\u002Fvestas-logo.png",{"id":567},"brand-5",{"fields":569,"sys":573},{"title":570,"file":571},"AccuRanker",{"url":572},"\u002Fimages\u002Fcontentful\u002Faccuranker-logo.png",{"id":574},"brand-6",{"fields":576,"sys":580},{"title":577,"file":578},"DSB",{"url":579},"\u002Fimages\u002Fcontentful\u002Flogo-dsb.png",{"id":581},"brand-7",{"fields":583,"sys":587},{"title":584,"file":585},"DAFI",{"url":586},"\u002Fimages\u002Fcontentful\u002Flogo-dafi.png",{"id":588},"brand-8",{"fields":590,"sys":594},{"title":591,"file":592},"LeoPharma",{"url":593},"\u002Fimages\u002Fcontentful\u002Flogo-leopharma.png",{"id":595},"brand-9",{"fields":597,"sys":601},{"title":598,"file":599},"Viborg Kommune",{"url":600},"\u002Fimages\u002Fcontentful\u002Flogo-viborgkommune.png",{"id":602},"brand-10",{"fields":604,"sys":608},{"title":605,"file":606},"Børnefonden",{"url":607},"\u002Fimages\u002Fcontentful\u002Flogo-boernefonden.png",{"id":609},"brand-11",{"id":611,"contentType":612},"brands-grid-1",{"sys":613},{"id":614},"brandsGrid",{"fields":616,"sys":624},{"title":617,"content":618,"linkText":619,"linkInternally":620},"Har du et projekt, der kræver en erfaren udvikler?","Lad os tage en uforpligtende snak om dine udfordringer og finde ud af, om jeg er den rette til at hjælpe.","Tag kontakt",{"fields":621,"sys":622},{"slug":32},{"id":623},"page-kontakt",{"id":625,"contentType":626},"cta-block-1",{"sys":627},{"id":628},"ctaBlock",{"id":630,"contentType":631},"case-page-1",{"sys":632},{"id":633},"casePage",[635,685],{"fields":636,"sys":682},{"heading":532,"brandsText":533,"logos":637},[638,642,646,650,654,658,662,666,670,674,678],{"fields":639,"sys":641},{"title":232,"file":640},{"url":538},{"id":540},{"fields":643,"sys":645},{"title":151,"file":644},{"url":544},{"id":546},{"fields":647,"sys":649},{"title":549,"file":648},{"url":551},{"id":553},{"fields":651,"sys":653},{"title":556,"file":652},{"url":558},{"id":560},{"fields":655,"sys":657},{"title":563,"file":656},{"url":565},{"id":567},{"fields":659,"sys":661},{"title":570,"file":660},{"url":572},{"id":574},{"fields":663,"sys":665},{"title":577,"file":664},{"url":579},{"id":581},{"fields":667,"sys":669},{"title":584,"file":668},{"url":586},{"id":588},{"fields":671,"sys":673},{"title":591,"file":672},{"url":593},{"id":595},{"fields":675,"sys":677},{"title":598,"file":676},{"url":600},{"id":602},{"fields":679,"sys":681},{"title":605,"file":680},{"url":607},{"id":609},{"id":611,"contentType":683},{"sys":684},{"id":614},{"fields":686,"sys":690},{"title":617,"content":618,"linkText":619,"linkInternally":687},{"fields":688,"sys":689},{"slug":32},{"id":623},{"id":625,"contentType":691},{"sys":692},{"id":628},1775291276222]