[{"data":1,"prerenderedAt":1917},["ShallowReactive",2],{"projects-en":3},[4,132,321,413,526,646,700,768,835,883,927,998,1050,1097,1143,1185,1230,1275,1317,1377,1424,1463,1502,1549,1581,1625,1663,1704,1742,1784,1833,1875],{"id":5,"title":6,"body":7,"description":110,"extension":111,"meta":112,"navigation":127,"path":128,"seo":129,"stem":130,"__hash__":131},"content/en/projects/2026-01-erhvervshus-midtjylland-virksomhedsguiden.md","Erhvervshus Midtjylland — Virksomhedsguiden Advisor Platform",{"type":8,"value":9,"toc":106},"minimark",[10,43,49],[11,12,13,14,20,21,26,27,31,32,37,38,42],"p",{},"I was hired by ",[15,16,19],"span",{"className":17},[18],"color-light-blue","Erhvervshus Midtjylland"," to build a B2B advisor marketplace platform, a service connecting Danish SMEs with professional consultants across key business domains. Built with ",[15,22,25],{"className":23},[24],"color-zest","Vue 3"," and ",[15,28,30],{"className":29},[18],"TypeScript",", the embedded SPA integrates into the Virksomhedsguiden portal with secure ",[15,33,36],{"className":34},[35],"color-lavender","MitID"," ",[15,39,41],{"className":40},[35],"OIDC"," authentication (private and business flows), multi-role access control, and a 3-level skills taxonomy spanning 9 business domains. The platform enables advisors to manage CVs with approval workflows, companies to publish tasks, and facilitates the complete offer-bidding lifecycle.",[11,44,45],{},[46,47,48],"strong",{},"Key contributions:",[50,51,52,66,76,79,82,85,88],"ul",{},[53,54,55,56,59,60,65],"li",{},"Architected an embeddable ",[15,57,25],{"className":58},[24]," SPA with Composition API, hash-based routing, and ",[15,61,64],{"className":62},[63],"color-bright-green","SCSS"," styling",[53,67,68,69,37,72,75],{},"Implemented dual ",[15,70,36],{"className":71},[35],[15,73,41],{"className":74},[35]," authentication flows via Nets eID Broker (private for advisors, business/CVR for companies)",[53,77,78],{},"Built role-based access control for Advisors, Companies, Regional & Global Admins",[53,80,81],{},"Developed CV creation wizard with draft/publish states, admin approval workflows, and auto-deactivation reminders",[53,83,84],{},"Created task marketplace with open/closed types, interest expressions, and offer submission flows",[53,86,87],{},"Implemented advisor search with card UI, multi-filter capabilities, and favorites system",[53,89,90,91,96,97,101,102,105],{},"Established ",[15,92,95],{"className":93},[94],"color-sun","Pinia"," state management with type-safe API integration via ",[15,98,100],{"className":99},[35],"OpenAPI","-generated ",[15,103,30],{"className":104},[18]," client",{"title":107,"searchDepth":108,"depth":108,"links":109},"",2,[],"I was hired by Erhvervshus Midtjylland to build a B2B advisor marketplace platform, a service connecting Danish SMEs with professional consultants across key business domains. Built with Vue 3 and TypeScript, the embedded SPA integrates into the Virksomhedsguiden portal with secure MitID OIDC authentication (private and business flows), multi-role access control, and a 3-level skills taxonomy spanning 9 business domains. The platform enables advisors to manage CVs with approval workflows, companies to publish tasks, and facilitates the complete offer-bidding lifecycle.","md",{"client":19,"dateFrom":113,"dateTo":114,"type":115,"skills":116,"role":121,"link":122,"images":123},"2026-01-01","2026-04-01","Freelance",[25,30,95,64,117,100,118,119,120],"Axios","Vite","oidc","i18n","Frontend Developer","https://virksomhedsguiden.dk/",[124,125,126],"images/projects/erhvervshus-midtjylland/find-raadgiver.avif","images/projects/erhvervshus-midtjylland/modal.avif","images/projects/erhvervshus-midtjylland/virksomhedsbeskrivelse.avif",true,"/en/projects/2026-01-erhvervshus-midtjylland-virksomhedsguiden",{"title":6,"description":110},"en/projects/2026-01-erhvervshus-midtjylland-virksomhedsguiden","E5-Ye3DnIrR53zjkXf6wuaA1x6WqNDim1vSboDd2R5U",{"id":133,"title":134,"body":135,"description":300,"extension":111,"meta":301,"navigation":127,"path":317,"seo":318,"stem":319,"__hash__":320},"content/en/projects/2025-10-frederiksberg-kommune-een-indgang.md","Frederiksberg Kommune — Een Indgang",{"type":8,"value":136,"toc":298},[137,210,214],[11,138,13,139,143,144,148,149,26,153,156,157,161,162,166,167,172,173,177,178,181,182,185,186,190,191,194,195,199,200,204,205,209],{},[15,140,142],{"className":141},[18],"Frederiksberg Kommune"," to build the new ",[15,145,147],{"className":146},[18],"Een Indgang"," platform — a modern, citizen‑facing service that streamlines access to municipal services and event permits. Built with ",[15,150,152],{"className":151},[24],"Nuxt 4",[15,154,30],{"className":155},[24],", the solution delivers a robust full‑stack architecture with a type‑safe ",[15,158,160],{"className":159},[24],"tRPC"," API, data modeling via ",[15,163,165],{"className":164},[94],"Drizzle"," on ",[15,168,171],{"className":169},[170],"color-electric","PostgreSQL",", and strict validation using ",[15,174,176],{"className":175},[35],"Zod",". The app provides secure OIDC authentication with ",[15,179,36],{"className":180},[35]," (via Nets eID Broker), state management through ",[15,183,95],{"className":184},[94],", and a visual, drag‑and‑drop planning experience for placing stages, booths, and facilities on location maps. Accessibility, localization, and reliability are first‑class through ",[15,187,189],{"className":188},[63],"WCAG 2.1"," patterns, ",[15,192,120],{"className":193},[24],", end‑to‑end tests with ",[15,196,198],{"className":197},[63],"Playwright",", and CI/CD on ",[15,201,203],{"className":202},[18],"GitHub Actions"," with ",[15,206,208],{"className":207},[18],"Docker",".",[11,211,212],{},[46,213,48],{},[50,215,216,226,233,246,249,260,270,277,287,295],{},[53,217,218,219,222,223],{},"Designed the full‑stack architecture with ",[15,220,152],{"className":221},[24],", server routes, and type‑safe ",[15,224,160],{"className":225},[24],[53,227,228,229,232],{},"Implemented OIDC auth with ",[15,230,36],{"className":231},[35]," via Nets eID Broker",[53,234,235,236,166,239,242,243],{},"Modeled the domain with ",[15,237,165],{"className":238},[94],[15,240,171],{"className":241},[170]," and validation with ",[15,244,176],{"className":245},[35],[53,247,248],{},"Built a drag‑and‑drop map planning UI for event artifacts (stages, booths, facilities)",[53,250,251,252,255,256],{},"Established state and data flows with ",[15,253,95],{"className":254},[94]," and composables using ",[15,257,259],{"className":258},[24],"VueUse",[53,261,262,263,266,267],{},"Added ",[15,264,120],{"className":265},[24]," and implemented accessible UI patterns to meet ",[15,268,189],{"className":269},[63],[53,271,272,273,276],{},"Set up testing with ",[15,274,198],{"className":275},[63]," plus linting/formatting (ESLint/Prettier)",[53,278,279,280,283,284],{},"Automated CI/CD with ",[15,281,203],{"className":282},[18]," and containerization via ",[15,285,208],{"className":286},[18],[53,288,289,290],{},"Implemented transactional emails through ",[15,291,294],{"className":292},[293],"color-ruby","Sendgrid",[53,296,297],{},"Delivered documentation, admin workflows (status changes, edits), and handover to the municipal team",{"title":107,"searchDepth":108,"depth":108,"links":299},[],"I was hired by Frederiksberg Kommune to build the new Een Indgang platform — a modern, citizen‑facing service that streamlines access to municipal services and event permits. Built with Nuxt 4 and TypeScript, the solution delivers a robust full‑stack architecture with a type‑safe tRPC API, data modeling via Drizzle on PostgreSQL, and strict validation using Zod. The app provides secure OIDC authentication with MitID (via Nets eID Broker), state management through Pinia, and a visual, drag‑and‑drop planning experience for placing stages, booths, and facilities on location maps. Accessibility, localization, and reliability are first‑class through WCAG 2.1 patterns, i18n, end‑to‑end tests with Playwright, and CI/CD on GitHub Actions with Docker.",{"client":142,"dateFrom":302,"dateTo":303,"type":115,"skills":304,"role":308,"link":309,"images":310},"2025-08-01","2025-12-01",[152,305,306,165,176,95,307,198,189,203,208,119,120],"Typescript","Figma","trpc","Full Stack Developer","https://www.frederiksberg.dk/",[311,312,313,314,315,316],"images/projects/frederiksberg-kommune/fk-een-indgang-1.avif","images/projects/frederiksberg-kommune/fk-een-indgang-2.avif","images/projects/frederiksberg-kommune/fk-een-indgang-3.avif","images/projects/frederiksberg-kommune/fk-een-indgang-4.avif","images/projects/frederiksberg-kommune/fk-een-indgang-5.avif","images/projects/frederiksberg-kommune/fk-een-indgang-6.avif","/en/projects/2025-10-frederiksberg-kommune-een-indgang",{"title":134,"description":300},"en/projects/2025-10-frederiksberg-kommune-een-indgang","AqZxO5gHzlwW78jsG9km8hjX10HUVeGr2SExlX3FonU",{"id":322,"title":323,"body":324,"description":393,"extension":111,"meta":394,"navigation":127,"path":409,"seo":410,"stem":411,"__hash__":412},"content/en/projects/2025-05-semler-porsche.md","Porsche.dk — Design System Implementation",{"type":8,"value":325,"toc":391},[326,353,357],[11,327,328,329,335,336,339,340,345,346,352],{},"I led the setup and implementation of the new design system for ",[15,330,332],{"className":331},[18],[46,333,334],{},"porsche.dk",", transforming ",[15,337,306],{"className":338},[170]," designs into reusable ",[15,341,343],{"className":342},[24],[46,344,25],{}," components focused on maintainability, performance, and scalability. Using ",[15,347,349],{"className":348},[63],[46,350,351],{},"GSAP",", I implemented advanced animations and interactive features to enhance the user experience. I also mentored internal frontend developers, optimized workflows, and supported backend teams with seamless frontend integration.",[11,354,355],{},[46,356,48],{},[50,358,359,365,372,378,385,388],{},[53,360,361,362],{},"Built and implemented the new design system in ",[15,363,25],{"className":364},[63],[53,366,367,368,371],{},"Converted ",[15,369,306],{"className":370},[170]," designs into reusable components",[53,373,374,375],{},"Added animations and interactions with ",[15,376,351],{"className":377},[63],[53,379,380,381],{},"Documented components in ",[15,382,384],{"className":383},[35],"Storybook",[53,386,387],{},"Guided internal developers on best practices",[53,389,390],{},"Supported backend integration",{"title":107,"searchDepth":108,"depth":108,"links":392},[],"I led the setup and implementation of the new design system for porsche.dk, transforming Figma designs into reusable Vue 3 components focused on maintainability, performance, and scalability. Using GSAP, I implemented advanced animations and interactive features to enhance the user experience. I also mentored internal frontend developers, optimized workflows, and supported backend teams with seamless frontend integration.",{"client":395,"dateFrom":396,"dateTo":397,"type":115,"skills":398,"role":121,"link":404,"images":405},"Semler Gruppen A/S","2025-05-01","2025-09-01",[25,351,384,306,399,400,401,402,403],"Mentoring","JavaScript","HTML","CSS","Azure","https://www.porsche.dk/",[406,407,408],"images/projects/semler/porsche-designsystem-1.avif","images/projects/semler/porsche-designsystem-2.avif","images/projects/semler/porsche-designsystem-3.avif","/en/projects/2025-05-semler-porsche",{"title":323,"description":393},"en/projects/2025-05-semler-porsche","pudQgNZJANeuzzfQmwF1uV-fKEhtAAZVpz2w5c0oEKc",{"id":414,"title":415,"body":416,"description":510,"extension":111,"meta":511,"navigation":127,"path":522,"seo":523,"stem":524,"__hash__":525},"content/en/projects/2024-10-ufst-scaffold-frontend.md","UFST — Vue 3 Frontend Scaffold",{"type":8,"value":417,"toc":508},[418,454,458],[11,419,420,421,424,425,429,430,434,435,438,439,442,443,434,447,450,451,209],{},"I architected a comprehensive ",[15,422,25],{"className":423},[24]," frontend scaffold at ",[15,426,428],{"className":427},[18],"UFST",", establishing a robust development ecosystem. The solution included modular architecture, CI/CD with ",[15,431,433],{"className":432},[293],"Jenkins",", ",[15,436,208],{"className":437},[18]," containerization, state management via ",[15,440,95],{"className":441},[94],", advanced routing, authentication with ",[15,444,446],{"className":445},[35],"Keycloak",[15,448,120],{"className":449},[24],", and automated accessibility testing to meet ",[15,452,189],{"className":453},[63],[11,455,456],{},[46,457,48],{},[50,459,460,463,473,488,505],{},[53,461,462],{},"Designed the baseline architecture and project structure",[53,464,465,466,469,470],{},"Integrated ",[15,467,433],{"className":468},[293]," CI/CD and ",[15,471,208],{"className":472},[18],[53,474,475,476,479,480,484,485],{},"Implemented ",[15,477,95],{"className":478},[94]," state, ",[15,481,483],{"className":482},[24],"Vue Router",", and auth flows with ",[15,486,446],{"className":487},[35],[53,489,490,491,495,496,500,501,504],{},"Set up ",[15,492,494],{"className":493},[63],"Cypress","/",[15,497,499],{"className":498},[170],"Vitest"," testing and ",[15,502,189],{"className":503},[63]," checks",[53,506,507],{},"Delivered a scalable, standardized frontend foundation",{"title":107,"searchDepth":108,"depth":108,"links":509},[],"I architected a comprehensive Vue 3 frontend scaffold at UFST, establishing a robust development ecosystem. The solution included modular architecture, CI/CD with Jenkins, Docker containerization, state management via Pinia, advanced routing, authentication with Keycloak, i18n, and automated accessibility testing to meet WCAG 2.1.",{"client":512,"dateFrom":513,"dateTo":514,"type":115,"skills":515,"role":121,"link":520,"images":521},"UFST — Udviklings- og Forenklingsstyrelsen","2024-10-01","2024-11-01",[25,118,30,95,483,446,120,494,499,433,208,516,189,517,518,519],"Bootstrap","Jira","Confluence","GitHub","https://ufst.dk/",[],"/en/projects/2024-10-ufst-scaffold-frontend",{"title":415,"description":510},"en/projects/2024-10-ufst-scaffold-frontend","qatPLQABGB4jssPH3FkxgblJGP6tcTdomwHvQJ_jZkk",{"id":527,"title":528,"body":529,"description":633,"extension":111,"meta":634,"navigation":127,"path":642,"seo":643,"stem":644,"__hash__":645},"content/en/projects/2022-05-ufst-osm2.md","OSM2 — Lead Frontend & Microfrontend Architecture",{"type":8,"value":530,"toc":631},[531,569,573],[11,532,533,534,537,538,542,543,546,547,550,551,434,554,557,558,561,562,26,565,568],{},"I served as the lead frontend developer on the OSM2 program at ",[15,535,428],{"className":536},[18],", owning architecture and technical direction across multiple frontends. I implemented a ",[15,539,541],{"className":540},[94],"micro frontend"," architecture, integrated the SKAT design system based on ",[15,544,516],{"className":545},[170],", and built features with ",[15,548,25],{"className":549},[24]," + ",[15,552,30],{"className":553},[18],[15,555,95],{"className":556},[94],", and ",[15,559,483],{"className":560},[24],". I established a strong testing culture using ",[15,563,494],{"className":564},[63],[15,566,499],{"className":567},[170],", kept documentation current, and co-led the Frontend Community of Practice (FeCOP). Close collaboration with the PO and Scrum Master ensured clear acceptance criteria, quality, and security throughout delivery.",[11,570,571],{},[46,572,48],{},[50,574,575,578,585,600,606,616,619,622],{},[53,576,577],{},"Owned frontend architecture and technology choices across projects",[53,579,580,581,584],{},"Implemented a ",[15,582,541],{"className":583},[94]," architecture for the case management system",[53,586,587,588,550,591,204,594,26,597],{},"Delivered features in ",[15,589,25],{"className":590},[24],[15,592,30],{"className":593},[18],[15,595,95],{"className":596},[94],[15,598,483],{"className":599},[24],[53,601,602,603],{},"Integrated the SKAT design system built on ",[15,604,516],{"className":605},[170],[53,607,90,608,611,612,615],{},[15,609,494],{"className":610},[63]," E2E tests and ",[15,613,499],{"className":614},[170]," unit tests",[53,617,618],{},"Maintained and improved frontend documentation; co-led FeCOP",[53,620,621],{},"Worked closely with PO/Scrum Master on task scoping and acceptance criteria",[53,623,624,625,26,628],{},"Ensured security and quality standards; supported CI with ",[15,626,433],{"className":627},[293],[15,629,519],{"className":630},[170],{"title":107,"searchDepth":108,"depth":108,"links":632},[],"I served as the lead frontend developer on the OSM2 program at UFST, owning architecture and technical direction across multiple frontends. I implemented a micro frontend architecture, integrated the SKAT design system based on Bootstrap, and built features with Vue 3 + TypeScript, Pinia, and Vue Router. I established a strong testing culture using Cypress and Vitest, kept documentation current, and co-led the Frontend Community of Practice (FeCOP). Close collaboration with the PO and Scrum Master ensured clear acceptance criteria, quality, and security throughout delivery.",{"client":512,"dateFrom":635,"dateTo":514,"type":115,"skills":636,"role":640,"link":520,"images":641},"2022-05-01",[25,30,95,483,494,499,516,637,117,433,517,518,519,638,399,639],"REST","Micro Frontends","Documentation","Lead Frontend Developer",[],"/en/projects/2022-05-ufst-osm2",{"title":528,"description":633},"en/projects/2022-05-ufst-osm2","YFh3mxqXuf40mBxGgXtcRuR1d85H1XEN8k8SjP0Or3s",{"id":647,"title":648,"body":649,"description":689,"extension":111,"meta":690,"navigation":127,"path":696,"seo":697,"stem":698,"__hash__":699},"content/en/projects/2020-11-ufst-angivelse.md","UFST — Angivelse",{"type":8,"value":650,"toc":687},[651,659,663],[11,652,653,654,658],{},"Developed the ",[15,655,657],{"className":656},[18],"Angivelse"," reporting system enabling large businesses to report interests at scale, with a strong emphasis on security and robust testing.",[11,660,661],{},[46,662,48],{},[50,664,665,675,678],{},[53,666,667,668,204,672],{},"Implemented features in ",[15,669,671],{"className":670},[24],"Vue 2",[15,673,30],{"className":674},[18],[53,676,677],{},"Ensured security, linting, unit, and E2E testing pre-deploy",[53,679,680,681,495,684],{},"Integrated with backend services via ",[15,682,637],{"className":683},[94],[15,685,117],{"className":686},[293],{"title":107,"searchDepth":108,"depth":108,"links":688},[],"Developed the Angivelse reporting system enabling large businesses to report interests at scale, with a strong emphasis on security and robust testing.",{"client":512,"dateFrom":691,"dateTo":692,"type":115,"skills":693,"role":121,"link":520,"images":695},"2020-11-01","2022-02-01",[671,30,694,483,637,117,516,494,433,517,518,519],"Vuex",[],"/en/projects/2020-11-ufst-angivelse",{"title":648,"description":689},"en/projects/2020-11-ufst-angivelse","9Ta2PqjDfyNVZCxthLHJV359UT3RXi1d0c3dKy8iejY",{"id":701,"title":702,"body":703,"description":760,"extension":111,"meta":761,"navigation":127,"path":764,"seo":765,"stem":766,"__hash__":767},"content/en/projects/2020-11-ufst-component-library.md","UFST — Vue 3 Component Library",{"type":8,"value":704,"toc":758},[705,716,720],[11,706,707,708,711,712,715],{},"I built a custom ",[15,709,25],{"className":710},[24]," component library aligned with the SKAT design system (",[15,713,516],{"className":714},[170],"), creating a consistent UI framework and a documentation site for developers to explore and test components interactively.",[11,717,718],{},[46,719,48],{},[50,721,722,732,739,742,751],{},[53,723,724,725,728,729],{},"Designed and developed reusable ",[15,726,25],{"className":727},[24]," components with ",[15,730,30],{"className":731},[18],[53,733,734,735,738],{},"Integrated the SKAT design system (",[15,736,516],{"className":737},[170],")",[53,740,741],{},"Created documentation and interactive examples",[53,743,744,745,26,748],{},"Established testing with ",[15,746,499],{"className":747},[170],[15,749,494],{"className":750},[63],[53,752,753,754,757],{},"Supported CI with ",[15,755,433],{"className":756},[293]," and maintained documentation",{"title":107,"searchDepth":108,"depth":108,"links":759},[],"I built a custom Vue 3 component library aligned with the SKAT design system (Bootstrap), creating a consistent UI framework and a documentation site for developers to explore and test components interactively.",{"client":512,"dateFrom":691,"dateTo":514,"type":115,"skills":762,"role":121,"link":520,"images":763},[25,30,118,516,494,499,433,517,518,519,639],[],"/en/projects/2020-11-ufst-component-library",{"title":702,"description":760},"en/projects/2020-11-ufst-component-library","gbZbnI6L4Pbpgo3v9GhTdir9SXg3QPko4uwGVjVFOYw",{"id":769,"title":770,"body":771,"description":827,"extension":111,"meta":828,"navigation":127,"path":831,"seo":832,"stem":833,"__hash__":834},"content/en/projects/2020-11-ufst-micro-frontend.md","UFST — Micro Frontend Platform (OSM2)",{"type":8,"value":772,"toc":825},[773,792,796],[11,774,775,776,779,780,783,784,787,788,791],{},"I initiated and implemented the ",[15,777,541],{"className":778},[94]," infrastructure for the OSM2 program, migrating legacy ",[15,781,671],{"className":782},[24]," code into ",[15,785,25],{"className":786},[24]," fragments to be reused across UFST solutions, while enforcing quality via ",[15,789,494],{"className":790},[63]," and robust CI.",[11,793,794],{},[46,795,48],{},[50,797,798,805,815,818],{},[53,799,800,801,804],{},"Designed and implemented ",[15,802,541],{"className":803},[63]," architecture",[53,806,807,808,811,812],{},"Migrated core features from ",[15,809,671],{"className":810},[63]," to ",[15,813,25],{"className":814},[63],[53,816,817],{},"Established standards for routing, state, and integration",[53,819,820,821,824],{},"Ensured quality with ",[15,822,494],{"className":823},[293]," E2E and CI/CD pipelines",{"title":107,"searchDepth":108,"depth":108,"links":826},[],"I initiated and implemented the micro frontend infrastructure for the OSM2 program, migrating legacy Vue 2 code into Vue 3 fragments to be reused across UFST solutions, while enforcing quality via Cypress and robust CI.",{"client":512,"dateFrom":691,"dateTo":692,"type":115,"skills":829,"role":121,"link":520,"images":830},[638,25,30,671,694,483,637,117,516,494,433,517,518,519],[],"/en/projects/2020-11-ufst-micro-frontend",{"title":770,"description":827},"en/projects/2020-11-ufst-micro-frontend","wzqodm5FF4TOoilANNiFaeDTKszqrLu-2HR2jSekd9o",{"id":836,"title":837,"body":838,"description":875,"extension":111,"meta":876,"navigation":127,"path":879,"seo":880,"stem":881,"__hash__":882},"content/en/projects/2020-11-ufst-registrering.md","UFST — Registrering",{"type":8,"value":839,"toc":873},[840,848,852],[11,841,842,843,847],{},"Maintained the ",[15,844,846],{"className":845},[18],"Registrering"," frontend used by national and international companies to register for the Danish VAT system. Ensured stability and compliance while iterating on features and tests.",[11,849,850],{},[46,851,48],{},[50,853,854,864,870],{},[53,855,856,857,860,861],{},"Maintained and extended ",[15,858,671],{"className":859},[24]," frontend with ",[15,862,30],{"className":863},[18],[53,865,866,867],{},"Implemented features using ",[15,868,516],{"className":869},[170],[53,871,872],{},"Added and maintained tests and CI",{"title":107,"searchDepth":108,"depth":108,"links":874},[],"Maintained the Registrering frontend used by national and international companies to register for the Danish VAT system. Ensured stability and compliance while iterating on features and tests.",{"client":512,"dateFrom":691,"dateTo":692,"type":115,"skills":877,"role":121,"link":520,"images":878},[671,30,694,483,637,117,516,494,433,517,518,519],[],"/en/projects/2020-11-ufst-registrering",{"title":837,"description":875},"en/projects/2020-11-ufst-registrering","Rh8ppNBvSbpWWJNHaUlNPnFUZywxlvkhcBzIR5j1J20",{"id":884,"title":885,"body":886,"description":919,"extension":111,"meta":920,"navigation":127,"path":923,"seo":924,"stem":925,"__hash__":926},"content/en/projects/2020-11-ufst-sagsbehandling.md","UFST — Sagsbehandling",{"type":8,"value":887,"toc":917},[888,891,899,903],[889,890],"hr",{},[11,892,893,894,898],{},"Built and maintained the internal ",[15,895,897],{"className":896},[18],"Sagsbehandling"," frontend used by employees to view and manage registrations, deploying through a rigorous pipeline with tests and linting.",[11,900,901],{},[46,902,48],{},[50,904,905,911,914],{},[53,906,907,908],{},"Developed secure, testable features in ",[15,909,671],{"className":910},[24],[53,912,913],{},"Followed strict QA (linting, unit, and E2E testing) before deploy",[53,915,916],{},"Ensured maintainability and performance",{"title":107,"searchDepth":108,"depth":108,"links":918},[],"Built and maintained the internal Sagsbehandling frontend used by employees to view and manage registrations, deploying through a rigorous pipeline with tests and linting.",{"client":512,"dateFrom":691,"dateTo":692,"type":115,"skills":921,"role":121,"link":520,"images":922},[671,30,694,483,637,117,516,494,433,517,518,519],[],"/en/projects/2020-11-ufst-sagsbehandling",{"title":885,"description":919},"en/projects/2020-11-ufst-sagsbehandling","PgDJbXnc6Xh8f7KYQWL9qHyXnu09FDX2E-Vx_LdC6oU",{"id":928,"title":929,"body":930,"description":982,"extension":111,"meta":983,"navigation":127,"path":994,"seo":995,"stem":996,"__hash__":997},"content/en/projects/2020-07-klassemappen.md","Klassemappen — Parent/Class Management App",{"type":8,"value":931,"toc":980},[932,953,957],[11,933,800,934,938,939,495,943,26,947,952],{},[15,935,937],{"className":936},[18],"Klassemappen",", a system for parents to manage class information, playdates, groups, and a class money box. Built with ",[15,940,942],{"className":941},[24],"Vue",[15,944,946],{"className":945},[24],"Nuxt",[15,948,951],{"className":949},[950],"color-fire","Firebase"," for data handling.",[11,954,955],{},[46,956,48],{},[50,958,959,962,968,974],{},[53,960,961],{},"Selected the technology stack and set up the build workflow",[53,963,964,965],{},"Designed and prototyped the app in ",[15,966,306],{"className":967},[170],[53,969,970,971],{},"Implemented core features and SEO-friendly pages with ",[15,972,946],{"className":973},[24],[53,975,465,976,979],{},[15,977,951],{"className":978},[950]," for data storage",{"title":107,"searchDepth":108,"depth":108,"links":981},[],"Designed and implemented Klassemappen, a system for parents to manage class information, playdates, groups, and a class money box. Built with Vue/Nuxt and Firebase for data handling.",{"client":984,"dateFrom":985,"dateTo":986,"type":115,"skills":987,"role":991,"link":992,"images":993},"klassemappen.dk","2020-07-01","2020-10-01",[942,694,483,400,401,402,637,117,946,988,306,989,990,951],"SEO","Design","Wireframing","Lead Frontend Developer, UI/UX Designer","https://klassemappen.dk/",[],"/en/projects/2020-07-klassemappen",{"title":929,"description":982},"en/projects/2020-07-klassemappen","8qUjInlpnmF4oFkNf0TcxBOPszrFLffADrgxho7GXSU",{"id":999,"title":1000,"body":1001,"description":1005,"extension":111,"meta":1031,"navigation":127,"path":1046,"seo":1047,"stem":1048,"__hash__":1049},"content/en/projects/2020-03-dsb-triage-tool.md","DSB — Workshop Triage Tool",{"type":8,"value":1002,"toc":1029},[1003,1006,1010],[11,1004,1005],{},"Designed a system to guide workshop personnel through structured triage when conductors report issues, enabling consistent data capture and resolution.",[11,1007,1008],{},[46,1009,48],{},[50,1011,1012,1018,1021],{},[53,1013,1014,1015],{},"Researched problems and prototyped solutions in ",[15,1016,306],{"className":1017},[170],[53,1019,1020],{},"Tested prototypes with stakeholders",[53,1022,1023,1024,1028],{},"Delivered UI designs and supported ",[15,1025,1027],{"className":1026},[293],"Angular"," implementation",{"title":107,"searchDepth":108,"depth":108,"links":1030},[],{"client":1032,"dateFrom":1033,"dateTo":1034,"type":115,"skills":1035,"role":1043,"link":1044,"images":1045},"DSB","2020-03-01","2020-04-01",[306,1027,1036,1037,1038,1039,400,401,402,1040,1041,1042,517],"UX","UX Research","UI","UI Design","Scrum","SAFe","CD","Lead UX Designer","https://dsb.dk/",[],"/en/projects/2020-03-dsb-triage-tool",{"title":1000,"description":1005},"en/projects/2020-03-dsb-triage-tool","gsDBaySvn6wVSfNiK5xKXCv6nCtOBu91AQmJs-48Q3Q",{"id":1051,"title":1052,"body":1053,"description":1086,"extension":111,"meta":1087,"navigation":127,"path":1093,"seo":1094,"stem":1095,"__hash__":1096},"content/en/projects/2019-09-dsb-design-system.md","DSB — Design System & IA",{"type":8,"value":1054,"toc":1084},[1055,1069,1073],[11,1056,1057,1058,1061,1062,26,1066,209],{},"Led the creation of a new design system for ",[15,1059,1032],{"className":1060},[18],", establishing information architecture and a single source of truth across teams using ",[15,1063,1065],{"className":1064},[170],"ZeroHeight",[15,1067,384],{"className":1068},[35],[11,1070,1071],{},[46,1072,48],{},[50,1074,1075,1078,1081],{},[53,1076,1077],{},"Defined IA and governance for the design system",[53,1079,1080],{},"Produced content, guidelines, and presentations across the org",[53,1082,1083],{},"Rolled out the system to teams and stakeholders",{"title":107,"searchDepth":108,"depth":108,"links":1085},[],"Led the creation of a new design system for DSB, establishing information architecture and a single source of truth across teams using ZeroHeight and Storybook.",{"client":1032,"dateFrom":1088,"dateTo":1089,"type":115,"skills":1090,"role":1043,"link":1044,"images":1092},"2019-09-01","2020-02-01",[306,1065,384,1036,1091,1038,400,401,402,1040,1041,1042,517],"IA",[],"/en/projects/2019-09-dsb-design-system",{"title":1052,"description":1086},"en/projects/2019-09-dsb-design-system","TetKJvyAQIiFAoFdPDF4kLwHeF6IoG5gTvzWFBbhIdI",{"id":1098,"title":1099,"body":1100,"description":1130,"extension":111,"meta":1131,"navigation":127,"path":1139,"seo":1140,"stem":1141,"__hash__":1142},"content/en/projects/2019-06-dsb-ddi.md","DSB — Den Digitale Indberetning (DDI)",{"type":8,"value":1101,"toc":1128},[1102,1104,1116,1120],[889,1103],{},[11,1105,1106,1107,550,1112,1115],{},"Rewrote an existing mobile app into ",[15,1108,1111],{"className":1109},[1110],"color-aqua","Ionic",[15,1113,1027],{"className":1114},[293],", modernizing the build pipeline and improving stability and maintainability.",[11,1117,1118],{},[46,1119,48],{},[50,1121,1122,1125],{},[53,1123,1124],{},"Migrated legacy code and established a new build workflow",[53,1126,1127],{},"Improved performance, reliability, and developer experience",{"title":107,"searchDepth":108,"depth":108,"links":1129},[],"Rewrote an existing mobile app into Ionic + Angular, modernizing the build pipeline and improving stability and maintainability.",{"client":1032,"dateFrom":1132,"dateTo":1133,"type":115,"skills":1134,"role":640,"link":1044,"images":1138},"2019-06-01","2019-08-01",[1027,1111,30,400,401,402,64,1036,1038,990,1135,1136,517,518,1137,1042],"Sketch","Adobe XD","Bitbucket",[],"/en/projects/2019-06-dsb-ddi",{"title":1099,"description":1130},"en/projects/2019-06-dsb-ddi","yl4xmRXcFX4Mc2ryRO38wrJauZKEN81VN_XIeLQz2RQ",{"id":1144,"title":1145,"body":1146,"description":1175,"extension":111,"meta":1176,"navigation":127,"path":1181,"seo":1182,"stem":1183,"__hash__":1184},"content/en/projects/2019-05-dsb-react-upgrade.md","DSB — React Upgrade Initiative",{"type":8,"value":1147,"toc":1173},[1148,1161,1165],[11,1149,1150,1151,1155,1156,1160],{},"Supported the ",[15,1152,1154],{"className":1153},[18],"DSB.dk"," team in upgrading ",[15,1157,1159],{"className":1158},[293],"React"," to the latest version, modernizing patterns and ensuring maintainable code.",[11,1162,1163],{},[46,1164,48],{},[50,1166,1167,1170],{},[53,1168,1169],{},"Planned an incremental, low-risk upgrade path",[53,1171,1172],{},"Refactored components to align with new APIs and best practices",{"title":107,"searchDepth":108,"depth":108,"links":1174},[],"Supported the DSB.dk team in upgrading React to the latest version, modernizing patterns and ensuring maintainable code.",{"client":1032,"dateFrom":1177,"dateTo":1132,"type":115,"skills":1178,"role":121,"link":1044,"images":1180},"2019-05-01",[1159,1179,400,1040,1041,1042,517],"Redux",[],"/en/projects/2019-05-dsb-react-upgrade",{"title":1145,"description":1175},"en/projects/2019-05-dsb-react-upgrade","q1iIIzv-SeLFMSW6bFxc7a4SgErWk51XFT0koFSfoRE",{"id":1186,"title":1187,"body":1188,"description":1221,"extension":111,"meta":1222,"navigation":127,"path":1226,"seo":1227,"stem":1228,"__hash__":1229},"content/en/projects/2019-04-dsb-ferieplan.md","DSB — Ferieplan Mobile App",{"type":8,"value":1189,"toc":1219},[1190,1192,1207,1211],[889,1191],{},[11,1193,1194,1195,1199,1200,26,1203,1206],{},"Rebuilt ",[15,1196,1198],{"className":1197},[18],"Ferieplan",", a vacation calendar app for train personnel, using ",[15,1201,1027],{"className":1202},[293],[15,1204,1111],{"className":1205},[1110],", with a new build workflow.",[11,1208,1209],{},[46,1210,48],{},[50,1212,1213,1216],{},[53,1214,1215],{},"Migrated from an older codebase and optimized delivery",[53,1217,1218],{},"Implemented core features with a focus on UX and performance",{"title":107,"searchDepth":108,"depth":108,"links":1220},[],"Rebuilt Ferieplan, a vacation calendar app for train personnel, using Angular and Ionic, with a new build workflow.",{"client":1032,"dateFrom":1223,"dateTo":1177,"type":115,"skills":1224,"role":640,"link":1044,"images":1225},"2019-04-01",[1027,1111,30,400,401,402,64,1036,1038,990,1135,1136,517,518,1137,1042],[],"/en/projects/2019-04-dsb-ferieplan",{"title":1187,"description":1221},"en/projects/2019-04-dsb-ferieplan","LP6F_4a4sYu5UKC_YI_v9VhPizLVYlI3UVN2oQeWRBo",{"id":1231,"title":1232,"body":1233,"description":1261,"extension":111,"meta":1262,"navigation":127,"path":1271,"seo":1272,"stem":1273,"__hash__":1274},"content/en/projects/2019-01-adapt-kvinfo.md","Adapt — KVINFO",{"type":8,"value":1234,"toc":1259},[1235,1247,1251],[11,1236,1237,1238,1242,1243,209],{},"Maintained and redesigned parts of ",[15,1239,1241],{"className":1240},[18],"KVINFO",", the Danish center for gender, equality, and diversity, on ",[15,1244,1246],{"className":1245},[18],"Drupal",[11,1248,1249],{},[46,1250,48],{},[50,1252,1253,1256],{},[53,1254,1255],{},"Implemented redesigns and ensured UI quality",[53,1257,1258],{},"Collaborated with Adapt on delivery and workflows",{"title":107,"searchDepth":108,"depth":108,"links":1260},[],"Maintained and redesigned parts of KVINFO, the Danish center for gender, equality, and diversity, on Drupal.",{"client":1263,"dateFrom":1264,"dateTo":1265,"type":115,"skills":1266,"role":1268,"link":1269,"images":1270},"Adapt / KVINFO","2019-01-01","2019-03-01",[401,402,64,1267,1246,1038,400,517],"jQuery","Lead Frontend Developer — KVINFO","https://kvinfo.dk/",[],"/en/projects/2019-01-adapt-kvinfo",{"title":1232,"description":1261},"en/projects/2019-01-adapt-kvinfo","nBlp2MXi1oJgzlmcZm2QSwl7HUzXodmpA_oxfJSGwQQ",{"id":1276,"title":1277,"body":1278,"description":1309,"extension":111,"meta":1310,"navigation":127,"path":1313,"seo":1314,"stem":1315,"__hash__":1316},"content/en/projects/2019-01-dsb-driftportal.md","DSB — DriftPortal Mobile App",{"type":8,"value":1279,"toc":1307},[1280,1295,1299],[11,1281,1282,1283,1287,1288,550,1291,1294],{},"Modernized ",[15,1284,1286],{"className":1285},[18],"DriftPortal",", a core workday management app for train personnel, by rewriting into ",[15,1289,1111],{"className":1290},[1110],[15,1292,1027],{"className":1293},[293]," and establishing a new build workflow.",[11,1296,1297],{},[46,1298,48],{},[50,1300,1301,1304],{},[53,1302,1303],{},"Rewrote from a legacy codebase",[53,1305,1306],{},"Improved reliability, UX, and deployment processes",{"title":107,"searchDepth":108,"depth":108,"links":1308},[],"Modernized DriftPortal, a core workday management app for train personnel, by rewriting into Ionic + Angular and establishing a new build workflow.",{"client":1032,"dateFrom":1264,"dateTo":1265,"type":115,"skills":1311,"role":640,"link":1044,"images":1312},[1027,1111,30,400,401,402,64,1036,1038,990,1135,1136,517,518,1137,1042],[],"/en/projects/2019-01-dsb-driftportal",{"title":1277,"description":1309},"en/projects/2019-01-dsb-driftportal","VlSVnTmBi0Yw7N-Nyoq0EUFAtwYIziiPyYPrptZFWMI",{"id":1318,"title":1319,"body":1320,"description":1366,"extension":111,"meta":1367,"navigation":127,"path":1373,"seo":1374,"stem":1375,"__hash__":1376},"content/en/projects/2018-04-webbud.md","Webbud.dk — Marketing Site",{"type":8,"value":1321,"toc":1364},[1322,1324,1341,1345],[889,1323],{},[11,1325,1326,1327,204,1330,495,1333,1336,1337,209],{},"Built a flexible, SEO-friendly, and fast website using ",[15,1328,946],{"className":1329},[24],[15,1331,942],{"className":1332},[24],[15,1334,694],{"className":1335},[24]," and a .NET backend via ",[15,1338,1340],{"className":1339},[35],"Contentful",[11,1342,1343],{},[46,1344,48],{},[50,1346,1347,1350,1357],{},[53,1348,1349],{},"Designed and prototyped responsive pages",[53,1351,1352,1353,1356],{},"Set up environment, state management, and ",[15,1354,637],{"className":1355},[94]," integrations",[53,1358,1359,1360,1363],{},"Optimized for ",[15,1361,988],{"className":1362},[1110]," and performance",{"title":107,"searchDepth":108,"depth":108,"links":1365},[],"Built a flexible, SEO-friendly, and fast website using Nuxt with Vue/Vuex and a .NET backend via Contentful.",{"client":1368,"dateFrom":1369,"dateTo":985,"type":115,"skills":1370,"role":991,"link":1371,"images":1372},"Webbud.dk","2018-04-01",[942,694,400,401,402,637,117,946,988,306,989,990],"https://webbud.dk/",[],"/en/projects/2018-04-webbud",{"title":1319,"description":1366},"en/projects/2018-04-webbud","TL-F6jS7R3JdbfUIAPzWdVFzXKKagtDNlep-7kKY3LA",{"id":1378,"title":1379,"body":1380,"description":1412,"extension":111,"meta":1413,"navigation":127,"path":1420,"seo":1421,"stem":1422,"__hash__":1423},"content/en/projects/2017-05-dsb-bill.md","DSB — BILL Ticket System App",{"type":8,"value":1381,"toc":1410},[1382,1384,1398,1402],[889,1383],{},[11,1385,1386,1387,1391,1392,26,1395,209],{},"Frontend Developer, Designer, and UX’er on ",[15,1388,1390],{"className":1389},[18],"BILL",", a mobile ticket system for conductors to validate tickets and create fees, built with ",[15,1393,1111],{"className":1394},[1110],[15,1396,1027],{"className":1397},[293],[11,1399,1400],{},[46,1401,48],{},[50,1403,1404,1407],{},[53,1405,1406],{},"Designed UI and style guide; set up workflow",[53,1408,1409],{},"Implemented app features and device integrations (scanner, camera)",{"title":107,"searchDepth":108,"depth":108,"links":1411},[],"Frontend Developer, Designer, and UX’er on BILL, a mobile ticket system for conductors to validate tickets and create fees, built with Ionic and Angular.",{"client":1032,"dateFrom":1414,"dateTo":1415,"type":115,"skills":1416,"role":1418,"link":1044,"images":1419},"2017-05-01","2018-12-01",[1027,1111,30,400,401,402,64,1036,1038,1417,1135,1136,517,518,1137,1042],"Wireframes","Lead Frontend Developer and UI/UX Designer",[],"/en/projects/2017-05-dsb-bill",{"title":1379,"description":1412},"en/projects/2017-05-dsb-bill","tiWxgMe5cCou9aPv4aREaV492ZC0X4EVuLmY-0bQKyg",{"id":1425,"title":1426,"body":1427,"description":1433,"extension":111,"meta":1448,"navigation":127,"path":1459,"seo":1460,"stem":1461,"__hash__":1462},"content/en/projects/2015-09-top-toy-br.md","Top-Toy — Fætter BR Website",{"type":8,"value":1428,"toc":1446},[1429,1431,1434,1438],[889,1430],{},[11,1432,1433],{},"Maintained legacy code and built new omnichannel features for the Fætter BR website, including SAP Hybris widgets and UX testing.",[11,1435,1436],{},[46,1437,48],{},[50,1439,1440,1443],{},[53,1441,1442],{},"Developed Hybris widgets and new features",[53,1444,1445],{},"Maintained legacy stack and ensured performance",{"title":107,"searchDepth":108,"depth":108,"links":1447},[],{"client":1449,"dateFrom":1450,"dateTo":1451,"type":115,"skills":1452,"role":121,"link":1457,"images":1458},"Top Toy A/S","2015-09-01","2017-01-01",[401,402,1453,1454,1267,1455,1456,1038,400,517],"LESS","RequireJS","REST API","GUI","https://www.br.dk/",[],"/en/projects/2015-09-top-toy-br",{"title":1426,"description":1433},"en/projects/2015-09-top-toy-br","2bR76CXL0cNiqYLFgg0s0l3gXekluwINy5a1IbpinkQ",{"id":1464,"title":1465,"body":1466,"description":1472,"extension":111,"meta":1492,"navigation":127,"path":1498,"seo":1499,"stem":1500,"__hash__":1501},"content/en/projects/2015-09-top-toy-click-and-collect.md","Top-Toy — Click & Collect Express",{"type":8,"value":1467,"toc":1490},[1468,1470,1473,1477],[889,1469],{},[11,1471,1472],{},"Led development of an express Click & Collect variant providing real-time store inventory and same-day pickup ordering.",[11,1474,1475],{},[46,1476,48],{},[50,1478,1479,1487],{},[53,1480,1481,1482,1486],{},"Built store-facing ",[15,1483,1485],{"className":1484},[293],"AngularJS"," tooling and scanner integrations",[53,1488,1489],{},"Conducted user testing and iterative improvements",{"title":107,"searchDepth":108,"depth":108,"links":1491},[],{"client":1449,"dateFrom":1450,"dateTo":1451,"type":115,"skills":1493,"role":1495,"link":1496,"images":1497},[1485,401,402,64,1455,1456,1038,400,517,1494],"UX Testing","Frontend Developer — Click & Collect Express system","https://fætterbr.dk/",[],"/en/projects/2015-09-top-toy-click-and-collect",{"title":1465,"description":1472},"en/projects/2015-09-top-toy-click-and-collect","iweNu1mDC-l9BanZlaNwGVTj8oIZYRXlPRVuTdn9-Ao",{"id":1503,"title":1504,"body":1505,"description":1537,"extension":111,"meta":1538,"navigation":127,"path":1545,"seo":1546,"stem":1547,"__hash__":1548},"content/en/projects/2015-09-top-toy-competition-system.md","Top-Toy — Competition System",{"type":8,"value":1506,"toc":1535},[1507,1519,1523],[11,1508,1509,1510,26,1514,1518],{},"Architected and developed a competition system used by partners like ",[15,1511,1513],{"className":1512},[18],"Lego",[15,1515,1517],{"className":1516},[18],"Disney",", collaborating with an outsourcing team.",[11,1520,1521],{},[46,1522,48],{},[50,1524,1525,1532],{},[53,1526,1527,1528,1531],{},"Led frontend architecture and ",[15,1529,1485],{"className":1530},[293]," development",[53,1533,1534],{},"Designed UI deliverables and coordinated with external teams",{"title":107,"searchDepth":108,"depth":108,"links":1536},[],"Architected and developed a competition system used by partners like Lego and Disney, collaborating with an outsourcing team.",{"client":1449,"dateFrom":1450,"dateTo":1451,"type":115,"skills":1539,"role":1542,"link":1543,"images":1544},[1485,401,402,64,1540,1541,1036,1417,400,517],"MongoDB","Illustrator","Frontend Developer — Competition System","https://www.top-toy.dk/",[],"/en/projects/2015-09-top-toy-competition-system",{"title":1504,"description":1537},"en/projects/2015-09-top-toy-competition-system","wKG5a82H6hxr166yNeJjPiToUHZ1GXyQYbbScwdMcTE",{"id":1550,"title":1551,"body":1552,"description":1558,"extension":111,"meta":1573,"navigation":127,"path":1577,"seo":1578,"stem":1579,"__hash__":1580},"content/en/projects/2015-09-top-toy-toysrus.md","Top-Toy — Toys'R'Us Website",{"type":8,"value":1553,"toc":1571},[1554,1556,1559,1563],[889,1555],{},[11,1557,1558],{},"Maintained legacy code base and delivered omnichannel features across the Toys'R'Us site, plus Hybris widget development and user testing.",[11,1560,1561],{},[46,1562,48],{},[50,1564,1565,1568],{},[53,1566,1567],{},"Built widgets and maintained compatibility across the stack",[53,1569,1570],{},"Delivered new site features and optimizations",{"title":107,"searchDepth":108,"depth":108,"links":1572},[],{"client":1449,"dateFrom":1450,"dateTo":1451,"type":115,"skills":1574,"role":121,"link":1575,"images":1576},[401,402,1453,1454,1267,1455,1456,1038,400,517],"https://www.toysrus.com/",[],"/en/projects/2015-09-top-toy-toysrus",{"title":1551,"description":1558},"en/projects/2015-09-top-toy-toysrus","8Y4CuBsBpvipTQA5-uTeekboiIjWb9qXy0VjoXUtTlA",{"id":1582,"title":1583,"body":1584,"description":1613,"extension":111,"meta":1614,"navigation":127,"path":1621,"seo":1622,"stem":1623,"__hash__":1624},"content/en/projects/2015-07-adapt-loberen.md","Adapt — Løberen.dk",{"type":8,"value":1585,"toc":1611},[1586,1588,1599,1603],[889,1587],{},[11,1589,1590,1591,1595,1596,209],{},"Delivered a complete redesign for ",[15,1592,1594],{"className":1593},[18],"Løberen.dk"," with core frontend implementation on ",[15,1597,1246],{"className":1598},[18],[11,1600,1601],{},[46,1602,48],{},[50,1604,1605,1608],{},[53,1606,1607],{},"Drove UX and UI, then implemented the design",[53,1609,1610],{},"Built core features and interactions",{"title":107,"searchDepth":108,"depth":108,"links":1612},[],"Delivered a complete redesign for Løberen.dk with core frontend implementation on Drupal.",{"client":1615,"dateFrom":1616,"dateTo":1617,"type":115,"skills":1618,"role":640,"link":1619,"images":1620},"Adapt / Løberen.dk","2015-07-01","2015-08-01",[401,402,64,1267,1246,1038,400,517],"https://loberen.dk/",[],"/en/projects/2015-07-adapt-loberen",{"title":1583,"description":1613},"en/projects/2015-07-adapt-loberen","ELDm6CLv60wDNwDca1gk5IJFmVEziYqv01Jayc7QNSE",{"id":1626,"title":1627,"body":1628,"description":1651,"extension":111,"meta":1652,"navigation":127,"path":1659,"seo":1660,"stem":1661,"__hash__":1662},"content/en/projects/2015-05-adapt-bjerregaard.md","Adapt — Bjerregaard.dk",{"type":8,"value":1629,"toc":1649},[1630,1640,1644],[11,1631,1632,1633,166,1637,209],{},"Created an advanced product filtering system for ",[15,1634,1636],{"className":1635},[18],"Bjerregaard.dk",[15,1638,1246],{"className":1639},[18],[11,1641,1642],{},[46,1643,48],{},[50,1645,1646],{},[53,1647,1648],{},"Engineered flexible filtering UX and performant UI components",{"title":107,"searchDepth":108,"depth":108,"links":1650},[],"Created an advanced product filtering system for Bjerregaard.dk on Drupal.",{"client":1653,"dateFrom":1654,"dateTo":1655,"type":115,"skills":1656,"role":640,"link":1657,"images":1658},"Adapt / Bjerregaard.dk","2015-05-01","2015-06-01",[401,402,64,1267,1246,1038,400,517],"https://www.bjerregaard.dk/",[],"/en/projects/2015-05-adapt-bjerregaard",{"title":1627,"description":1651},"en/projects/2015-05-adapt-bjerregaard","AESyB0zxVvhpmfqsVkTgHmOAqPzJxxGw9WK-QxSek68",{"id":1664,"title":1665,"body":1666,"description":1691,"extension":111,"meta":1692,"navigation":127,"path":1700,"seo":1701,"stem":1702,"__hash__":1703},"content/en/projects/2015-03-adapt-ida.md","Adapt — IDA (universe.ida.dk)",{"type":8,"value":1667,"toc":1689},[1668,1670,1677,1681],[889,1669],{},[11,1671,1672,1673,1676],{},"Delivered a full redesign on ",[15,1674,516],{"className":1675},[170]," and integrated it into IDA’s custom system.",[11,1678,1679],{},[46,1680,48],{},[50,1682,1683,1686],{},[53,1684,1685],{},"Led frontend implementation and Bootstrap integration",[53,1687,1688],{},"Ensured responsive UX and smooth delivery",{"title":107,"searchDepth":108,"depth":108,"links":1690},[],"Delivered a full redesign on Bootstrap and integrated it into IDA’s custom system.",{"client":1693,"dateFrom":1694,"dateTo":1695,"type":115,"skills":1696,"role":1697,"link":1698,"images":1699},"Adapt / IDA","2015-03-01","2015-04-01",[401,402,64,1267,516,1038,400,517],"Lead Frontend Developer — universe.ida.dk","https://www.ida.dk/",[],"/en/projects/2015-03-adapt-ida",{"title":1665,"description":1691},"en/projects/2015-03-adapt-ida","yNXpu3ABc63IRp0ZmvqO3p5lnT5Oq9mH4Y_Cc2o9xvs",{"id":1705,"title":1706,"body":1707,"description":1730,"extension":111,"meta":1731,"navigation":127,"path":1738,"seo":1739,"stem":1740,"__hash__":1741},"content/en/projects/2015-01-adapt-sportmaster.md","Adapt — Sportmaster.dk",{"type":8,"value":1708,"toc":1728},[1709,1716,1720],[11,1710,1711,1712,1715],{},"Redesigned and migrated the existing CMS to ",[15,1713,1246],{"className":1714},[18],", delivering new UI and interactions.",[11,1717,1718],{},[46,1719,48],{},[50,1721,1722,1725],{},[53,1723,1724],{},"Led migration and redesign work",[53,1726,1727],{},"Implemented modern, responsive UI components",{"title":107,"searchDepth":108,"depth":108,"links":1729},[],"Redesigned and migrated the existing CMS to Drupal, delivering new UI and interactions.",{"client":1732,"dateFrom":1733,"dateTo":1734,"type":115,"skills":1735,"role":640,"link":1736,"images":1737},"Adapt / Sportmaster.dk","2015-01-01","2015-02-01",[401,402,64,1267,1246,1038,400,517],"https://sportmaster.dk/",[],"/en/projects/2015-01-adapt-sportmaster",{"title":1706,"description":1730},"en/projects/2015-01-adapt-sportmaster","oLVZI2NsMocB0Cx5-DN4VDtCaSUUd1jexSOQvxjYK0Y",{"id":1743,"title":1744,"body":1745,"description":1772,"extension":111,"meta":1773,"navigation":127,"path":1780,"seo":1781,"stem":1782,"__hash__":1783},"content/en/projects/2014-11-adapt-vitus-rejser.md","Adapt — Vitus-rejser.dk",{"type":8,"value":1746,"toc":1770},[1747,1758,1762],[11,1748,1749,1750,1753,1754,209],{},"Delivered a complete new ",[15,1751,1246],{"className":1752},[18],"-based design for ",[15,1755,1757],{"className":1756},[18],"Vitus Rejser",[11,1759,1760],{},[46,1761,48],{},[50,1763,1764,1767],{},[53,1765,1766],{},"Frontend implementation and responsive UI",[53,1768,1769],{},"Collaboration on content and delivery schedule",{"title":107,"searchDepth":108,"depth":108,"links":1771},[],"Delivered a complete new Drupal-based design for Vitus Rejser.",{"client":1774,"dateFrom":1775,"dateTo":1776,"type":115,"skills":1777,"role":640,"link":1778,"images":1779},"Adapt / Vitus Rejser","2014-11-01","2014-12-01",[401,402,64,1267,1246,1038,400,517],"https://vitus-rejser.dk/",[],"/en/projects/2014-11-adapt-vitus-rejser",{"title":1744,"description":1772},"en/projects/2014-11-adapt-vitus-rejser","rJvAF8tuQQeQzM5UUt-Di2EUVXhC094fGq2CedS6TuE",{"id":1785,"title":1786,"body":1787,"description":1821,"extension":111,"meta":1822,"navigation":127,"path":1829,"seo":1830,"stem":1831,"__hash__":1832},"content/en/projects/2014-09-adapt-pensionforalle.md","Adapt — Pensionforalle.dk",{"type":8,"value":1788,"toc":1819},[1789,1791,1807,1811],[889,1790],{},[11,1792,1793,1794,1797,1798,1802,1803,209],{},"Delivered the core ",[15,1795,1246],{"className":1796},[18]," setup and design integration for ",[15,1799,1801],{"className":1800},[18],"Pensionforalle.dk",", owned by ",[15,1804,1806],{"className":1805},[18],"ATP",[11,1808,1809],{},[46,1810,48],{},[50,1812,1813,1816],{},[53,1814,1815],{},"Implemented core design and content workflows",[53,1817,1818],{},"Automated content operations for efficiency",{"title":107,"searchDepth":108,"depth":108,"links":1820},[],"Delivered the core Drupal setup and design integration for Pensionforalle.dk, owned by ATP.",{"client":1823,"dateFrom":1824,"dateTo":1825,"type":115,"skills":1826,"role":640,"link":1827,"images":1828},"Adapt / Pension for alle (ATP)","2014-09-01","2014-10-01",[401,402,64,1267,1246,1038,400,517],"https://www.atp.dk/",[],"/en/projects/2014-09-adapt-pensionforalle",{"title":1786,"description":1821},"en/projects/2014-09-adapt-pensionforalle","cSlWttTsvoXtK-iTEcQUkLgtPGSdkGRZFi1U5ggxCOw",{"id":1834,"title":1835,"body":1836,"description":1863,"extension":111,"meta":1864,"navigation":127,"path":1871,"seo":1872,"stem":1873,"__hash__":1874},"content/en/projects/2014-06-adapt-atp.md","Adapt — ATP.dk",{"type":8,"value":1837,"toc":1861},[1838,1849,1853],[11,1839,1840,1841,1844,1845,1848],{},"Built a new ",[15,1842,1246],{"className":1843},[18]," setup and design for ",[15,1846,1806],{"className":1847},[18],", including workflow architecture and content automation.",[11,1850,1851],{},[46,1852,48],{},[50,1854,1855,1858],{},[53,1856,1857],{},"Delivered responsive frontend and content tooling",[53,1859,1860],{},"Ensured sustainable content operations",{"title":107,"searchDepth":108,"depth":108,"links":1862},[],"Built a new Drupal setup and design for ATP, including workflow architecture and content automation.",{"client":1865,"dateFrom":1866,"dateTo":1867,"type":115,"skills":1868,"role":1869,"link":1827,"images":1870},"Adapt / ATP","2014-06-01","2014-08-01",[401,402,64,1267,1246,1038,400,517],"Lead Frontend Developer — ATP.dk",[],"/en/projects/2014-06-adapt-atp",{"title":1835,"description":1863},"en/projects/2014-06-adapt-atp","fWoGvTp1B2tRPaFc9udlmTmtyvAwwbB1us4scb2Iz30",{"id":1876,"title":1877,"body":1878,"description":1884,"extension":111,"meta":1904,"navigation":127,"path":1913,"seo":1914,"stem":1915,"__hash__":1916},"content/en/projects/2009-03-clio-portals.md","Clio Online — Testing System and Portals",{"type":8,"value":1879,"toc":1902},[1880,1882,1885,1889],[889,1881],{},[11,1883,1884],{},"Worked on Clio Online’s interactive, self-correcting testing system spanning multiple products (exams, knowledge evaluation, and language training), and contributed to the broader Clio portál ecosystem.",[11,1886,1887],{},[46,1888,48],{},[50,1890,1891,1899],{},[53,1892,1893,1894,1898],{},"Frontend development across ",[15,1895,1897],{"className":1896},[950],"TYPO3","-based portals",[53,1900,1901],{},"Built interactive, accessible UI components",{"title":107,"searchDepth":108,"depth":108,"links":1903},[],{"client":1905,"dateFrom":1906,"dateTo":1866,"type":1907,"skills":1908,"role":1910,"link":1911,"images":1912},"Clio Online","2009-03-01","Full-time",[401,402,64,1267,1909,516,1038,400,517],"Typo3","Frontend Developer — Clio Portals","https://www.clio.me/",[],"/en/projects/2009-03-clio-portals",{"title":1877,"description":1884},"en/projects/2009-03-clio-portals","_3X-TUjyCYsffkFG06g51eCWE8DpHSmnkpFHBA5Y7ak",1779177081951]