During my career, I have interviewed many software engineers and managers. At my very first job, the company’s owners had me interview candidates. I was told I have a unique ability to pick out the best people. More recently at a company here in San Diego, California USA, all the interviews went through me first. I had the final say in who goes on to the next steps of the interview process. If they don’t get past me, the process is over.
Here are some experiences that lead to a candidate being rejected. One of the main reasons engineers do not get past the technical interview is that they do not prepare. They just walk in and think they can wing it. This rarely works out and just wastes everyone’s time. In this article, I will discuss studying for technical questions and questions that you should ask of the interviewers. The information for this article comes from my book titled “Rock Your Career: Surviving the Technical Interview” available on Amazon.com.
Study for Technical Questions
Studying for technical questions is vitally important for the technical interview! This preparation is mandatory if you want to go on to the next steps of the process. I will give tips for getting prepared since you only get one shot at the technical interview!
Go Over Common Questions
We might ask you simple questions, even for senior engineers. Always be over-prepared. For example, I always ask .NET developers about the Garbage Collector. I ask database developers what the wildcard character is in T-SQL or what does the “?” mean? At one company I worked at, 50% of candidates struggled to answer these simple questions. We are trying to get to know your technical expertise and where your knowledge level is compared to your resume and bounce it against the requirements in the job description.
I have a large list of questions that I have compiled over the years that I ask engineers. I use this same list when I prepare for an interview. There are also many websites out there, such as LeetCode.com, that will list questions you might be asked depending on your area of expertise. You should consider looking at several of these sites because you’ll never know if the person conducting the interview looked up the same list.
One not so obvious site to use to help learn questions you might be asked is Glassdoor.com. Glassdoor has personal reviews of the company culture, management style, and sometimes a list of questions from recent interviews. I have recently used this to prepare for an interview.
Rehearse Difficult Questions
While studying technical questions make sure to rehearse the difficult ones. There are many techniques to do this. For example, if you are not very good at writing and drawing on the whiteboard, then practice writing on a whiteboard if you can. Much of our time is spent typing on a computer, so force yourself to get out of this comfort zone. This is one that I must practice since my handwriting has not changed since grade school and looks like a 5th grader scribbling. If you do not have a whiteboard, practice on a piece of paper.
IntelliSense in Microsoft Visual Studio has made it harder for me to remember commands. I do not expect anyone to remember exact syntax when they answer a question, but they should be close. It’s okay to say, “I don’t remember the exact syntax”.
After the interview, as soon as you get home, write down the questions that you did not answer correctly. Then research the answers for the next interview because it is likely you will be asked those questions again. Interviewers like myself use the same questions over and over.
Prepare Questions for the Interviewers
Preparing questions for the interviewers will pay off in the interview process. Having a planned set of questions to ask the interviewers shows you are interested in the position, and that you have done some homework. Remember you are there to interview them too, so make this list of questions relevant to your career path. It’s not a one-way street. I would say that in most of the interviews I have done if the candidate did not ask a question or very few, I would think that this candidate is not interested. Not asking questions is a big red flag!
There are many types of questions you can ask ranging from technical, company culture, management style, and more. Just stay away from asking pay or benefit questions in the technical interview. When I interview engineers, I may not even know the answer (unless I am the hiring manager). Asking pay or benefits questions could be considered a red flag and makes it appear you are only interested in the money and might be a risk for leaving for higher pay. You can direct salary and benefit questions to your recruiter or the HR person at the end of the interview process, right before they offer you the job. Typically, you should have established a salary range at the beginning.
Next, I will share questions that you should ask during the technical interview.
Questions on the Position, Company & Management
These are questions that you can ask to learn more about the position, company, and management. Remember, this is a technical interview so keep these at a minimum or spread them out among the different people you will be interviewing with.
- Can you describe the working culture of the company and team?
- Can you tell me how this company embraces work and life balance?
- Does the company have a plan to support continuing education, and will the company pay for training and conferences?
- How has the company overcome challenges with remote workers?
- How supportive is the team and department?
- How will my performance be measured?
- Is this a new position? If not, why did the previous person leave?
- What are the company values? You can use this to make sure a company’s values might not fit your own like operating in Russia, investing in cryptocurrency, etc.
- What are the opportunities for growth in this position?
- What are your expectations for this position?
- What does a typical work week look like?
- What is my manager’s style?
- What is the future of the product that I will be working on?
- What is the future of this company?
- What is the main qualification that will make this opportunity successful?
- What is the plan to get me up to speed for this position?
- What is the plan to get my development environment working so that I can be productive?
At a recent contract I worked at, it took a month, yes, a month to get the developer environment setup! I wish I was joking. Why didn’t they have an easy, repeatable way to do this? This showed me early on just how dysfunctional they were. When I oversaw a team in the past, I had VMs ready to go. I had one for developers and one for DBAs too! All they had to do was copy the VM and run a program to change the computer name and they were up and running in under two hours!
Technical Questions
Here is a list of technical questions that you should ask during the interview.
- Are programmers provided refactoring tools (such as Refactor! or ReSharper for Visual Studio)?
- Are Visual Studio Analyzers used during local and server builds?
- Do you have an established process to review and validate application performance?
- Do you have written coding standards (in a document or a book like “Rock Your Code: Coding Standards for Microsoft .NET”)? Who oversees coding standards? How are coding standards enforced?
- Do you perform code reviews? How are they performed and who performs them?
- How are project timelines managed in the case where quality and timeline are subject to breaking and what wins.
- Tell me about the lifecycle of a feature. How does it get validated? Who decides when to build it? Who builds it? Who runs it? Who maintains it and upgrades it? Who decides when it reaches “end-of-life”?
- What do you use for source control?
- What is the company’s standard database server platform?
- What is the current configuration for computers provided to developers including the number of monitors?
- What is the lead time between changes getting merged and being deployed to production?
- What is the official company policy to replace the developer’s computer with a new one?
- What is your process for migrating to newer versions of SQL Server, Visual Studio, and .NET? When and why do you make the move forward?
- What is your production release process?
- What is your ratio of DBAs and QA to developers?
- What is your unit testing policy?
- Will I have admin rights on my PC?
Lookup the Company Rating on Glassdoor.com
Lastly, before I even interview, I always look up the rating for the company on Glassdoor.com. Not only do I look at the ratings, but I also look at the recent reviews from their software engineers. If the rating is low and they have a lot of negative reviews, I don’t even entertain the idea of pursuing a job there.
Once while interviewing at a company, they had a rating on the low side. During the interview with the CTO, I asked him why it was so low. This gave him the opportunity to tell me his plan for making things better there.
Summary
I hope that you will prepare for your next interview by studying for questions and preparing questions to ask the interviewers. Do you want to know the number one question you should ask that will tell you everything you need to know about the company and your manager? Well, you will just have to pick up a copy of “Rock Your Career: Surviving the Technical Interview” to find out.
Do you have any questions or comments? Please make them below.