A running log of things I’ve built and learned along the way.

Building in fast feedback loops

talkOctober 2025  ·  ViteConf 2025

Give people great tools — an issue tracker that feels effortless, a developer setup that brings an immediate connection to what they’re creating — and they’ll do their best work. Learnings from optimizing developer experience at Linear.

Speeding up the Linear client

shipJune 2025

Concluded a very long behind the scenes project to optimize how Linear client application performs, especially for large workspaces. Re-designing how the client boots, and essentially pre-loads data to make interactions as fast as possible.

Pull request preview links

shipOctober 2024  ·  Linear Changelog

Added pull request preview links as a first-class citizen in Linear.

Linear to Linear importer

shipAugust 2024

Shipped a new Linear to Linear importer, allowing users to migrate their data from one workspace to another with cross-regional support.

Triage responsibility integrations

shipMarch 2024  ·  Linear Changelog

Extended triage responsibility with OpsGenie and Incident.io integrations, plus API support for custom rotation schedules.

Project timeframes

shipJanuary 2024  ·  Linear Changelog

Shipped flexible project timeframes in Linear. A purpose-built tool for developing software needs to support planning project timelines at your current level of certainty, such as next month, quarter, or year.

Joining Linear

blogDecember 2023  ·  4 minute read

Reflection on my first 4 months at Linear.

Linear Demo workspace

shipNovember 2023

Shipped the Linear Demo workspace, an ephemeral client-side playground for exploring the product and features.

Triage responsibility

shipOctober 2023  ·  Linear Changelog

Shipped triage responsibility to help teams manage incoming issues. You can notify or assign issues to specific people, and integrate with PagerDuty schedules for automatic rotation.

Addressing Client/Server Compatibility in tRPC

blogJuly 2023  ·  5 minute read

One of the main selling points of tRPC is "End-to-end typesafe APIs made easy", but this doesn't hold if you are not mindful about keeping your client/server versions in sync.

Moving Pleo’s frontend into the Third Age of JavaScript

slidesJune 2022  ·  Copenhagen React Meetup (June 2022)

Learnings from migrating Pleo’s frontend from Webpack to Vite.

Beyond Bug-Squashing

blogApril 2021  ·  4 minute read

My mental model for fixing bugs boils down to a 4 step process with a strong focus on improving safety nets.

Guidelines for Better Pull Requests

blogAugust 2020  ·  4 minute read

7 tips and tricks for better pull requests to improve the feedback you get on your work and elevate the overall quality of the code and product.

Migrating from Flow to TypeScript using flow-to-ts

blogFebruary 2020  ·  5 minute read

Over the last couple of years, I have been migrating several codebases from Flow to TypeScript with minimal effort. In this post, I will describe my motivation and the approach I would recommend.

Software Engineering Principles

blogJanuary 2020  ·  5 minute read

A list of the high-level principles and beliefs that I operate by when building software. Lots of links and references.

A journey into React Native development 🌴

talkMay 2019  ·  Copenhagen React Meetup at Leo Innovation Lab (May 2019)

Summing up 2+ years of learnings from my journey into the React Native jungle. How to get started? What to be aware of? Lessons learned and battles fought.

Converting an app to React Native — How to get started

blogApril 2018  ·  9 minute read

Tips and tricks on tooling, navigation, and libraries when getting into React Native development. Especially relevant for native mobile developers approaching React Native.

Making open source my new year’s resolution

slidesSeptember 2017  ·  Tech festival (September 2017)

My motivation for making contributing to open source software my new year’s resolution in 2017. Hopefully, this will motivate people to do the same thing.

Type safe CSS Modules with Flow

blogJune 2017  ·  3 minute read

CSS Modules + Flow = type safety and editor autocompletion. Introducing a few open source projects to help you with type safety and editor autocompletion.

type safety + front-end code =

slidesJune 2017  ·  Copenhagen.js Meetup at issuu.com (June 2017)

A brief motivation for the importance of static type safety in larger codebases. Comparison of different static type-checkers options for front-end code: TypeScript, Flow, Reason, Elm. Trade-offs and recommendations.

React PropTypes to Flow codemod

blogApril 2017  ·  3 minute read

I’m presenting how to automatically convert your existing codebase using React PropTypes to use more powerful Flow annotations.

An introduction to automated refactoring with JavaScript codemods 👾

talkDecember 2016  ·  Copenhagen.js Meetup (December 2016)

Short and practical introduction to codemods. They are "scripted search and replace" and super useful for automation and refactoring.

Rethinking front-end development at issuu.com

talkMay 2016  ·  At the Frontend Conference (May 2016)

As frameworks come and go and best practices see constant change, it is increasingly challenging to make confident decisions about client-side code. We present our experiences in search for the right abstractions and architecture optimized for change. We also elaborate on how selecting the React ecosystem for our stack improved our workflow and product quality, as well as examine problems we faced.

Evaluating a year working with React & Redux

slidesApril 2016  ·  React and Redux Copenhagen Meetup (April 2016)

After using React since early 2015 it was time to evaluate the first year. Where did we come from? What improvements to our codebase did React introduce? Based on learnings from issuu.com.

Abandoning the mothership

blogDecember 2015  ·  7 minute read

It was time to pour into our front-end code the same poison we gave our back-end systems, splitting it all apart into maintainable chunks. Our vision was to make each feature team at issuu.com own, build and deploy its front-end code autonomously—and to make things that ought to be trivial actually trivial!