JAMES LONG

JAMES LONG

is a developer & designer with over a decade of experience building large-scale applications. He created Prettier, the standard of JavaScript code formatting, led a long-term effort to port Firefox developer tools to React at Mozilla, is founder of Actual, and explores new ideas for programming through blog posts. He focuses on solving real problems for users with a great user experience. Let's work together

PROJECTS
Actual
The personal finance system of your dreams
A product I've been working on for the last 3 years, launched in January, and working on scaling up to become my full-time income.
Prettier
An opinionated JavaScript code formatter
I created Prettier which has become the default JavaScript code formatter. Other maintainers have taken over the project.
Blink
A video editor — make memes and lyric videos on iOS
Helped a client explore new social video formats using advanced typography and augmented reality overlays.

POSTS

How one word in PostgreSQL unlocked a 9x performance improvement

May 26, 2020
At the very heart of Actual is a custom syncing engine. I'd like to talk about a PostgreSQL feature that enabled a 9-10x performance improvement.

A case study of complex table design

May 6, 2020
This is a look at how I approach product design and all the considerations you need to think about. I explain some improvements in the recent version of Actual's budget table.

Joining Stripe

April 6, 2020
I'm joining Stripe.

The wonderful sound of an atomic commit

February 11, 2020
Atomic commits are one of the most important properties of reliable software. Recently I improved the syncing layer of Actual using transactions, and I talk about why it's so important.

Thinking about growth and profit

January 9, 2020
A deep dive into the relationship between growth and profit after my last post about profit forecasting.

TALKS

CRDTs for Mortals

dotJS, Dec 2019

Go Ahead, Block the Main Thread

React Conf, Oct 2018

My History with Papers

Papers We Love, Sep 2017

A Prettier Printer

Revolution Conf, May 2017

Debugging Your Debugger

React Rally, Sep 2016

Abstracting Just Enough

ReactiveConf, Nov 2015