Monthly Archives: July 2012

How to get a job at Puppet Labs

I’ve been working at Puppet Labs for 4 months. It has been awesome! But, I almost didn’t get a job here. I’m going to tell you the secret to getting a job (or at least in development) at Puppet Labs or any open source company.

The interview process goes like this (and here’s the prep guide):

  • Initial interview with senior developer
  • Interview with VP of Engineering
  • Half day of 1:1 technical interviews
    • 2 technical interviews
    • Cross-functional interview (maybe with UX or QA or Ops, etc)
    • Pair programming
  • Interview with Luke

Yes, the CEO still interviews everyone we hire (and many we don’t). I think it’s awesome that Luke makes times for candidates. It makes him more approachable.

Here’s what it takes to get a job offer:

  1. Be awesome at something
  2. Make us passionate about you

Both are well within your power.

We used to have a panel interview in place of some of the 1:1 technical interviews. I had a ho-hum panel interview. I wasn’t mentally prepared for it. I thought I was coming in for a couple pair-programming sessions, not a panel and then pairing. So I was caught a bit off-guard for the panel, and it showed. It wasn’t terrible, just not enough to make them passionate about me. Fortunately, the NEXT day was a Triage-a-thon. I showed up and managed to close a couple tickets. I also continued to submit pull requests for open tickets.

I didn’t do it to suck up to the interviewers. I did it because I was trying to learn more about the product and the codebase. I had barely used Ruby or RSpec at that point and I had *never* submitted a pull request. I needed to learn them, and I was upfront about being a noob. This is what got me the job, not the interviews. Puppet Labs knew I was capable of doing the job, and the hiring risk was low.

That’s the key to making us (or any employer, really) passionate about you:

Show that you can do the job by doing the job.

We have a couple thousand open tickets. Find something that you think you can do and submit a pull request. Rinse, repeat, apply.

I look forward to the pull requests…

EDIT: updated with the refined interview process and official interview prep guide. Yea, feedback in action!