Project Archive

For a summary of what I do, see my resume. What follows is a catalog of most of the things I’ve done so far. You could think of it as the world’s most disastrously long and self-deprecating resume.

Current Projects

Since we started Steamclock, I’ve usually worked on a new type of project every couple months. We love working on our own apps, but client work can be fun too.

  • Party Monster: A queueing DJ app for parties and road trips. We made a funky video for it as well.

  • WeddingDJ: The best darn iPhone app for running music at weddings.

  • Consulting work: Some of my more interesting client projects at Steamclock have been:

    • an interactive 3D map of the internet
    • a web app for doing developer support on Stack Overflow
    • an iPhone app for finding fresh food
    • a realtime video chat app
    • helping a startup hire a CTO
    • multiple photo sharing apps
    • an app store for a Fortune 500 company
    • a JavaScript app for the Fortune 500 itself
    • an interactive retail app
    • a system for running valet businesses
    • an Android app for tracking commercial fishing
    • an iPhone app for ordering bespoke suits.
  • VanJS: I created the Vancouver Javascript Developers group, and it’s turned out pretty well.

  • VanCocoa: Based on the success of VanJS, we started an iOS and Mac developers’ meetup as well.

  • Prism: A photo browser for iPad that excels at showing photos of kittens.

  • Up Up Down Down: A podcast about the craft of video games.

  • Unladen Follow: I created a tool to unfollow the most annoying people on Twitter. It was semi-broken by Twitter’s 1.1 API changes, but I’d love to bring it back one day.

  • Prototypes: Lots of interesting prototypes haven’t made it out of the Steamclock labs - for example an antisocial Facebook app, a Git client for Mac, and a turn-based strategy game.

  • Hockey: I recently learned to skate so I could play hockey. More specifically, play hockey on a team comprised entirely of programmers. We are called the Honey Badgers. It is awesome.

Speaking and Teaching

I love presenting and teaching, especially when I don’t need to grade any papers.

  • Talks and Podcasts It’s like teaching, but less work and more fun! Some of my talks:

  • Podcasting: I’ve been the guest on a number of podcasts, which is always a lot of fun. A couple examples are Springboard, Lining Things Up, and Unprofessional.

  • CMPT 470: I’ve twice taught the 4th-year Web Technologies course for SFU’s Computing Science department. In doing so, I learned that I love teaching and hate grading.

  • Web 101: I taught an 8-week intro to web technology at Mobify.

Apple Era Projects(2008-2010)

For reasons I don’t fully understand, Apple offered me a job in 2008. I never thought I’d make a detour into working for a large company, but it was a fun ride.

  • iWork for iPad: I worked on the iWork iPad apps, primarily writing Objective-C to support iWork.com. Having a secret iPad prototype locked in my desk was possibly the most ridiculous thing ever.

  • iWork.com: I wrote JavaScript, CSS, and Objective-C for rich web app that helped proof iWork documents. Lots and lots of JavaScript.

  • Prototypes: Working on product prototypes that don’t ship is as fun and frustrating as it sounds. Over beer you should totally not ask me for NDA-violating war stories on this topic.

  • Websites for Fun: I’m often making websites for fun, for example for a local theatre company, a WoW guild, and my wedding. If there’s one thing I’ve learned about this, it’s to use a static site generator and not have to worry about updating Wordpress for the rest of your life.

Discovery Era Projects (2003-2008)

My first real tech job was at a small software company that builds apps for education. I’d been a friend of the company since the late .com era, letting me watch them explode, implode, and rebuild over most of a decade.

  • DiscoNet: My main job at Discovery was creating and iterating the company intranet and CRM system. I had a lot of freedom with this project, as evidenced by the fact I was somehow allowed to name it DiscoNet. Disco would later resurface as a theme in my software work.

  • Learn Faces: I built a game for school staff to learn students’ names and faces using JavaScript. Which is pretty random.

  • Principalm: Before mobile apps were cool, Principalm ran on Palm m500s off of 16MB SD cards. It was SO COOL. I did QA, branding and design work, and other product-related tasks for it, giving me my first taste of product management.

  • Just Ask Oldguy: I designed a Q&A site where my former boss answered random questions from the internet.

  • Budgetable: I built a financial management site, and then sold the domain to a team who is actually going somewhere with it.

University Era Projects(2002-2008)

I started university at UCFV, but I upgraded to SFU within a year to preserve my sanity. I learned something from my courses, but I learned more from the crazy side projects I would take on.

  • Altering Time: What started as a forum turned into a long-running community site. It included multiplayer strategy games and user-generated content - before it was cool.

  • Political Asylum: My first multiplayer game, Asylum was a rat’s nest of PHP and MySQL supported some wicked political machinations.

  • Engineering Faith: Excited by the success of Asylum, I built a second game about creating your own religion. It was very well architected, but I forgot to make it fun. Oops.

  • SFU CSSS: I spent time as the VP Operations, Acting President, and Secretary of the Computing Science Student Society. I have since retired from politics.

  • The Cascade: During my year at UCFV, I wrote articles for the university newspaper. This was the peak of my stint in journalism.

  • Gender Quiz: I built this somewhat better than random-guessing AI project almost entirely out of SQL. If that’s not a case of seeing a nail because you have a hammer, I’m not sure what is.

  • Modeling Plants with L-Systems: This project on generating 3D plants for SFU’s CMPT 461/761 class gets me both a crazy amount of traffic from Google and occasional emails from scientific journals. If you’re looking for a research topic in graphics, I suggest plants!

  • Other Project Courses: I took all the project classes I could in school. Besides the plants and bizarro gender quiz, I built a small distributed system, a pinball game, a raytracer, a student society website, a Java compiler, an STV voting system, and 3D fireworks simulation in C#. All of these were bad.

  • Freelance web development: For the better part of a year I did solo web contracting, and learned many lessons on the way. I built sites for my mom’s work (a credit union), a construction company, a venture investor, a project management startup, and my stepmom’s doggy daycare. It was, uh, world-class.

High School and Earlier (1990s)

  • Uniserve Intranet: Besides being a Customer Service guy, I built the intranet at the local ISP where I worked. I do not know why they let me do this.

  • Improv: In high school one of my favourite things to do was improv. The premise was to travel to other high schools and make an ass of yourself in a comedic and competitive manner. We got to the provincial championships, but suffered a crushing defeat at the hands of slightly more ridiculous high school kids.

  • ACSS Theatre Company Video: This ancient nostalgic video has a horror story attached to it that should have scared me off of taking on large projects in the future. It did not.

  • FantasyTech 3: I wrote a giant text-based RPG in QBASIC. How is this not on my resume?

  • WarTech: I was likely the only person ever to make a turn-based strategy in C++Builder. My friends lauded it as “kind of fun”.

  • So many games: I’m not sure what my most catastrophic failure to make a game was during childhood. It may have been the time where I tried to write an entire RPG in a 10,000 line C++ if statement.

  • The Essence: For some reason I designed my own (bad) trading card game, creating a couple hundred cards, many featuring (bad) art.

  • Spellbook: I ran a low-budget games magazine with my friends for a couple years. When I say low-budget, I mean photocopying at the 7-11. The first issue was taped with masking tape. I was like 12, okay?!

  • Street Vending: In elementary school I enjoyed putting a table on the street and failing to sell lemonade and hockey cards to passers-by. I even kept a ledger of the lemonade I failed to sell. This was all of the lemonade.