A recruiter from Thousand Eyes reached out to me because of my LinkedIn profile. At the time I wasn't really looking for a new job, but I decided that it might be fun to go through the interview process anyway.
The recruiter started by telling me that the interview process with them starts with a series of questions and code samples, followed by a DevOps challenge, and ends with a phone interview with one of the company's founders. I only made it as far as the challenge before they turned me down, (I was a college student still working at my first SysAdmin position, and I think they were looking for someone with a wider skill-set), so I can't speak as to how the interview works, but I can talk about the questions and challenge:
The first questions were pretty straight-forward, asking to gage my experience and for some code samples:
1. Can you share with us a code/script sample that you're proud of? (*)
2. What is your level of experience with Bash?
3. What is your level of experience with Python?
4. Can you share with us Bash and Python code/script samples?
5. Can you tell us about a hard problem you've had to solve, and how you went about solving it?
6. Based on what you know about us, what would you find most interesting about working at a company like ThousandEyes?
(*) As far as the type of script, any relevant configuration automation code (e.g., puppet, python) related to the DevOps Engineer role is welcome.
After answering those questions and providing a handful of Python, Bash, Ruby & C++ code samples, they asked to continue on with the process my giving me a challenge project to complete in a week.
The DevOps Challenge was as follows:
They sent me a public-key to use as my identity when ssh-ing into an Amazon VPS, and asked me to do the following.
1. Fix a broken apache webserver. Make sure it runs and is serving pages correctly.
2. Make sure that only certain services were accessible from the outside.
3. Write a bash script that, given a directory, will:
+ replace 'foo' in any file names with 'bar'
+ replace 'foo' in the contents of any files with 'bar'
+ output the file names that were changed
4. Write some Puppet scripts to configure the server according to their requirements
Make reasonable assumptions, state your assumptions, and proceed. Once you have completed the challenge let us know and share your thoughts on the problems/solutions.
I got busy with school and work, so I didn't manage to really start working on this until the day before it was due, and knocked it all out in one night. These were my assumptions:
In the end I didn't get the job, but I wish that I would have gotten some feedback about the challenge. Though since it was the very first time I had ever tried to do anything with Puppet (since I'm more experienced with Chef), I imagine that was what I probably didn't complete to their satisfaction.
Regardless, it was a very cool little interview process.