James Zetlen.

Home

I'm a senior JavaScript developer and web application architect.

I know most of the little low-level details of Web development that you don't want to worry about. I get a lot done and I know what not to bother with.

I believe that clean, understandable APIs are undervalued right now.

I try to be good at listening, and I love teaching and learning and pair programming one-on-one.

I've written my fair share of clever code, and these days I prefer clear code.

I want computers and the code they run to be accessible to people. I want us to use simple computing tools in our daily lives, to make art or to do science or to help people or to connect to the world. Computers themselves should fade away, leaving only the experience. It's all gadgets until it gets out of our way and becomes useful; then, it becomes technology.

Brief history.

I work at PayPal, on the next-generation web experience. It's the largest deployment of Node.js in the world (that I'm aware of). I'm more of a middle-to-front-tier developer here, so my work includes deployment and clustering with Docker, CI and developer workflow improvements, application architecture with Kraken, and cross-platform component architecture. My first project lead role was a new cross-application sitewide search experience.

I worked at Volusion from 2011 to 2016. I was the first frontend developer, and the theme engine architect, for the brand new enterprise eCommerce platform, Mozu. I created an "isomorphic" template architecture and numerous SDKs and developer tools. As of this writing, the Mozu assets were acquired by another company and will probably be renamed.

I worked at Convio (now Blackbaud) from 2007 to 2011. I built accessible websites for charities, created new developer tools and best practices, and led large multi-affiliate deployments.

Talks I gave.

Optimizing JavaScript in 2016: How to optimize JavaScript in the age of the wacky VM, and whether you should even do it at all. Delivered at the internal JS@PayPal conference in 2016.

Modularity with NPM: Why modularity in web development is important, and why we should standardize on a package manager to get us there. Delivered internally at Volusion in 2015.

Is Your Responsive Design Responsive Enough?: Responsive web design, how to treat it as a principle instead of a buzzword, and how to tenuously and pretentiously tie it to Greek philosophy. Delivered with Dane Downer of BrandLabs at SXSW Interactive 2015.

Projects.

I write open source software. I've made a few professional tools, some art, and a few projects for friends. Here is an abridged selection.

talladega: a performance benchmarking UI for Node. I wrote it for my talk on optimizing JavaScript.

gnomon: A command-line utility for decorating a stream of console messages with timing information. I wrote it at PayPal while troubleshooting app performance and open-sourced it through them. The name comes from an ancient word.

XKCD Simplewriter: An old friend of mine, Randall Munroe of XKCD, asked me to make a fun "simple writer" for his new book, Thing Explainer. The simple writer helps you write using only the top ten hundred words in our language. You never know when someone might thank you for writing this way. Here is the computer writer I made for him, and here is something he wrote to tell his readers about it. It's very simple, of course, and also it's light green.

pinwheel: A Slack bot, written in Node, that responds to "pinning" messages in Slack by tweeting the messages through a group Twitter account. Developed in tandem with a group of beloved friends, this bot has a bunch of cool strategies for tweeting the Slack experience, including screenshots and emoji sorcery.

clortho: A Node library for adding secure and user-friendly cross-platform credential management to command-line utilities.

samoan-garden: A Node utility for generating anagrams of phrases.

jort: A Node testing helper that creates ephemeral local HTTP servers that deliver a single payload, or a sequence of preconfigured payloads, and then disappear. Built for testing the Mozu Node SDK, jort seemed to be useful enough to document, assign a charismatic name, and release.

all-other-things-being-equal: An extremely useful Node assertions pack that helps remind you of some important things about making software that uses networks. Classic Zetlen.

fenestrate: A Node utility for Windows users, who are plagued with a strong disagreement between the NPM package resolution strategy and the Windows userland utilities. It's basically a superpowered npm dedupe; it aggressively flattens the package hierarchy in an attempt to give you more headroom on Windows. No longer necessary on NPM3, but it was fun while it lasted.

Sundries.

My name is on a software patent owned by Volusion. I'm ambivalent about the utility of software patents in general, but this one was a neat idea.

synesthesia is a little toy that displays the color values of words and names whose characters resemble six-character hex codes, like #BADA55 or #FACADE. Now with Wikipedia article titles as well as dictionary words.

I made a mixtape generator using Yeoman, Assemble, Grunt, and a complex SVG-powered animation that replicates the motion of tape wheels as closely as possible.

ttrraannssffoorrmmss is an art project to create the most useless DOM manipulation library possible, with the most obtuse API, the most impossible installation, and bad instructions.

Sorry Everybody: Ten years ago I accidentally went viral by posting a half-ironic picture on the Internet after the 2004 re-election of George Bush. Some friends helped me turn it into a website. It got a fair bit of news coverage, including some quotes from 20-year-old me that I still cringe when I hear. There are still a lot of adorable pictures on this site. Update: Site's broken, I'll fix it soon.

DIPLOMATIC SHARK is my first and still best website, ca. 2003 and redesigned exactly zero times. DIPLOMATIC SHARK WANTS US TO SIGN THE TREATY.

In 2012 I tried to make a minute of music every day. I didn't get very far, but I learned a lot.

xanadont I started a band in 2008. We broke up because of other commitments, but we recorded one demo in a studio in east Austin.