Prepare, Prepare and Prepare Some More for Your Next Technical Interview!

Prepare, Prepare and Prepare Some More for Your Next Technical Interview!

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, 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 in your car, 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.
  • Are the developers that I will be working with overly defensive of their code? How receptive are the developers on my team when code improvement suggestions are made?
  • Can you describe the working culture of the company and team?
  • Can you tell me how this company embraces work and life balance?
  • Do the different teams at the company work well together or work more like silos?
  • 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 are 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 the future of this company?
  • What is the future of the product that I will be working on?
  • What is the main qualification that will make this opportunity successful?
  • What is my manager’s style?
  • 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 mine titled “Rock Your Code: Coding Standards for Microsoft .NET”)? Who oversees and changes 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 is the current configuration for computers provided to developers including the number of monitors?
  • What do you use for source control?

I once interviewed for a company that claims to have a 90% market share of the technology in mobile banking applications that scan checks to deposit into your bank account. I was interviewed by the CTO of the company. He only gave me thirty minutes of his time, so I only had time to ask him one question. I asked him what they use for source control. The reason was the company I was currently working for used the worst source control program I have ever used (PVCS Version Manager), and I did not want to waste hours per week struggling with it in another job. His answer floored me when he said, “We don’t use source control”! I could not believe my ears. I wonder if his customers know this (well maybe now they do).

  • What is the company’s standard database server platform?
  • 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 the process to get the software that I need to perform my job? How long does that take?
  • 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?

At one company I worked at, the manager came to me and said that they will give me access to the production servers so I can push builds. I asked how many unit tests they had. They answered none! I then said I don’t want that access since I won’t push code that I’m not confident that it works!

  • Will I have admin rights on my PC?

Make sure you pay attention to their answers and how easy they can answer them. During one interview I was on, high-level engineers and architects had trouble answering these types of questions. They didn’t even know who their major competitor is. I considered these red flags and did not move forward with the interview process.

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 allowed him to tell me his plan for making things better there.

Summary

One final note. As someone who interviews engineers, please do not go on interviews just to “practice”. I know that some developers do this. Find another way to practice with a co-worker, friend, etc. Also, I am here to help by doing a practice interview. I will use the job description, come up with a list of questions and then, virtually, interview you as if I were the hiring manager. I have done these in the past, even for recruiters. Please email me to schedule.

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.

I want to thank my good friend Mark Davis for providing input to this article.

To view or add a comment, sign in

More articles by David McCarter

Explore content categories