Data Visualization
-
Touring Chambers Bay
The site of the US Open in 2015, Chambers Bay is not a typical American golf course. To demonstrate its steep verticality and unconventional hazards, I loaded the course architect's CAD file into Three.js and created this interactive tour, including hole-by-hole descriptions and video.
-
Mayday Map
Seattle's May Day "celebration" is always a unique news opportunity. To help readers follow the protests, I built a Node.js app that attached to the Twitter streaming API and tracked reporters via geotagging on a map, including photo and video. The result was a riveting live feed of movement between protestors and police.
-
The Mobile Home Trap
For this investigative series, the Seattle Times examined the shady business practices of the Warren Buffett-owned Clayton Homes. This particular piece detailed how proposed legislation would largely exempt Clayton's loans from regulations. For my interactive, I tried to highlight the effects of that change on the market, and show how the law would barely affect other mobile home vendors.
-
Sell Block
Another enterprise Seattle Times investigation, this piece focused on the broken promises of the Washington State prison labor industry. I worked on the visualizations for this piece, including the logo design. But it's most interesting to me because it serves as the debut for two new custom elements — <responsive-frame> for embedding elements, and <leaflet-map> for assembling the state map.
-
Loaded with Lead
The culmination of a year-long investigative effort, I worked on all the interactive elements for this story about lead poisoning at gun ranges in Washington State and around the country. In addition to the header and page design, I worked on the string-of-pearls chart, the interactive maps, and the cutaway diagram of Wade's shooting range. Our design was featured in a Q&A with the Society for News Design.
-
Election 2014
For the mid-term election, I built a scraper for the Washington Secretary of State and King County data feeds, as well as a results page with embedded maps and bar graphs of the results. The maps in particular are interesting, being built as custom elements (a first for a news organization, as far as I'm aware). The backend for this project was developed in public, and is available on GitHub.
-
Bidding Wars
When a Times business reporter showed me his "heat map" of where Seattle house-hunters face the toughest competition, I knew it could be a dynamite interactive graphic. Built on Angular, this page lets users search for a neighborhood, filter by city, and find out just how badly they'll probably need to overbid in order to buy a new home. Source code for this interactive is available on GitHub.
-
Where in the World are Seahawks Fans?
In 2013, the Seattle Times put out a "fan map" built on Google Fusion Tables, letting Seahawks fans tag themselves around the globe. It was a success, but we wanted something more scalable for 2014. The new version has marker clustering, AJAX form submission, and a much more polished look-and-feel. It also successfully leveraged our news app template, and the ability to use Google Docs as an ad-hoc CMS.
-
Building Toward Disaster
This Seattle Times interactive was designed to let readers explore more than 80 years of history leading up to the 2014 Oso landslide that killed 43 people. Reporters gathered 13 aerial photos dating back to 1933, as well as data on all of the houses, logging, red flags, and attempted fixes for the hill. I arranged the timeline vertically, which makes it easier to scroll on desktop and mobile, and linked its progress to the photos so that readers could flip through them and watch the river gradually eat away at the base of the hill.
-
Against the Grain
In this project, the CQ newsroom wanted to understand legislators who vote against the party line--why do they go "against the grain?" What kinds of votes garner the most dissent? To let people browse through our database of party unity votes, we built this web application in object-oriented Javascript and HTML. As readers move through the data, new panels will open to the right, but they can return to an earlier fork in their search at any time. This interactive was a powerful experiment, not just as a standalone interactive, but also as an exploration of new UI for CQ's extensive (but cumbersome) vote database.
-
Who Owns the Debt?
As the debt limit debate neared its deadline, my team at CQ produced several graphics on the history of the debate, past attempts to raise the limit, and the composition of the debt in question. In this interactive, built in HTML/JavaScript, we pulled apart the components of the debt to see just what was owed to whom. It was featured, along with its companion, on the front page of the Economist's web site.
Software Development
-
ArenaNet
You could argue that it's as much as web company as a game company — certainly the thousands of lines of JavaScript in its services cloud can speak to that. At ArenaNet, I wrote front- and back-end code for our NodeJS-like platform, including the marketing, account infrastructure, and developer APIs. I also worked on improvements to the in-game UI for Guild Wars 2, the company's award-winning MMO, which is partially embedded in a web view and uses cutting-edge, single-page application technology.
-
Caret
In 2013, I bought a Chromebook and was shocked to discover that there wasn't a good offline text editor available for Chrome OS, so I built one myself. Caret is a professional-grade tabbed text editor built around the Ace editing component. It features fully-configurable menus and keybindings, open file memory, a command/go-to palette, and more. It's the best offline editor available on Chrome OS, and it's battle-tested--every version since 0.0.16 has been written in Caret, and it's been used by members of the Chromium team to work on the browser itself.
-
Weir
In the wake of the Google Reader shutdown announcement, I decided to try writing my own self-hosted RSS reader before I would move to another third-party service. Weir was completed right before the deadline, and I've been using it since. It's written in Node and PostgreSQL for the server-side components and Angular on the front-end, and it boasts a fully-responsive design for viewing on phones or desktop machines alike.
-
Seattle Central College
At CQ, I had often trained journalists as part of my multimedia team, but when my wife and I moved to Seattle I decided to take the next step, and began teaching classes in JavaScript and web development at Seattle Central College. As always, teaching others is a great way to really learn a topic yourself, and I've learned quite a bit. I'm also working with the full-time faculty to shape and improve the curriculum for front-end development.
-
Big Fish Unlimited
In 2012, I spent about a year working for Big Fish Games in Seattle on their Big Fish Unlimited streaming service. I rebuilt the MVC framework that supported the site (laying the groundwork for future BFG properties), designed the responsive framework used to present it on any form factor (desktop, tablet, and mobile), and wrote all the JavaScript in AMD modules (a first for Big Fish). The JavaScript made heavy use of pub/sub events, allowing us to decouple the native or plugin layer that did the actual streaming on each device from the display logic on the rest of the page.
-
NPR for Android
In my spare time, starting in 2009, I started contributing to NPR's open-source Android client, primarily by splitting the playback function apart from the UI code. This helped lay the groundwork for the 2.0 version of the application, and it makes the application much more Android-friendly for users. Working with NPR and Google on this application was a fantastic learning experience for source control, code review, and mobile application design.
-
Urban Artistry
As the Director of Interactive Media for Urban Artistry, a non-profit dance company based in Maryland, I'm responsible for our online presence. People interested in UA may be accessing the Internet primarily on mobile devices or older hardware, particularly those who are coming to our events. So when we got a chance to redesign the site for a cleaner, more modern look, I took the opportunity to write a completely custom WordPress theme that is responsive and fast, but still runs effectively in legacy browsers. The look and feel is inspired by our logo, which combines evocative whitespace with a bold red splash.
Writing
- Tag Soup An article detailing our use of custom elements at the Seattle Times for the Knight-Mozilla OpenNews blog....
- The AudioFile, Part One Originally published at Ars Technica, September 18, 2007...
- The AudioFile, Part Two Originally published at Ars Technica, October 3, 2007...
- The AudioFile, Part Three Originally published at Ars Technica, November 11, 2007...
- Guns, Gangs, and Greed Originally published in The Escapist, October 2005...
- How China Cheats at the Videogame Industry First published in The Escapist, Issue #49...
- JavaScript for the Web Savvy A textbook all about JavaScript, written for my classes at SCCC....
- Not Your Mother's Mason Originally printed in Northern Virginia Magazine, May 2006...
- Of Mice and Mines Originally published at Ars Technica, September 12, 2007...