What Does It Take To Be Successful In A Software Engineering Interview?

In order to succeed at software engineering interviews, I have three essential tips:

My first tip would be to only interview when you feel most ready and prepared. There are a lot of resources online (i.e. exercises, etc.). Some people think that interviews are great learning experiences; I disagree. Passing an interview is the long-term goal.
The first important skill to master is to be able to identify what kind of problem you are solving. If you correctly find that a problem can be best solved with DFS, for instance, you just have to implement it and you’re good to go. There are some hints to find out what kind of algorithm would work best, and if they are not obvious enough, talk to your interviewer.

That’s the second, and probably the most important skill to have: being able to communicate with your interviewer. Explain your thought process, and be receptive to hints. At the end of the day, I’m not interested in whether my candidate can solve a problem 10% faster or slower than another, but whether I could see myself working with them in the future. To follow up on my first tip, I had a candidate that was convinced that the problem I was giving her was best solved with dynamic programming, but that approach wouldn’t work. I gave her several hints, eventually told her flat out that it would get her nowhere, but she ignored them and dug herself into a very deep hole.

The third tip is about coding style. This is also why it’s important to be prepared. Coding style is very important in interviews. Sure, you can see one way to solve a problem. But is that the most elegant way? The most robust way? And especially, the cleanest way? Resist the temptation to show off with exotic features (your interviewer won’t be impressed). Instead, invest that effort in descriptive variable names, consistent syntax that shows that you can follow standards, and legible code. Bonus, explain what you do as you code. To improve on this, read a lot of good code and practice.

Lastly, an interview is also a chance for you to evaluate the company and the people you’d work with. If the interviewers are helpful, chances are that they would be supportive coworkers and good teammates. If they just stand there and judge you silently, you may or may not want to work with such people.