A running log of things I’ve built and learned along the way.
Building in fast feedback loops
talkOctober 2025 · ViteConf 2025Give 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 2025Concluded 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 ChangelogAdded pull request preview links as a first-class citizen in Linear.
Linear to Linear importer
shipAugust 2024Shipped 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 ChangelogExtended triage responsibility with OpsGenie and Incident.io integrations, plus API support for custom rotation schedules.
Project timeframes
shipJanuary 2024 · Linear ChangelogShipped 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 readReflection on my first 4 months at Linear.
Linear Demo workspace
shipNovember 2023Shipped the Linear Demo workspace, an ephemeral client-side playground for exploring the product and features.
Triage responsibility
shipOctober 2023 · Linear ChangelogShipped 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 readOne 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 readMy 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 read7 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 readOver 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 readA 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 readTips 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 readCSS 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 readI’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 readIt 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!