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

Throughout my professional journey, I have had the opportunity to conduct numerous interviews with software engineers and managers. Remarkably, right from the beginning of my career, I was entrusted by the company owners to assess candidates and identify the most exceptional individuals. Over time, my role expanded, and in a position at a company in San Diego, California, I became the gatekeeper for all interviews. I held the final decision-making authority regarding candidates’ progression to the subsequent stages of the interview process. If they failed to impress me, their journey ended there.

Reflecting on my experiences, I have encountered various reasons that led to the rejection of candidates. One prevalent factor that frequently hinders engineers from advancing beyond the technical interview is their lack of preparation. Some candidates mistakenly assume they can simply improvise their way through the interview, which rarely yields positive outcomes and ultimately wastes everyone’s time. In this article, I aim to delve into the significance of adequately studying technical questions and suggest valuable inquiries that candidates should pose to the interviewers. The insights shared in this article are drawn from my book, titled “Rock Your Career: Surviving the Technical Interview“, which is readily available on Amazon.com.

Study for Technical Questions

Preparation is absolutely crucial when it comes to tackling technical questions in an interview. It is an indispensable step if you aspire to progress to the subsequent stages of the selection process. Recognizing the significance of this preparation is essential, as you only have one opportunity to make an impression during the technical interview. In this article, I will provide valuable tips and insights to help you adequately prepare and optimize your chances of success.

Go Over Common Questions

It is important to be prepared for interviews, even when facing seemingly simple questions, especially for senior engineers. Maintaining an attitude of over-preparation is key. For instance, I often inquire about the Garbage Collector when interviewing .NET developers or ask database developers about the wildcard character in T-SQL and the meaning of the “?” symbol. Surprisingly, at one of the companies I worked for, approximately 50% of candidates struggled to answer these seemingly straightforward questions. Our intention is to assess your technical expertise and evaluate how well it aligns with the qualifications outlined in the job description.

Over the years, I have compiled a comprehensive list of questions that I frequently pose to engineers during interviews. When preparing for an interview myself, I refer to this very same list. Additionally, numerous websites, such as LeetCode.com, offer question compilations specific to various areas of expertise. Exploring multiple resources of this nature is advisable, as it is impossible to anticipate whether the interviewer has accessed the same question list.

While not immediately apparent, Glassdoor.com can be a valuable resource for gaining insights into potential interview questions. The site provides personal reviews about company culture, and management styles, and occasionally includes a collection of questions from recent interviews. I have personally leveraged Glassdoor to enhance my interview preparedness in the past.

Rehearse Difficult Questions

When preparing for technical interviews, it is crucial to devote time to practicing difficult questions. There are several effective techniques to enhance your preparation. For instance, if you struggle with writing and drawing on a whiteboard, it is beneficial to practice specifically on a whiteboard whenever possible. As a significant portion of our daily work involves typing on computers, pushing yourself to step out of this comfort zone can be highly valuable. Personally, I emphasize the importance of practicing on a whiteboard, as my handwriting has remained unchanged since my school days and often resembles scribbles from a fifth-grader. However, if a whiteboard is unavailable, practicing on a piece of paper can serve as a suitable alternative.

The presence of IntelliSense in Microsoft Visual Studio has made it more challenging for me, and perhaps others, to recall specific commands from memory. While I don’t expect candidates to remember the precise syntax when answering a question, it is important to come close to it. It is perfectly acceptable to acknowledge that you don’t recall the exact syntax by saying, “I don’t remember the exact syntax.”

Once the interview concludes, it is beneficial to promptly jot down the questions that you were unable to answer correctly or struggled with. This way, you can conduct further research and prepare better for subsequent interviews, as it is highly likely that you will encounter similar questions again. It is worth noting that interviewers like myself often reuse the same set of questions in multiple interviews.

Prepare Questions for the Interviewers

Taking the time to prepare questions for the interviewers can significantly benefit your overall performance in the interview process. Having a well-thought-out set of questions demonstrates your genuine interest in the position and reflects your research and preparation. Remember, you are not only there to be interviewed but also to evaluate whether the role aligns with your career path. Therefore, make sure your list of questions is relevant to your professional goals. Remember, it’s a two-way street, and your active participation is vital. In fact, in most of the interviews I have conducted, candidates who did not ask any or very few questions left me with the impression that they were not genuinely interested. Not asking questions can be a significant red flag.

There are various types of questions you can ask during the interview, covering areas such as technical aspects, company culture, and management style, among others. However, it is advisable to steer clear of discussing salary or benefits during the technical interview. When interviewing engineers, I may not have the answer to those specific inquiries (unless I am the hiring manager). Asking about pay or benefits at this stage might raise concerns and give the impression that you are solely focused on monetary factors, potentially making you appear more likely to leave for higher compensation. Instead, direct salary and benefit questions to your recruiter or the HR representative at the conclusion of the interview process, ideally before they extend a job offer. Typically, a salary range should have been discussed at the outset.

