Hello! I am a software engineer, writer, and musician, the common ground between which is the manipulation of structures like code, chords, layouts, grammar, and so on. Over the years I’ve worked as an interactive data visualization engineer at the New York Times and as a journalist for The New Yorker magazine, coded custom multimedia software for Bob Dylan’s internal archives, edited a weekly newspaper, engineered and produced recording sessions, taught kids how to code and play instruments, and written columns for Spin, The Village Voice, The Awl, and McSweeney’s.
An Interactive Guide to Ambiguous Grammar: Satirical English lesson for McSweeney’s about destructive uses of language.
Genius security investigation: My attempts to confound the controversial web annotation tool led me to discover that it was strategically undermining a browser security feature in order to exploit it, so I wrote a long reported feature about my findings for The Verge.
memento: binds arrays across time ranges in HTML5 audio and video elements so the current position of the playback head can serve as the array index.
lit: shell preprocessor for extracting Markdown code blocks to enable “literate programming” in any language, an agnostic implementation of similar features in CoffeeScript and Haskell.
d3-history: D3.js plugin to enable deep-linking in data visualizations.
d3-textwrap: D3.js plugin to overcome the limitations of text wrapping in SVG images.
d3-parent: D3.js plugin which selects nodes by searching upward in the DOM hierarchy.
d3-xray: Bookmarklet to enable visual debugging of D3.js data binds on the fly without inserting console.log() calls.
CSS Zen Garden API: A lightweight JSON REST API implemented in pure CSS, sort of.
The Evolution of the Web, In A Blink: An article for the New Yorker’s tech blog about the shifts in web browser rendering engines and their likely effects on the future of the internet.
The Software that Builds Software: An early history of GitHub for the New Yorker.
Software Can Have Opinions: For New York magazine, explaining the design philosophy of “opinionated” software and its possible ramifications for the FBI’s legal assault on encryption.
Nobody Can Build An Email Killer: An op-ed for New York magazine about how the funding practices of Silicon Valley impede the development of new communication tools.
Loving The Robots: For the Village Voice, an essay about moving to New York City while trying to listen primarily to academic experimental music.
It’s No. 1 Somewhere: A column for Spin about major pop chart hits in foreign countries.
bl.ocks: Demonstrations of my D3.js plugins and other sketches and experiments.
Are Zombies Racist?: Satirical interactive network visualization for McSweeney’s.
What You Look Like to a Social Network: For the New Yorker, an accounting of the data fields contained in API responses.
Diversity in Journalism: Historical demographics of newsroom leadership positions across a wide array of newspapers, magazines, and web sites.
Tape Op archive: Assorted feature articles for the recording studio industry magazine.
Yo! Audio: Absurdist fake research paper about sampling rates and bit depths.
Cast In Concrete: Village Voice column reviewing field recordings I captured of New York City buskers and street musicians.