I'm a technologist, hacker, musician, and sometime artist. I'm interested in games, art, data, visualization, and the Internet. I'm passionate about building technology in support of art, imagination, and creativity.
I spend my days (and some nights) developing games for Massively Fun. We're working hard to make the open web the next big platform for gaming.
I spent a long time at Sub Pop Records as a chair the chair of the Department of Cyberspace (read: Director of Technology), and was fortunate to work with amazing artists on a daily basis as a member of Sub Pop's A&R department.
I've spoken at SXSW (several times), Northern Voice, Podcast Hotel, and SF MusicTech about the music business, technology, and social media. I have a masters degree from University of Washington in Communication in Digital Media (MCDM).
- Me on the web:
- Key affiliations:
- In addition to art and games, I like:
- Fun facts:
2012-Present: Developer at Massively Fun
Working on a small team to making big games; we're here to make HTML5 the next big gaming platform!
2003-2012: Director of Technology/A&R at Sub Pop Records
As the orignal label home to Nirvana, Soundgarden, The Postal Service, The Shins, Iron and Wine, Band of Horses, Flight of the Conchords, David Cross, Fleet Foxes, and many, many more, Sub Pop Records is a venerable giant of independent music. In my role as the director of technology (and formerly as director of new media) I've worked in digital marketing, business development, strategy, and served as the technical lead for our digital initiatives over the past 8 years.
The grind. My day-to-day-responsibilities include (but are certainly not limited to):
- Responsibility for direction and execution of technology strategy and development projects.
- Digital marketing plans for Sub Pop releases.
- Manage a small group of Technical Staff charged with software, digital assets, metadata and digital marketing.
Key new media/technology projects:
- I delivered our catalog to iTunes, and developed our early relationship with Apple starting in 2003. I served as the day-to-day contact with Apple until 2005.
- I built a royalty accounting system for DSPs. The system was a bit of a hack, but it enabled us to go forward with a couple of important deals in the digital space that wouldn't have happened in its absence. It was built with Perl, MySQL and PHP.
- I updated and solidified our server infrastructure from an unreliable server in a closet, to a scalable multi-system infrastructure in colo, to the cloud based infrastructure that we use today.
- Starting late 2005, I initiated, project managed and served as a technical lead on a ground up rewrite of subpop.com in Ruby and Rails. We built a new database schema, migrated legacy data and customers, and launched the new site with minimal downtime in January 2007. In addition to a bespoke shopping cart and CMS, the new site provided web based tools for staff to manage artist, release, and tour data, digital assets, and integrated directly into our warehouse for order processing.
- I've pushed Sub Pop to be an early adopter of social media and worked to integrate digital media tools into our larger marketing process. Sub Pop was early to MySpace, and YouTube, and (as best as I can tell) was the first record label on Twitter.
- Built a secure streaming service for advance records on subpop.com.
- Built a mobile version of subpop.com in 2008. It was a quick and dirty project, and I'd like to rewrite it to improve the UX.
- I built many, many one off pages for album release and Sub Pop events. See the projects section for examples.
- Tiny Vipers: Hands Across the Void, 2007, Life on Earth, 2009. A&R, project management.
- Sub Pop Singles Club: 3.0, 2008-2009. Project management.
- Mark Sultan: Hold On (single), 2009. A&R, project management.
- Dum Dum Girls: I Will Be, 2010, Jail La La (single), 2010, He Gets Me High (EP), 2011, Only In Dreams, 2011 (forthcoming). A&R, project management.
- Happy Birthday: Happy Birthday, 2010, Shampoo (single), 2010. A&R, project management.
- King Tuff: TBD, 2012. A&R, project management.
ERO operates as a small digital label and umbrella LLC for consulting and other projects.
- In 2005, I worked with Lucky Horse Industries to help build Modest Mouse's first web store in PHP.
- Since 2006, I've digitally reissued records by The Fallouts, Unnatural Helpers, and the Coconut Coolouts, working with these artists to make their records available on iTunes and via other digital services.
- In 2008, I hosted an official showcase at SXSW Music. It was a lot of fun.
- In 2009, I had my first foray into vinyl, issuing a Coconut Coolouts 7-inch for our US tour.
- Currently, I'm working on a geo-based social game called Sprouting.
2002-2003: Sr. Software Engineer at Cobalt Group
I owned (and rewrote) a Perl data loader for the Cobalt Group's auto parts locator product. The loader ingested the parts inventories from thousands of car dealerships in disparate formats into an Oracle database which powered the web-based service. The parts loader was a critical piece in the system and needed to clean and ingest millions of records on a daily basis.
Buzzwords: Perl, Oracle, Solaris, Java
2001: Contract Developer at TrendWest Resorts
I maintained a web-based contact management app for customer leads written with Perl and FastCGI, and built a suite of monitoring tools for TrendWest's servers in Perl.
Buzzwords: Perl, DB2, AIX, FastCGI
2000-2001: Systems Architect at Liquisite
I worked as the Unix sysadmin and as the lead developer for a prototype web-based travel reservation system.
Buzzwords: Perl, MySQL, BerkleyDB, HTML::Mason, Debian
1999-2000: Software Engineer II at Verio
I built network monitoring and uptime analysis tools for Verio's tier I backbone and NOC. I also developed best practices for Perl development.
Buzzwords: Perl, Sybase, Oracle, SNMP, Solaris
1998-1999: Unix Systems Engineer at Verio
I worked in a regional group that rolled up the local ISPs owned by Verio and migrated customers to a common infrastructure. Lots of automation. Grey beard stuff. My co-worker had a snake.
Buzzwords: Linux, AIX, HP-UX, Solaris, BDSi, MySQL, Perl, Sendmail, Exim, Bind, Apache
1997-1998: Unix Sysadmin at Slip.net
I worked in a small group of sysamins that did all the network administration, system administration, and development. I provisioned POPs, frame relay, and early DSL.
Buzzwords: Solaris, Cisco IOS, NIS+, Perl, Apache
University of Washington, Masters of Communication in Digital Media
Graduated: August 2011, 3.9 GPA.
Studies included major projects in (see the projects section):
- Disruptive Distribution in Music (published as a two part series in The Four Peaks Review)
- Social Media and Market Research
- HTML5 for Data Visualization
- Virtual Goods and Marketplaces
- Management Consulting
- Social Game Design
University of Washington Extension, Java Programming Certificate
This was a yearlong program consisting of three courses:
- Object-Oriented Programming in Java
- Application Programming in Java
- Advanced Features of Java
Fairhaven College at Western Washington University, BS in Mathematics with Distinction
Graduated: March 1997, 3.7 GPA.
Departmental Distinction in Mathematics - Distinction project in error correcting codes
Activities and Societies: Mathematics Fellow - 1995, 1996, 1997
Sprouting is a geo-based social game (with illustration by Jesse LeDoux), that I hope to launch in early 2012. The game is a proof-of-concept project for a platform based on building deeper game mechanics into geo-based services.
The web services backend is built in Ruby and Rails and the initial client is an HTML5-based web app.
Playtesting sign up lives at sprouting.me.
Canvas Masking Experiments (2011)
These are a couple quick experiments that I did with transparent PNGs acting as masks over a canvas element. The first was inspired by the animated gradient Mac OS X screensaver, and was my first attempt at this type of effect: http://www.ero.com/play.html
The second is loosely inspired by the isometric tiling in "2.5D" games. I used an affine transform which maps squares into the shape of isometric tiles on randomly colored rectangles and a slight offset (to provide additional texture) to produce the effect: http://www.ero.com/ero2.html
The ERO mark was designed by Scott Ponik.
subpop.com Digital Asset Visualization (2010)
The goal of this project was to explore web-based (specifically HTML5 related) data visualization techniques for large data sets. To that end I processed subpop.com's free MP3 download data from 2001-2010 and used it to generate a canvas-based visualization.
Unfortunately, most of my time was spent on data munging and I didn't have much opportunity to explore actual visualization techniques too deeply. I settled on a simple text based representation of downloads grouped by song title, with the area relating to total downloads in a time-based animation.
A full project description and post-mortem is available here.
A version of the actual visualization is live here.
Media Space Thought Pool Prototype (2010)
MSTP is a prototype Rails app, which follows specific Twitter search terms and then builds threaded conversations based on tweets which match those terms. The goal was to provide a richer conversation space for ideas that get lost in the Twitter stream during conferences and classes.
This blog post explains the project in greater detail.
A sample version of the site is live here.
Canvas Tracking Experiments (2010)
Some interactive experiments that I did while learning the Canvas API and writing a simple library for Canvas based animations and effects. This effect in the below example is loosely based on the Google doodle that appeared on September 7th, 2010.
Example: Hyperactive ball and mouse effect.
Sub Pop Website (2006-2007)
In late 2005, we started work on a ground up rewrite of the Sub Pop Records website. The old site worked well, but was hampered by an overly flat (and aging) data model and inadequate separation between code, data, and presentation.
We migrated all the data to a new (forward thinking) schema, and did a ground up rewrite in Ruby on Rails over the course of 2006. In terms of scope, this is a massive web app; subpop.com serves as the the authoritative source for artist, tour, and release data of upwards of 40 active artists and the metadata for all Sub Pop releases, serves the promotional needs of the marketing staff, supports retail (with things like MP3 download codes), and is a bespoke, end-to-end ecommerce solution from customer check-out to order processing and printing in our warehouse.
The site has an extensive admin side which allows non-technical staff to develop and manage site content, add artists, products, and releases, upload downloadable content, resize images, and much more. Furthermore, since it was built when the Rails was much more of a frontier than it is currently, almost all of these features were built by us without the benefit of any plugins. The project was implemented by me and a contract developer; I wore developer, architect, technical lead, and project manager hats.
Source is available on GitHub
MiniTest.js is a port of the Unit and Assertion modules from Ryan Davis' wonderful MiniTest suite.
MiniStat Gem (2007)
MiniStat.rb serves the same purposes as MiniStat.js: a simple, pure Ruby implementation of single variate statistics that's good enough for most use cases. Lately I've been using it with MiniTest to test probabilistic code.
Disruptive Distribution in Music: An Historical Perspective (2010)
ABSTRACT: The current digital disruption to music distribution, while extensive, is not without historical precedent. The introduction of the phonograph, radio broadcasting, and a combination of several recording and distribution technologies in the 1940s all caused disruptions to the music industry. These periods were followed by long phases of consolidation. This paper attempts to examine previous technological changes in the business of recorded music and identify several patterns that they have induced.
Online version of the paper is here.
This paper was published in the June 2011 issue of The Four Peaks Review.
Digital Disruption: Music Distribution in the Digital Age (2010)
This paper examines the digital distribtion in music over the past 10 years.
Online version of the paper is here.
An updated version of this paper will be published in the December 2011 issue of The Four Peaks Review.
Fancy Lads is a beat band which shares the same members as Dancer and Prancer. We play our first show in August, but if everything goes off according to plan, it should be something like this:
I play guitar and help with back up vocals.
Dancer and Prancer
Everyone loves Christmas, right? The members of Dancer and Prancer do; our band exists to do Santa's bidding. Every year we play instrumental surf versions of Christmas songs at as many shows as we can cram into December.
The attached set from a live set that we did on Sonic Reducer at KEXP last year.Dancer and Prancer at KEXP by Harry Steams
The Coconut Coolouts are a party band formed after the demise of other more serious bands who's names don't bear repeating. We've toured the US, put out many singles, and played many, many shows. We also make our bass player wear a banana suit (see above). I play lead guitar.
- "I Wanna Come Back (From the World of LSD)" b/w "Purple Haze" (ERO)
- "The Monsters Crash the Regular People's Party" b/w "Last Man Alive" (Dirtnap)
- Split 7-inch with Personal and the Pizzas. "Pizzafest" on the Coolouts side, "Hittin' the Road" on the P&P side.
- "Pizza Regret" b/w "Head Full of Stones" (Seeing Eye)
- "We Drink Blood" b/w "Nerd Holocaust" (Floridas Dying)
- "Yeah, Right" b/w "Punk House Pts. 1 & 2" (Kenrock)
- "Spinaround" b/w "Swim" (Heads Up)
- Party Time Machine (Xeriod)
No Land's Band
No Lands Band is an ambient, improvisational project. I've self released several CDRs in limited runs.Day Friends by Harry Steams
Inside Space: A Solo Exhibition at Crawlspace Gallery, 2005.
Inside Space was an interactive, site specific installation which explored the relationship between artists and viewers in the context of a gallery space. In the installation, I partitioned the gallery into two distinct rooms. The first room was a sterile "gallery" space which presented the viewer with live projection from the second room, a replica of my living room at home.
During the opening, I invited friends to a party in this living space; we ordered pizza, drank beer and played Grand Theft Auto on the television. The camera was set up to capture an uncomfortably close shot of the face of whomever was playing the game; this was projected on an entire wall in the gallery room. Viewers were invited to explore the space with no explanation, and left to discover and contemplate the connection between the disparate happenings on their own.
Untitled Video Installation, Bellevue Art Museum Annual, 2001
For this installation, I built a replica living space in my studio. The space was built with wood paneling, shag rug, cheap mid-century furniture, and a blank white, framed picture which occupied the center of the main wall. I then "lived-in" the space for several evenings, hanging out with friends, drinking Modelo and reading 70s surf magazines.
This space was then filmed with composited build instructions and plans for an animated surfer on a wave looping in the picture frame, which I composited into the picture frame as well. This video was submitted to the annual. I then carefully disassembled the installation, documenting the entire process with photographs.
The work was installed and shown at Bellevue Art Museum as a kit; the museum was given an instruction book assembled from the photographs, the video (which ran on a TV), and the materials from the disassembled installation.
This work won a juror's award at the show.
Thoughtforms, Bellevue Art Museum Film Festival, 2000
This short film juxtaposed slow motion footage taken on the set of my friend's narrative film of a stuntman being hit by a car, with quotes from an obscure metaphysical text called Consciously Creating Circumstances by George Winslow Plummer. The film was set to a "happy" electronic score reminiscent of an 8-bit video game score.