My name is James, and I work on the Firefox Developer Tools. I like to create things and write about technology.

How I Became a Better Programmer

March 20, 2017

Several people at React Conf asked me for advice on becoming a better programmer. For some reason, people see me as a pretty advanced programmer worth listening to. I thought it would be worthwhile to write down my "mental model" for how I have approached programming over the years.

Talking Open Source on Changelog

March 09, 2017

Changelog invited me to talk about open source and you can listen to it here.

Why I'm Frequently Absent from Open Source

February 26, 2017

Sarah and I have been married for 6 years as of today (with 2 kids, Evy and Georgia). I write about a lot about technology on my blog but I don't write about the thing that I spend more time on and is way more important than tech: my family. I thought our 6-year anniversary is a good time to acknowledge that!

A Prettier JavaScript Formatter

January 10, 2017

Today I am announcing prettier, a JavaScript formatter inspired by refmt with advanced support for language features from ES2017, JSX, and Flow.

Leaving Mozilla

December 13, 2016

Last week I was in Hawaii for a Mozilla work week. I saw many great friends, but I also kept faintly recognizing people without remembering how I knew them. Sometimes I even thought I knew them from other parts of my life. It made me realize just how much Mozilla has become part of my life.


  • LLJS fork of LLJS that compiles to asm.js
  • nunjucks powerful templating system for javascript
  • outlet simple Lisp languange that compiles to javascript
  • dcpu-lisp static Lisp that compiles to DCPU-16 assembly code
  • shade terrible WebGL graphics engine
  • octoshot multiplayer WebGL 3d first person shooter
  • css-animations.js easily use CSS3 keyframe animations from javascript
  • dom3d 3d objects with purely 2d CSS transforms