oslav@portfolio ~ secret
9+ years building products people enjoy using — from pixel-perfect components and scalable architectures to GraphQL services and real-time 3D experiences.
I build products people enjoy using — from pixel-perfect components to scalable architectures. Comfortable owning a codebase, leading a team, or sitting with designers to get the details right. When the backend needs attention, I handle that too.
Shipping polished, production-ready interfaces — responsive layouts, accessible components, performance optimisation, and smooth integration with backend services. Comfortable across the stack when needed, including Node.js, REST and GraphQL APIs.
Designing scalable, maintainable systems — from hexagonal architecture and monorepo structures to platform-agnostic packages that work across brands and platforms.
Building component libraries in close collaboration with designers — Figma tokens, Storybook, naming conventions, and live theming at scale.
Building and maintaining GraphQL proxy servers, REST APIs with Express, PostgreSQL databases with Prisma ORM — plus observability with Grafana and Loki for production monitoring.
Acting as tech lead across teams — owning roadmaps, driving architectural decisions, conducting interviews, and setting quality standards.
Real-time 3D viewers with Three.js, React Three Fiber, and Cannon.js — material editors, shader controls, and physics in the browser.
A handful of moments where the work was technically interesting, the stakes were real, and the outcome mattered.
Designed a new frontend architecture for a platform serving 18 brands. Introduced hexagonal architecture, built platform-agnostic packages (core, app, i18n) and led a team of 7 through full implementation.
Built and maintained a GraphQL proxy server that unified multiple backend services into a single API layer for the frontend. Handled schema stitching, caching, and error normalization — with Grafana + Loki dashboards for production observability.
Led the design system from zero — Figma variables, naming conventions, and Storybook components that scaled across multiple casino brands with live theming support.
Built a browser-based 3D viewer with a drag-and-drop material editor — real-time control over textures, shaders, and environmental properties. Introduced TypeScript and CI at the startup.
Shipped frontend for multiple casino brands across regulated markets — integrating Sentry monitoring across all brands, building i18n infrastructure supporting 8 languages, and connecting third-party services including jackpot systems and payment providers.
Side projects I build to scratch my own itches — real tools I actually use, shipped with the same care I'd give production code.
My memory is terrible and I'm bad at mixing, so I built a reference tool I can actually open mid-session. EQ frequency guides and compression settings for drums, guitar, bass, vocals (including screams, growls, fry screams) and mastering — with genre filters for metal, jazz and rock, and a searchable glossary of 50+ terms explained in plain language.
I write tabletop RPG campaigns and visual novel scripts and kept losing track of branching conversations in Google Docs. So I built a proper tool for it. Inkgraph is a visual dialogue editor — nodes, choices, conditions, character management, and a built-in simulator to walk through scenes before handing them off. Cloud saves, cross-device, free to use.
How I approach a new project — from first principles to shipped product.
Before writing a line of code, I want to understand the business context, the user, and the constraints. I ask a lot of questions early so I'm not solving the wrong thing well.
I draft an architecture proposal — covering structure, data flow, package boundaries, and tradeoffs. I share it early, invite disagreement, and iterate before any implementation begins.
Linting, type checking, testing conventions, CI pipelines — I set these up at the start, not as an afterthought. It makes everything that follows faster and less painful.
Regular check-ins, visible progress, documented decisions. I keep the team aligned and make sure no one is surprised by a direction change two weeks in.
Delivery isn't the end. I monitor, collect feedback, and treat the first release as the baseline. Good products are iterated, not just launched.
A live preview of a component system — switch the theme to see tokens in action.
Nine years of picking up what the job needs. These are the ones I know best.
I make decisions in the open, document reasoning, and share context early — so teams can move fast without stepping on each other.
The best ideas come from people who feel safe to speak up. I actively create space for that — in reviews, in planning, in every day work.
I'd rather slow down slightly to build something right than ship fast and spend the next year paying it back. Maintainability is a feature.
Open to senior frontend and tech lead roles. Hybrid or remote, based in Sweden.