Over the past year I have had great opportunities to interview for positions at companies I respect, and some I didn't. I wanted to share my experiences to help others looking to go down this job path and some general interviewing tips.
This post originally appeared on Justin Garrison's blog.
I've talked to quite a few companies, including:
- Oculus VR
- Disney Animation Studios
- Beats by Dre
- Digital Ocean
- Bass Pro
Each company was different in their approach to interviewing candidates. For most of the companies I didn't make it past the screening call, but I got job offers from some. Most were for DevOps/Site Reliability Engineer (SRE) positions but for even those that weren't, the interview process was similar enough to be relevant to my experience. Some companies sought me out, some I applied for, and some were through recruiters I had previously applied through who kept in touch with new opportunities. The companies that found me usually were via LinkedIn or GitHub.
Getting In The Door
This is often the hardest part, especially if you don't have a lot of experience. I can't say what works every time but this is what's worked for me:
- Make sure you have profiles on GitHub and LinkedIn. Other profiles at job seeking sights would help (Dice, TrueAbility, Indeed, Glassdoor, etc.) but may not be necessary. Keep your profiles up to date. Nothing says "you're not interested" more than a profile that hasn't been updated in 1+ years.
- Get certifications to get noticed, get experience to get interviews. Certifications only prove you can pass a test, while experience shows you like the work and are passionate about it. If you don't have money for certifications, just try to get experience. You might have to try harder to get noticed, but you will make a bigger impression if you know your stuff.
- Don't be afraid to reach out to contacts within the company to ask for an interview. In one case I went as far as looking up new hires via a company blog, finding someone that was hired in the past year for the position I was applying for, and chatting with them on Twitter to see if they could put me in touch with the hiring manager so that I could send a personal note with my resume. This got me in the door within two days, after I had already applied three weeks before with no response.
- Make an resume that stands out. If you do nothing else, make an eye catching resume. If you don't know how, hire someone. Don't use a Word template. Make a generically worded resume that a recruiter can hand out, but for jobs you are really interested in, personalise it for the company and position you are applying for. Here's my resume, and don't be afraid to steal someone's format with permission. And make it one page if possible. If you can't trim it down, add links or QR codes like I did. Most people won't be reading a physical copy so the links will still work, and if they're really interested in you, short URLs are customisable and easy to type. At both companies I got job offers from, they both told me they liked my resume in the interview.
For positions I was really interested in, I would actively peruse a role for one to two weeks at a time. If it didn't pan out or I got no response, I moved on. It was also helpful to know that if no one is calling you back, it may just be a hiring downtime. I noticed most callbacks and emails at the beginning of January, and at the end of each quarter.
Almost every company starts with someone calling you, usually an internal recruiter, to give you an idea about the position, the interview process, and to weed out people who are under-qualified or not really interested. In some cases companies don't have internal recruiters and they work with outside companies. They're different ways of working, and I had some great experiences and bad experiences with both.
At first, this was the scariest part. Probably because my very first call was from Google, which is notorious for its difficult interview process. As time went on, I got more comfortable with screening calls because I was able to relax more and be myself. Some of the big companies are going to have tests for you that you'll have to pass to make it to the next round, while others are just looking to see that you're passionate, and to ask what type of work you're doing now and what you want to do in the future. I'd suggest you follow these tips:
- Have paper and pencil ready. There will be things you'll want to write down to reference later.
- Don't be at your computer. You will probably end up distracted and you won't be allowed to use it for screening questions.
- Research the company and person you will be talking to beforehand. I found it very helpful to go through the LinkedIn and Twitter pages before the call. I'd find one question I wanted to ask the recruiter about the position and one question about the company. Asking questions helps to break the ice and allows you to not do all the talking.
- For my area of DevOps and Site Reliability, you might have a screening test. Make sure you are familiar with the following areas: networking (including subnet sizing and packet structure), Linux troubleshooting commands, storage terminology, and infrastructure planning and sizing. Only a few of the larger companies had screening tests, but I bombed all of them by not being prepared and being too nervous.
- Be prepared to rate yourself on how experienced you are in multiple areas. Scales and aptitudes differ but I was not expecting to have to give myself a rating on my Python programming skills or Linux knowledge. The screening question difficulties are based off your self-rated scores.
- Have an example ready of a project you worked on that you are proud of. Make sure it is publicly available so the recruiter can find it and send it to the hiring team.
- If you are interviewing at other places, let the recruiter or manager know during the call. It will help speed things up.
Most of the screening calls did not involve tests, but the ones that did were nerve-racking and I did not do well. It's important to note that the people doing the calls are often looking for how you handle problem solving, if you know what they consider to be the basics, and if you have a good personality fit.
To get a better feel for the interview process at a particular company, try looking at Glassdoor before your call so you can read about other people's interviews and experiences. And to get more comfortable with screening calls it helps to simply do a lot of them. I didn't turn down any screening calls even if I wasn't interested in the company. It not only helped me get comfortable on the phone, but it allowed me to ask questions and see what companies were working on to better gauge the industry.
Some companies forgo the screening call and just send a practicum. This will be a test to show off your skills instead of talking about them. These range widely depending on the company/position and, for me, took anywhere from 6-30 hours of work to complete. I'm sure for others they would not take as long, but there was often one or two questions I was unfamiliar with that I would research until I was satisfied. Here are a few examples of tasks I was given:
- Given the following VM credentials (AWS VM), figure out why the web server isn't working and fix it.
- Provided a VM, write an API (language of your choice) that returns statistics calculated from log data.
- Write a ruby script that backs up a webserver and database to a tar.gz.
- Build a 2-tier, load balanced, automatically scaling application in AWS. You can use an existing application or write one from scratch.
The questions above were one task on a list of tasks (3-12 total tasks per practicum). Not all tasks were as hard, but many of the tasks could only be completed if you had a lot of experience. It is very hard to research and provide an adequate response without taking a long time if you're not familiar with the problem. I'm not sure what the typical turnaround is, but I returned my tests anywhere from four days to three weeks later, depending on the tests. That's probably why I never had follow up from companies where I completed a practicum.
My advice to get past the practicums is to get as much experience through work and hobbies as you can. If you don't have the motivation, time, or resources, then try TrueAbility and work through their tests. They are surprisingly challenging and give you a lot of well-rounded skills in this area. They also are timed so it helps you think under pressure.
I was called in to interview at a handful of companies. Some of the companies were remote so "in person" was via Google Hangouts. I could spend anywhere from three to four hours interviewing with different people. It usually started by talking to the manager of the team and then to different team members. In one case I was asked to prepare a 20 minute presentation for the team before we split off into individual interviews. While every company is different, here are some tips you might find helpful:
- Know your audience. If you can, get the name of each person you will be interviewing with, know their role in the company (will they be your manager?) and research them beforehand. You probably can talk to them about past work experience or interesting hobbies from their social networks.
- Don't over/under dress. If you are really unsure about the company dress code, ask! Many internal recruiters will be happy to let you know company dress code so you can plan accordingly. It is very telling that you don't fit in if you wear a suit and tie to a no-dress-code company.
- At the end of the interview, ask them if there is anything else they need from you to make a decision. It shouldn't matter if the decision is yes or no, just so long as they don't have any outstanding questions for you.
- Brush up on generic interview questions; there are plenty of resources online. For DevOps/SRE positions, be prepared to do a bit of scripting to prove you know your stuff.
Two of the best questions a recruiter told me to ask are:
- Where have people in this position fallen short in the past and where have they excelled?
- What would be expected of me in this role in 90 days? 1 year?
Hopefully you end up with an offer. Again, there are plenty of tips online about making sure you get the right offer. For one position I played these tactics as best I could -- I never said a number (current or expected) until it was time for them to make an offer. At another company, I was open about my current and expected pay. Both were completely different approaches and I expected to see the former a much higher offer than the latter. I was wrong.
Tactics are great, but they don't change how much a company values you; it only changes what they are willing to pay within their limits. Value and willingness are different things. You should always try to find a company that values you and your role rather than just one that is willing to pay you more because you negotiated well for it.
If a company is interested in you and say they are going to send an offer, make sure you are honest with them about your turn around time to make a decision. I got one offer and waited almost a week for the second offer to come in. Even though I had mostly made up my mind, it's still good to compare your options side by side. You also need to make sure you take into account all of the benefits at each company. Look into their health, education, overtime, and other benefits. If you can, put a dollar amount to each benefit and compare the total offer and not just your base salary. You should also figure out if there are extra expenses that you'll need to pay for. For example, my old job paid for my mobile phone and home internet because I was on call 24/7. My new job does not have that responsibility nor does it have that reimbursement. It's not excessive, but it's an extra $2000/year that I now have to spend.
In any case, make sure you love the culture and the work. It's hard to get to know people in such a short period of time, and people come and go. If the culture is a good fit for you, then new employees you meet will probably fit into that culture too, and you should get along with them just as well as previous employees. And if you love the work, you hopefully shouldn't have to go through too many job searches in the future.
Interviewing for DevOps/SRE/SysAdmin Positions [1n73r.net]
Justin Garrison lives in Los Angeles, California and work as a systems administrator for Azusa Pacific University. He was a co-host for the mintcast podcast (2008-2010) and used to write articles for How-to Geek (2009-2011).