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

A Simple Way to Route with Redux

November 25, 2015

It's not clear how to use redux and react-router together on a project, but there's actually a pretty simple way to do it. Introducing redux-simple-router, a way to keep the current URL in sync in your app state and router instance.

My ReactiveConf Talk

November 10, 2015

Last week I gave a talk at ReactiveConf about how React and Redux solve a lot of issues in complex apps. I talked about how vital it is to keep things as simple as possible, and how we're trying to clean up the code of Firefox Developer Tools. Watch it here.

Immutable Data Structures and JavaScript

October 01, 2015

A little while ago I briefly talked about my latest blog rewrite and promised to go more in-depth on specific things I learned. Today I'm going to discuss various ways to use immutable data structures in JavaScript.

The Seasonal Blog Redux

September 17, 2015

It's that time of year again! The weeds are growing, the air is thick and stagnant, and I just deployed another refactoring of my blog. "Why does he keep working on his blog," you're thinking, "when I could do all of that with a static-site generator like Jekyll?"

Why React Native is Different

May 06, 2015

I gave a talk at a local JavaScript meetup in Richmond, VA about React Native. Here are my slides and a recording of the talk. Check this out if you want to see why React Native is so cool!


  • 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