NDTV Profit Team, June 14, 2017 —

Top tech companies make most engineers go through several interviews and extensive coding exercises to get these prized jobs.

Software companies can have rigorous interview processes. [iStockPhoto]

Software engineers are some of the most sought-after and highly-paid professionals in the job market today. According to the US Bureau of Labour and Statistics software engineering jobs in the US will grow at a rate of 17 percent over the next seven years, far outpacing job growth as a whole in the U.S.

While Silicon Valley giants like Google, Apple and Microsoft have long been some of the most sought-after employers in the tech space, the catch is that generally being chosen for a prime position in these companies is notoriously difficult. Top tech companies are extremely particular about the hiring the right kind of talent. As a result in addition to several interviews, most engineers go through extensive coding exercises to get these prized jobs.

To help software programmers prep for such interviews, US-based salary research site Paysa has compiled a list of 33 common software engineering interview questions  broken down by the steps in the process you’ll encounter with most top tech companies.

Step 1. Initial Phone Screen with a Recruiter

Software engineers infamously receive countless requests from recruiters for conversations about new opportunities, Paysa said in its blog post, adding that, when speaking with a recruiter for the first time, your primary focus needs to be demonstrating to them that you’re worthy of speaking to the actual engineers.

Here are some of the common questions recruiters ask:

  • Why are you interested in working at “XYZ Company”?
  • Do you have experience with a certain coding language/technology we use here at XYZ Company?
  • What projects have you been focused on at your current job?
  • Do you have any leadership experience?
  • If so, how big was your team and what projects did you work on?
  • What are you looking for in an opportunity that would lure you away from your current employer?


Step 2. Panel Interview with Engineering Team

 Interviewers at this stage are interested in learning more about you and your experience. However they may also ask about your personal background to make sure you are a right fit for the organisation culturally. Typical questions you might encounter at this stage can be
1. Cultural
  • What excites you about joining our team here?
  • What are your hobbies outside of work?
  • What do you love about your current job and work environment?
  • Describe your ideal company culture.
  • What’s the most important part of your work environment that will ensure you’re successful?
  • How would co-workers describe the role you play on the team?
  • Tell us a decision you made based on internal or external customer feedback.

2. Experiential

  • Which tools do you like to use for keeping track of requirements?
  • What’s most important when reviewing another team member’s code?
  • Describe your coding process from start to finish.
  • How do you prepare your code for different kinds of errors?
  • What’s your preferred language for complex algorithms?
  • How do you design scalable applications?
  • What project are you most proud of in your career thus far? Why?
  • Describe a project that failed. What happened? How did you rebound?

3. Technical

  • What is the difference between a mutex and a semaphore?
  • What is multithreaded programming?
  • What is the difference between local and global variables?
  • What’s the difference between local and global variables?
  • You have a single-threaded, C standard application that’s continuously crashing, but never in the same place. What could be causing the crash?
  • What is the difference between a queue and a stack?
  • What is a regression test?


Step 3. Coding Session with Engineering Team

You may be asked to do some basic coding as early as your second interview. But almost all companies have a larger coding session on-site as the final step in the interview process. Some typical questions you could face at this stage will be:
  • Big-O complexity analysis: What is it and how is it used?
  • Trees: Basic construction, traversal, and manipulation algorithms. Know how to implement balanced binary trees.
  • Stacks (implement a queue with two stacks)
  • Arrays and strings (reverse strings, permutations)