Terminal Portfolio
An interactive terminal-style portfolio and résumé. Boots with a fake BIOS sequence and accepts shell-like commands to navigate experience, skills, and projects.
Senior Frontend Software Engineer with 20+ years of experience building web products that people actually enjoy using. I work in React and TypeScript every day, care deeply about accessibility, and bridge the gap between what clients need and what gets shipped. Currently exploring AI-assisted development, Azure, and WebMCP.
A living collection of the things I build, the decisions behind them, and what each project taught me about shipping better frontends.
An interactive terminal-style portfolio and résumé. Boots with a fake BIOS sequence and accepts shell-like commands to navigate experience, skills, and projects.
A headless React toolkit for building forms from schema-driven definitions while keeping rendering code owned by the application.
A local-only tool that helps developers sanitize code before sharing with AI assistants, then restore original identifiers in AI responses using project-scoped aliases.
A personal application hub concept that unifies public profile publishing, CV PDF generation, portfolio management, and private job-application tracking in a single-user admin product.
A web app where users write code in a browser editor, save reusable Templates, and insert reusable Blocks from a slide-out Block Sidebar.
A home for longer thoughts about React, TypeScript, AI-assisted development, architecture, design systems, and the edges where product decisions become code.
A practical note on using AI to lower design friction while still keeping your own judgment in charge.
Why dynamic form tools should separate behavior from the components teams actually ship.
A small argument for components that are predictable, explicit, and hard to misuse.
Internal tooling succeeds when it is treated as a product with users, adoption, and support.
Review as a way to protect behavior, share context, and make the next change easier.
Types are not only guardrails. They are a way to shape product language.
Tiny utilities can change the mood of a codebase when they remove repeated paper cuts.
A11y is not a separate checklist. It is whether the product works for more people in more contexts.
I have a strong product mindset. I am not just interested in "making the UI work" — I think a lot about architecture, maintainability, developer experience, accessibility, testing, deployment, monitoring, and how the whole application behaves in production.
CGI Sverige AB
Tech lead for frontend projects, owning architectural direction, delivery quality, and the glue between client needs and implementation.
Ninetech AB
Deepened engineering fundamentals across a full generational shift: AngularJS to Angular to React and Vue.
Askås I & R AB
Built and maintained e-commerce web solutions in PHP, including a redesign of the e-commerce admin.
Aztek Design AB
Built client websites and produced print material, moving between design, CMS work, and production delivery.
I'm especially interested in frontend platforms, reusable tooling, monitoring, and products that make complex workflows easier to understand and use. I also have a graveyard of half-finished side projects — each one started with great enthusiasm to try a new library, framework, or tech decision. Finishing them is clearly a future-Macke problem.