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:
- Be awesome at something
- 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.
I look forward to the pull requests…
EDIT: updated with the refined interview process and official interview prep guide. Yea, feedback in action!