my resume

For the most up-to-date resume, please contact me via email or view my LinkedIn profile

Project work can be found on GitHub . Also, here’s an auto-generated “GitHub Resume” and my StackOverflow “Developer Story”.

My Mottos

  • “I’m a programmer. I make things work, I don’t make things pretty. If you want pretty, you want a web designer not a web developer.”
  • “Done is better than perfect.”

Employment History

  • May 1996, graduated from college in Canada, with a 3-year community college diploma focusing on computer engineering, specializing in embedded software development in C and Intel/Motorola Assembler.

  • May 1996 - Feb 1997, QNX Software Systems, Ottawa, tech support and sales application engineering.

  • late 1996 / early 1997, formed my own freelance LAMP development operation, working with dozens of clients over the years, and providing free LAMP advice to hundreds of people.

  • Feb 1997 - Sept 1999, Telexis Corporation (now, March Networks), Kanata (Ottawa), worked on various embedded projects and systems, middleware applications, and end-user Windows applications.

  • Sept 1999 - May 2000, Chrysalis-ITS, Ottawa, worked on embedded software for a network card with built-in encryption support for things like SSL.

  • June 2000 - March 2004, iCreditVision, Los Angeles; LAMP development; data center management, security audits; continue to freelance for iCV today.

  • March 2004 - March 2005, Online University of America (now closed); MySQL replication, VNC, revision control administration, Flash ActionScript 2.0, PHP/API publication.

  • March 2005 - July 2006, PriceGrabber.com; Perl development, remodeled their internal search engine algorithms and worked on other internal tools for importing merchant data.

  • July 2006 - Feb 2008, full-time freelance for clients such as the Los Angeles County Office of Education, and News Corp’s “Fox Reality” tv show.

  • Feb 2008 - Nov 2009, The Rubicon Project; lead engineer; rebuilt core statistics/analytics data engine, scalability, fault tolerance, multi-threaded Perl.

  • November 2009 - January 2010, freelance work, LAMP development.

  • January 2010 - August 2011, ArmorGames.com; DevOps, LAMP development.

  • August 2011 - August 2015, SendGrid Inc; Sr Web Architect, Sr Lead Engineer, aspiring manager.

  • August 2015 - August 2016, Simple Energy; Director of Engineering

  • August 2016 - April 2018, GetStream.io (Stream.io Inc); Growth Hacker, Developer Relations / Community Manager

  • October 2017 - June 2021, Turing School of Software & Design, Senior Instructor, Career Coaching

  • July 2021 - Present, GetStream.io, Director of Engineering Learning

Witty commentary on experience

  • 1993, Started in Computer Engineering Technology program at St Lawrence College, Kingston Ontario campus; focus on software development and firmware/embedded systems Learned C, Pascal, Assembler.

  • 1995, First use of Linux as a desktop/workstation

  • 1996, Graduated college, Computer Engineering Technology, St Lawrence College; focus on software development and firmware/embedded systems. Learned HTML v3 and knew web development was my calling. Introduced to Perl; instantly fell in love. Decided a relational database like MySQL was more fitting than hand-built file storage I’d concocted for a client.

  • 1997, First use of Linux in a server environment, started my own web hosting company with two friends (wild98 web hosting)

  • 1998, Visited Southern California for the first time since I was 4 years old. Thought this was where I wanted to grow old. Heard about a higher-level language called PHP; started tinkering with v3 while still in beta; learned it inside and out and rebuilt several of my Perl applications in PHP.

  • 2000, Moved to Southern California, taking my first full time LAMP job; spent nearly 4 years managing a data center, network security, VPN and T1 setups for national credit agencies.

  • 2001 Designed my first network security audit setup; as of late 2010, Experian still couldn’t break into that data center even though nobody’s had to touch the code since I first wrote it. Learned about what SpamAssassin can do; decided to write a trainer script for it.

  • 2002, Published my first Perl-based API for third-party developers to access our credit report systems

  • 2003, Met my future wife on Match.com, our first date was at Starbucks.

  • 2004, Worked for a private university, learned tons of Flash ActionScript v2 programming and wrote my first public-facing API using PHP. Developed a love-hate relationship with Flash. My SpamAssassin Trainer was promoted as the “de facto standard” HOWTO guide at LunarPages for their cPanel users to block spam.

  • 2005, Got a job working for a major online shopping comparison portal (Pricegrabber.com). Loved the job, hated the 2-hour commute. First time dabbling in tweaking the internals of search engine algorithms for a site handling about 18M users. Got married.

  • 2006, Decided that I had enough ‘part-time’ projects for various clients to go full-time in freelance mode. Loved the flexibility and pace, and helped a lot of companies. Realized I didn’t have an “off” switch and went full-blown workaholic.

  • 2007, Learned the hard way that California is unfriendly to single-owner LLC companies when it comes to business taxes.

  • 2008, Figured if my wife and I were planning on having a family, I better take a full-time job with benefits, and worked at The Rubicon Project rebuilding their stats/analytics engine. First time tinkering with multi-threaded Perl and built my first horizontally-scalable architecture for a company which grew from 25M hits a day to over 1.3B (yes, Billion) per day. Decided working 60-80 hours every week, on call 24×7, for almost two years wasn’t conducive to family life, and resigned on good terms. Miss that place, good people.

  • 2010, Got into the video game industry by working at ArmorGames.com. Video game development on a Commodore 64 is what got me interested in software development when I was 8 years old, so this felt like a great opportunity. Re-applied skills learned at Rubicon about scalability to pull AG into a more ‘social’ aspect of gameplay. Built an API around microtransactions, and wrote Python for the first time, professionally.

  • 2011, Got back into a team lead role at SendGrid, gave up PHP, learned some Ruby (enough to know it’s too much like Perl and I kinda hate it), learned some Rails (totally hate it), and got to exercise my Python skills. In 2014, we started developing in Go, and haven’t looked back. Python is still my favorite, but Go is a close second.

  • 2015, Thought I’d try my hand at full-time management in an enterprise industry in an effort to make the world a better place. Turns out I needed to be cloned so I could also do dev work.

  • 2016, Dream job landed in my lap, couldn’t say no, and joined GetStream.io as their Growth Hacker, and head up community building, open-source development, public speaking, and assisting on core architecture where possible.

  • 2017, j/k, new dream job as a full-time teacher, loved teaching the basics of software development, but in the words of a singing mermaid hoarder, “I want more”. I wanted to teach deeper engineering principles, produce more educational videos, and more. And to open-source the material, as much as possible.

  • 2021, needed an emotional break from being a one-on-one coach and teacher in a high-pressure immersion program and went back to Stream as their Director of Engineering Learning; started live-streaming career coaching and continue to do mock interviewing