Welcome back for the third and final part of our technical interview series! In case you missed the earlier parts, go check out part 1 on knowledge and part 2 on coding.

Communication

Effective communication skills are very important in the workplace. They allow you to better promote your own learning, collaborate to make the best decisions, complete large projects smoothly, etc.

Since you’re a potential coworker, it’s important to your interviewers that you can communicate well!

Good communication skills can also help transform an awkward or one-sided interview into a more fluid conversation. Below are several tips to help your interviews go more smoothly.

Sharing Your Thoughts

When you’re thinking during an interview, we don’t know what you’re thinking. We don’t know if you just need time to think, if you’re stuck, or something else entirely. Letting me know what you’re thinking allows me to ensure that we’re on the same page or to calibrate appropriately. It also lets me stop you from spending too much time following a train of thought that won’t lead anywhere.

If you’re comfortable doing it, I’d suggest thinking out loud. Often just describing your approach is enough. If you have trouble talking and thinking, that’s not a problem either—just mention that you need a moment to think or that you think better in silence. As you reach a likely answer or a dead end, give me an update so I know what approach you tried.

Listen To Suggestions

Your interviewer has probably given the exact same interview countless times. As such, they probably have seen a lot of different solutions (and attempts at solutions) for that particular interview. We often quickly know when you’re on the right path or when you’re working towards a dead end. It’s possible that you’ll come up with a novel solution, but this is very rare.

When you do take an approach that won’t work, I’ll often let you continue along that path for a bit. This isn’t to be mean; there’s merit in being able to evaluate your own ideas and realize when you need to change approaches. In fact, we have leeway in our interviews so that you have time to explore different approaches.

However, if you’ve been stuck for too long, I’ll give you a suggestion on how to continue. This might be a reminder of a detail you forgot, an idea for an approach, or some other kind of hint. Realize that if I give a suggestion, I’m hoping that you use it to change or modify your approach.

It might seem like your approach is going to be fruitful, but there’s probably a reason that your interviewer gives you a hint. Use it!

Ask For Clarification

Whenever you don’t understand part of a problem, please speak up! I might not have clearly specified a problem or we might be working off of different assumptions. Sometimes problems are intentionally open-ended. Your interviewer also just might have forgotten to mention a small detail that would have made things clearer.

It’s also often useful to confirm an approach with your interviewer. If you show that you’ve done a bit of thinking, outline a general approach, then ask me if it sounds reasonable, I’ll let you know what I think. If it’s a good approach, I’ll let you know that it’s sound and that you should go ahead and try it. If it’s not a good approach, I’ll be able to point out something that you overlooked.

However, be careful with this. It’s useful to confirm approaches, but don’t confuse this with second-guessing everything that you’re doing. If you ask me every time you write a line of code, I’ll feel like you’re fishing for information or that you’re really unsure of yourself.

Dealing With Your Interviewer

Sometimes, interviews don’t go smoothly. You might feel some tension or awkwardness between you and your interviewer. How do you handle this?

First, if there’s no obvious reason for any conflict, I’d recommend just trying to ignore any tension or awkwardness. Your interviewer just might not be fully present that day—maybe they’re tired, stressed, or just having an off day.

More likely, however, is that they’re trying to make the interview impartial. It’s easy to accidentally encourage or discourage candidates by nodding, frowning, or giving off other nonverbal cues. We don’t want to give a candidate an unfair advantage, which is why interviewers can sometimes be stone-faced.

More rarely, you might actually have a conflict with your interviewer. This could happen for a variety of reasons: you disagree over the validity of a solution, an implementation/technical detail, etc.

In these scenarios, I’d recommend deferring to your interviewer. This isn’t because your interviewer is automatically right. Rather, it’s because trying to determine the “winner” of the conflict is just a waste of your precious interview time. (Also, if you happen to be wrong, it reflects really poorly on you.)

If the issue is really nagging at you and you want to resolve it, the best time to do so is after finishing the interview. This allows you to discuss your solution without worrying about how it will affect your interview.

Questions

At the end of your interview, your interviewer will typically give you a chance to ask them any questions you might have. This isn’t part of the interview and you’re more than welcome to say that you have no questions.

However, this is also one of the best chances you have to find out if this is the company you want to work for! In case you’re not sure about what you might want to ask, here are some common topics that others ask about.

Not all of these topics will be interesting to you and some of the questions are very general; tailor them to what you value!

Administrative Details / General Company Info

  • Where are the office(s) located?
  • How large/small is the company?
  • How large/small is the engineering team?

Typical Work Life

  • What’s a typical development cycle like?
  • What are the engineering teams like? What do they do? How large are they?
  • What languages / technologies are used?

Company Culture

  • What do you or your coworkers do for fun?
  • What does the company do for fun?
  • What do you like / dislike about the company?

Career Development

For an entry-level software engineer, career development is largely synonymous with learning and growth. Although it’s impossible to tell you exactly what you will learn on the job, there are some qualities you can focus on to help decide how much a company will help you grow. The points below come from Edmond Lau’s The Effective Engineer.

  1. Fast Growth. The faster a company / engineering team is growing, the more opportunities you’ll have to be exposed to new ideas, have an impact, and take on responsibility.

  2. Training. You’ll probably get lots of opportunities to learn and grow by working at a company that has taken time to develop formal policies and programs to aid in your growth.
    • How are new engineers trained?
    • Is there some kind of mentorship program?
    • How does the company ensure that team members continue to learn and grow?
  3. Openness.
    • How does the company learn and adapt from its mistakes?
    • Are feedback and information shared proactively?
    • How is knowledge shared and/or documented?
  4. Pace. The more quickly you can iterate, the more feedback you can get and the more you can learn.

  5. People. The more smart, talented, and creative people you work with, the more people you can learn from. Try to meet the people who would be your future coworkers.

  6. Autonomy. Companies offer varying amounts of autonomy. Low autonomy often comes with more coaching and structure. High autonomy often requires you to be more proactive about your learning and growth.

We really hope you found something useful in this series! If you have any thoughts or suggestions, let us know in the comments below or on Twitter.

Additionally, if you know someone who’s prepping for interviews, please share these posts with them!