In the following section, I will share the types of questions that are particularly valuable to ask during the technical interview.

Questions on the Position, Company & Management

Here are some questions you can ask to gain deeper insights into the position, company, and management. It’s important to note that since this is a technical interview, it’s advisable to limit the number of these questions or spread them out across the various individuals you will be interviewing with. This will ensure a balance between technical discussions and obtaining the desired information about the organization.

  • 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 is the team and department?
  • How will my performance be measured?
  • 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 does a typical workweek look like?
  • 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?

During a recent contract assignment, I encountered a surprising situation where it took an entire month, yes, a full month, to set up the developer environment. It may sound unbelievable, but unfortunately, it was the reality. This experience shed light on the organizational dysfunction within that company. Reflecting on my past experience overseeing teams, I made sure to establish a streamlined and efficient process. I had readily available virtual machines (VMs) specifically tailored for developers and separate ones for database administrators (DBAs). With a simple VM duplication and a program to modify the computer name, the team members could be up and running in less than two hours. Such an approach significantly minimized the downtime and frustrations associated with environment setup.

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?
  • 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?

During one of my interviews, I had the opportunity to meet with the CTO of a company that claimed to hold a significant market share in the mobile banking industry, specifically in check scanning applications for bank deposits. Due to time constraints, I was only granted a brief thirty-minute session with the CTO, allowing me to ask just one question. Considering my previous negative experience with a subpar source control program (PVCS Version Manager) at my current workplace, I wanted to ensure I would not encounter a similar struggle in a new role. So, I posed a crucial question: “What source control system does your company use?”

To my utter disbelief, the CTO’s response left me astounded. He revealed that their company did not utilize any form of source control. This revelation caught me off guard, and I couldn’t help but wonder about the implications for their customers. It was truly surprising to encounter a company, especially one with such a significant market share, operating without a proper source control system.

  • 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 unit testing policy?

During my tenure at a particular company, the manager approached me with an offer to grant access to the production servers, allowing me to deploy builds directly. Sensing a potential concern, I inquired about the state of their unit testing practices. To my surprise, the response was that they had no unit tests in place. Understanding the risks and importance of reliable code deployment, I firmly declined the access, stating that I couldn’t push code without the confidence that it had been thoroughly tested.

This incident highlighted the significance of having robust testing procedures and the need for a solid quality assurance process before deploying code to production servers. It reaffirmed my commitment to ensuring the reliability and functionality of the code I deliver, emphasizing the importance of confidence in its performance.

  • Will I have admin rights on my PC?

Ensure that you carefully observe their responses and assess how effortlessly they can provide answers. In a previous interview experience, I encountered difficulties when questioning high-level engineers and architects. Surprisingly, they were unable to identify their main competitor. Recognizing these red flags, I made the decision not to proceed with the interview process.

Lookup the Company Rating on Glassdoor.com

During one of my interviews at a company, I noticed that their rating on Glassdoor was relatively low. Taking this into consideration, I decided to address the issue directly with the CTO during the interview. I asked the CTO about the reasons behind the low rating, which provided him with an opportunity to share his plans and strategies for improving the company’s working environment. This conversation allowed me to gain insights into their commitment to addressing any existing concerns and fostering a better workplace.

Summary

One final note: As someone who frequently interviews engineers, I’d like to discourage the practice of attending interviews solely for the purpose of “practicing.” While I understand that some developers may engage in this behavior, I recommend finding alternative methods to practice, such as collaborating with a co-worker or seeking help from a friend. However, I’m more than willing to assist you by conducting a practice interview. I’ll utilize the job description to generate a set of questions and virtually simulate an interview, assuming the role of the hiring manager. In the past, I have conducted these practice interviews for recruiters as well. To schedule a practice interview or a resume review, please reach out to me via email.

In preparation for your next interview, I encourage you to dedicate time to studying potential interview questions and crafting insightful inquiries to ask the interviewers. If you’re curious about the most important question you should pose to gain a comprehensive understanding of the company and your potential manager, you’ll discover the answer in “Rock Your Career: Surviving the Technical Interview.” I highly recommend picking up a copy for further insights.

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

Pick up any books by David McCarter by going to Amazon.com: http://bit.ly/RockYourCodeBooks

One-Time
Monthly
Yearly

Make a one-time donation

Make a monthly donation

Make a yearly donation

Choose an amount

$5.00
$15.00
$100.00
$5.00
$15.00
$100.00
$5.00
$15.00
$100.00

Or enter a custom amount

$

Your contribution is appreciated.

Your contribution is appreciated.

Your contribution is appreciated.

DonateDonate monthlyDonate yearly

If you liked this article, please buy David a cup of Coffee by going here: https://www.buymeacoffee.com/dotnetdave

© The information in this article is copywritten and cannot be preproduced in any way without express permission from David McCarter.


Discover more from dotNetTips.com

Subscribe to get the latest posts sent to your email.

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.