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.
For starters, here is a list of some, but not all, of the companies I talked to
- Oculus VR
- Disney Animation Studios
- Beats by Dre
- Digital Ocean
- Bass Pro
Each company was different in their approach to interviewing candidates. Most of the companies I didn’t make it past the screening call, others I got job offers. Not every position was for a DevOps/Site Reliability Engineer (SRE) position but most of them were and the interview process was similar enough to be relevant. 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 usually the hardest part, I can’t say what works every time but here are some tips I have figured out.
- Make sure you have profiles on GitHub and LinkedIn. Other profiles at job seeking sites would help (Dice, TrueAbility, Indeed, Glassdoor, etc.) but may not be necessary. Keep your profiles updated. 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, experience shows you like the work and are passionate about it. If you don’t have money for certifications, just 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 let me know the hiring manager so I could send a personal note with my resume. This got me in the door within two days when I had 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, and for jobs you are really interested in, personalize 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. Also, make it 1 page. 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 customizable and easy to type. At both companies I got job offers for, 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 1-2 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 and not interested. In some cases companies don’t have internal recruiters and work with outside companies. I can’t say whether internal or external recruiters are better because every one is different. I had some great experiences and bad experiences with both.
At first, this was the scariest part. That is probably to do with the fact that my very first call was with Google who is notorious for their 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, others are just looking to see that you’re passionate and ask what type of work you’ve been doing now and want to do in the future. Some tips for screening calls
- 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 before hand. I found it very helpful to go through the LinkedIn, Twitter, etc. pages before the call and find one question I want to ask the recruiter about the position and one question about the company. It helps break the ice and allows you to not do all the talking.
- If you are having a screening test, make sure you are familiar with the following areas: networking (including subnet sizing and packet structure), Linux troubleshooting commands, storage terminology, 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 rating 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 process 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 I recommend looking at Glassdoor before your call so you can read about more interviews and peoples experiences. Also, to get more comfortable with screening calls it helps to 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 from 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 turn around is, but I returned my tests on the short side of 4 days, and long side of 3 weeks. 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 either get as much experience through work/hobbies as you can. If you don’t have the motivation/time/resources then I suggest you create an account at TrueAbility and work through their tests. They are surprisingly challenging and give you a lot of well rounded skills. They also are timed so it helps you think under pressure.
In Person Interviews
I was called in to interview at a handful of companies. Some of the companies were remote so “in person” was via Google Hangouts. For some of the companies I would spend anywhere from 3-4 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.
- 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 tips online about making sure you get the right offer. For one position I played these tactics to a T. 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 current and expected pay. Both were completely different approaches and I expected to see the former a much higher offer than the later. 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 good to still compare all your options side by side. You also need to make sure you take into account all of the benefits at each company. Look into 401K, 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 things you will need to pay for that you may not need to pay for now. My old job paid for my cell 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/yr that I now have to spend.
In any case, make sure you love the culture and the work. It’s too hard to get to know the people in such a short period of time and people come and go. If the culture is a good fit, then new people will probably fit into that culture too and you should get along with them just as well as previous employees. Obviously, if you love the work, you shouldn’t have to go through too many interviews in the future.