I am proud to make beautiful, useful things with code. I’m looking to work on something that will make the world a better place. Or at least not a worse one.
Working
2016 — Present
Zendesk
Zendesk is by far the largest company I’ve worked for, and has only become larger during my time there. I am the technical lead for Side Conversations, a system that surfaces as conversational features in several Zendesk products, and integrates with Slack and email. Our team of seven built a sub-product that generates tens of millions of dollars in ARR.
I continue to improve company culture using the tools of an engineer. I introduced a chat bot, adding automation to development workflows, as well as nudging towards a more inclusive workplace on Slack. I’ve also had a hand in developing company strategy for providing developer tools and platforms.
2014 — 2016
Gridium
When I joined Gridium, I was engineer number 6, and employee number 13. I had never worked at a company at this early stage, and the opportunity to shape the course of its history was very interesting to me. I’ve found that being part of such a small team had some major advantages, among which is the ability to shape the culture and technological substrate. I helped to build the kind of company I want to work for. Working on a software system at the beginning of its life gave me the opportunity to apply all the lessons I’ve learned from working on more-mature applications.
I’ve taught and learned a lot about being making remote teams work. I worked on all parts of the web-application stack, from hosting in Docker to data storage to API design to Ember on the front end. I also hacked the culture with Hubot, and spread organizational, cultural, and technological wisdom by speaking at conferences.
2012 — 2014
GitHub
GitHub had been on my I-need-to-work-here list since about 2009, and when I was offered a job there, I jumped at it. It was everything I had hoped for, and more.
This was where I found out what it is to be a citizen of the Internet in a real way. I traveled the world, speaking at conferences. I worked with some of my personal heroes. I was freed from having a commute. I learned what it was to help make a company.
My main focus was libgit2, an implementation of git with a nice API, and no dependencies on a UNIX environment. This led me to helping out with back-end systems, mainline git, and GitHub Desktop. I helped run an open-source project, wrote its documentation, and found out how I work best.
2011 — 2012
Monsoon Commerce
2006 — 2011
Wacom Technology
Side Projects
Pro Git, 2nd Edition
This is effectively the book on Git, and I was honored and excited when Scott asked me to co-author the second edition. It’s now even better than it was when I read it as a younger engineer, and by managing the open-source project I help ensure that it will continue to do so. The ability to help developers new and old become better at their craft is a point of pride for me, a strong reason why I do what I do.
Building Tools with GitHub
I contributed two chapters to Chris Dawson’s book on GitHub’s API. This acts as the missing manual for GitHub, and includes lots of examples of how to write code that works with source control, issues, and lots more. I wrote a chapter on the search API (in Python), and a chapter on the commit-status API (in C#).
Training and Teaching
I’ve been working with the Linux Foundation and its partners to provide on-premises Kubernetes CKA certification training. I’ve also recorded video training on various topics:
- Beginning and Advanced Git (Skillsoft)
- Porting from Python 2 to Python 3 (O’Reilly)
- Building Microservice Systems with Docker and Kubernetes (O’Reilly)
- Mastering Python Networking (Packt)
Speaking
Over the years, I’ve given a number of talks at conferences. You can see them in the talks section of this site.
Skills
Languages
I’ve written device drivers, cross-platform libraries, and GUI applications in C and C++. I’ve worked on production applications in C#, using both WPF for client-side apps and ASP.NET on the server. I’ve taught a course on converting from Python 2 to Python 3. I’ve built web applications using React, Ember, Angular, Knockout and Vanilla.js.
Beyond application code, I’ve automated deployments using bare shell scripts, Perl, Ansible, CloudFormation, and Kubernetes. I’ve tinkered with Objective C, Swift, Lisp, and Haskell. I wrote an Emacs syntax highlighter for an installer DSL.
Platforms & Tools
I’ve written code for OS X, Linux, and Windows, and I’ve written code that runs on all three. I’ve solved some of the same problems Docker solves. I’ve written device drivers, GUI applications, HTTP backends, and browser front ends, with and without frameworks.
I have a favorite source control tool. I have opinions on defect tracking. I know the difference between UCS-2 and UTF-16. I know that how you say what you say says something about what you’re saying.
My Greatest Asset
I cultivate a growth mindset, and I love to learn.
Put me in a room with smart people, and let’s all make mistakes together. Major outage because of a small change somewhere? Let’s get the site back up, and then learn why that all happened and make it never happen again.
I excel at learning technical stacks. Drop me into an unfamiliar project, and a week later I’ll be adding features. I stay up to date, bring in fresh ideas, and try new things.
But I don’t do it just for me. Nobody builds anything on their own. I leverage all of my knowhow and experience for the benefit of the team, and ideally create a culture where everyone benefits from the team’s combined skills and knowledge.
Education
2006 — 2012
Portland State University
Master’s Degree, Software Engineering
I took night classes to earn my master’s degree in software engineering. It was a long journey; taking classes part-time at age 30 is a little different than when I was doing it full time at 20. The benefits have been worth the cost and effort, for me and my employers.
1999 — 2003
Oregon State University
Bachelors Degree, Computer Engineering
This is where I cut my teeth, and where I got my first taste of professional engineering. I was part of an internship program, and had a full year of professional experience before I graduated.