James Somers

James Somers is a writer and programmer based in New York, NY. Contact me at

On this page I have collected:


The articles with asterisks (*) have gotten the most attention. I've highlighted a few of my favorites.

The New Yorker

The Atlantic

The New York Times Magazine

The Village Voice


The MIT Technology Review




Aeon Magazine:


Blog (jsomers.net/blog):

Older stuff, pre-blog essays:

In The Bad Version:

On the Ginzametrics blog:

On the Pivotal Labs blog:

On Genius:


This is a list of the books I've read since my first day at college, arranged basically in the order I read them. I have the list both to jog my memory and because I've read a lot of stuff I've loved, and want other people to find it.


  1. My friend Ben and I wrote a New York Times crossword puzzle, which appeared in print on Saturday, October 20th 2018. You can download it here.
  2. I reverse-engineered Google Docs to create Draftback, a tool which allows you to play back any Google Doc's history as though it were a movie. (See an example here, from a FiveThirtyEight article about the tool.) It has more than 300,000 users, most of them teachers and students. Here's a note about how it's being used in the classroom, from the Journal of Interactive Technology and Pedagogy.
  3. Jimbo Jeopardy! is a playable version of the j-archive. It lets you play more than twenty years worth of real Jeopardy games. Here is a link to the github project page. You can read a blog post about it here. Or click here to play now!
  4. My friend Ben and I made a typewriter that sends its keystrokes in real time to a Google Doc. We call it the DocWriter.
  5. I made a tool to visualize trends in Jeopardy! clues over the past 30 years, written up on TIME.
  6. I created a tool for reporters that syncs notes to a recording, and generates a timecoded transcript.
  7. I've made a very simple typewriter simulator (a text editor where you can't hit Delete) at jsomers.net/typerwriter.
  8. With two other students, Michael Bommarito and Jon Zelner, I built a small system to help researchers at the University of Michigan's Center for the Study of Complex Systems manage and analyze data from big runs of agent-based model simulations. We were funded by Google as part of their Summer of Code (2008). Here you can download some of our code.
  9. As discussed in this blog post, I tapped into the Google Directions API to answer a few neat questions about driving directions, including "What's the most complicated route in the United States?" The relevant code is here.
  10. I wrote up my solution to Project Euler problem #106 in this blog post. Here is a more recent solution, this time in Ruby, to problem #215. And here's a write-up for problem #191.
  11. On this page I wrote some Javascript to quickly generate rows of the Rule 110 cellular automaton.
  12. I spent a few frantic weeks on a project (also) called "draftback," which was designed to give writers fine-grained feedback on their writing, fast. It worked—in fact I think it worked well, in spite of some minor bugs—but my attention and interest slowly waned. The code is here. I eventually expect to revive this in some form or another.
  13. For a while I went on a kick playing the Facebook game called Scramble, and eventually I wrote a solver for it. Along those same lines, I wrote a program to generate word puzzles like the ones found in this Sporcle game, where you're given a six-letter template, say,
    _ L _ _ _ X
    , and asked to find the word that fits.
  14. I had an idea for an application that would collect analog feedback on web videos. So as someone's watching a Steven Colbert clip, for instance, she might wiggle her mouse whenever she found Steven particularly funny. The funnier she found him, the harder she'd wiggle. That data about her interest and engagement (mapped to particular moments in the video) would be collated with data from other viewers. Here's a simple demo, and here's the Github repository for the demo.
  15. I've always wanted a simple utility for copyediting that would let me make insertions, deletions, and comments with the lowest possible overhead. The idea is in the same neighborhood as (but importantly different from) that "draftback" tool described in #2 above. Anyway, check out what I ended up calling "diffly." Here's the source code.
  16. Some friends in college taught me an Indian trick-taking game called Mindy Coat that feels very much like Spades or Euchre. Since we graduated everyone has spread around the globe—and so in order to play I had to make a real-time multiplayer online version of the Mindy Coat game. You can browse its source at its Github project page.