Hi, I'm Oscar.

Lead frontend engineer. Full-stack builder.

Full-stack software engineer, specialising in front-end development. I do TypeScript, React, Svelte, the modern web, and I have the range to own a feature end-to-end: data model, API, UI, and the dashboard that watches it after launch. Currently leading a frontend team in Stockholm.

5+ years in industry 15+ years building software

Portrait of Oscar Persson

PROJECTS

A few things I've built, selected work.

A 3D office wayfinder in the browser

GTPS

Interactive multi-floor office map rendered with Three.js. Pick a meeting room and an A* pathfinder traces the route through corridors and stairwells onto the floor; inactive floors fade and slide apart vertically so a path that crosses levels stays legible. Waypoint graphs and floor outlines live in JSON with an in-app debug editor for placing nodes against the real .obj models.

ThrelteThree.js Svelte 5A* pathfindingTypeScriptTailwind
GTPS

A recreation of the Vercel-conf lanyard

Lanyard

A port of the Vercel-style 3D lanyard component to Svelte + Threlte + Rapier. The interesting parts were keeping the physics stable across resizes, taming the constraint solver under fast drag, and getting it under the perf budget for an always-visible hero element. (It's the thing dangling at the top of this page.)

SvelteSvelteKitThree.jsThrelteRapierTypeScript
Lanyard

A native macOS email client for Gmail

Lunch-Maily

A lightweight desktop email client built with SwiftUI that connects to Gmail via the Google API. Features a three-column layout inspired by Apple Mail with a sidebar for label navigation, an email list with read/unread indicators and infinite scroll, and a detail pane that renders full HTML emails. Supports composing, replying, archiving, and label management.

SwiftSwiftUIMacOSAppkitWebKitOAuth 2.0 (AppAuth)Gmail REST APIMVVM
Lunch-Maily

Take-home, full-stack PoC

Munchies (PoC)

A restaurant discovery frontend built end-to-end for a take-home interview. Next.js with SSR/ISR, Payload CMS backed by Postgres, and full production scaffolding: Storybook, Jest, GitHub Actions.

TypeScriptReactNext.jsNode.jsPayload CMSGraphQLPostgreSQLTailwind CSSPostCSSVercelVercel BlobDockerOrbStackGitHub ActionsCI / CDStorybookJestReact Testing LibraryESLintPrettierYarnGit
Munchies (PoC)

Client work

Client Portfolio

A personal portfolio I built for a client. The interesting work wasn't the stack, it was translating "I want it to feel like this" into components, scoping ruthlessly, and shipping something she can edit herself through the CMS.

TypeScriptNext.jsPayload CMSPostgreSQLTailwind CSSStorybook
Client Portfolio

Tinder for Magic: The Gathering

MTG Deckpick

Tinder for Magic: The Gathering. Cards stream in via the Scryfall API; swipe right to add to a deck, left to skip. Built over a weekend to learn React and the NextUI library.

React.jsNextUIFront-End DevelopmentUI DesignWeb DevelopmentGitJavascriptCSSNode.jsMVPFirestore
MTG Deckpick

CAREER

Where I've worked, a condensed timeline.

  1. Lead Front-End Engineer

    Umain AB· Stockholm, Sweden

    2025 — Present

    Led frontend development and architecture, onboarded engineers, and worked closely with product stakeholders to take an early-stage fintech product to a production MVP in roughly seven months.

  2. Full-Stack Engineer

    Klarna· Stockholm, Sweden

    2023 — 2025

    Worked across debt collection systems and independently led an internal service tool that reduced manual intervention and inter-team response time.

  3. QA Engineer

    Spotify· Stockholm, Sweden

    2022

  4. Junior Full-stack Engineer

    Skry· Stockholm, Sweden

    2022 — 2023

  5. Lead Teaching Assistant

    Kungliga Tekniska Högskolan· Stockholm, Sweden

    2020 — 2023

  6. Software- & Games Developer

    Special Elektronik· Karlstad, Sweden

    2017 — 2018

See full resume

STACK

Skills, languages, tools, and frameworks I reach for.

Frameworks & Engines

React

Next.js

Svelte

SvelteKit

Vue

Node.js

Three.js

Threlte

Sanity

Payload CMS

Tailwind CSS

Vite

Jest

Playwright

React Native

Unity

Unreal Engine

Platforms & Tools

Git

Docker

GitHub Actions

AWS

Vercel

Auth0

Sentry

Datadog

BigQuery

Kibana

Kafka

GraphQL

MCP

PostgreSQL

MongoDB

CI / CD

Languages

TypeScript

JavaScript

Java

Kotlin

C++

Swift

Python

SQL

Design & 3D

UI/UX Design

Adobe Photoshop

Blender

Substance Painter


PRINCIPLES

A few things I keep coming back to.

Considered design

Every layout, animation, and microcopy decision should serve the reader. I push back on flourish that doesn't earn its place.

Performance as a feature

Bundle size, time-to-interactive, and animation cost are part of the design brief — not an afterthought once the product is shipped.

Accessibility by default

Keyboard navigation, contrast, and reduced-motion fallbacks aren't a separate pass. They're part of the first pull request.


WORDS

From people I've worked with.

"Oscar's analytical skills are sharp and effective, and his meticulous approach to problems allowed him to make a number of key recommendations that resulted in an improved product. Beyond the engineering, he's a thoughtful team player — open to discussion, able to receive criticism, and a positive force across the department."
Ivaylo Tsonev Software Engineer · Spotify
"It's people like Oscar who set the culture for us at our company. He takes initiative, responds to feedback, and adjusts toward something even better. He is energetic and thoughtful in equal measure."
Managing Director Umain

Let's build something.

The fastest way to reach me is by email or LinkedIn.

Based in Stockholm. Open to interesting problems and hands-on engineering roles.

hello@oscarpersson.dev

© 2026 Oscar Persson