Link Search Menu Expand Document

Interviewing

This section is probably what most of you will be looking at, but honestly not my greatest section so I’ll just try to give you my thoughts in the interviews that I’ve conducted. Feel free to use established books like Cracking the Coding Interview for in-depth knowledge about this topic.

What I look for

This section are some behavioral things I look for when I interview:

Someone I’d like to work with

Most of the time I’m interviewing people that will work in my department, so the number one thing that I’d look for is if this is someone that I’d work with on a project. This manifests itself in what my values of a programmer are, but mostly it boils down to:

  1. Are you easy to work with?
  2. Can you communicate your thoughts effectively?

Someone who loves technology

One indicator for high performers are that they just love technology and it fuels them. The way they speak about technology shows you how much they care about the field, and how willing they are to grow. People with a passion for their work will be happier (because they are doing what the love) and have more ideas to share (like new technologies, patterns, processes).

Someone who is pragmatic

There is so much going on in the field right now that it’s impossible to get everything “perfect”, and you will have to deal with trade-offs throughout your career. It is important that candidates are pragmatic in their approach to solving real-world solutions. This means showing them that you can create a solution from anything they give you.

Let’s say they ask you an architecture question about creating a simple todo application for their company. Seems like a good use-case for NoSQL database. But instead of jumping right into solutioning, ask them what tech stack they are working on. Maybe they’ll say they currently only work with SQL databases. So you could talk about the pros/cons of working with their existing database such as DBA support, supported workflows, developer familiarity or you can talk about going the NoSQL route and how it would fit document based storage, performance, etc. This gives you a lot to talk about and shows you are looking at it from a variety of angles. One note is that you will probably have a lot to talk about, and maybe too much! So just be sure to be clear and straight with your options and try to get feedback from the interviewer in a timely manner.

Coding Interview

I’m probably one of the worst people to ask about coding interviews, so refer to other resources for better tips. Here are some resources that helped me get through coding interviews.

Thoughts on State of Programming Questions

From my personal experience I find little correlation between programming questions and success of a candidate. With that said there’s not much you can do as a candidate but play the game until there is more dramatic change in what types of programming problems they choose to ask.

Coding Websites

  1. LeetCode
  2. Firecode
  3. Codewars
  4. HackerRank

I personally use LeetCode and Firecode as my goto’s when preparing for interviews. LeetCode has a really great editor and tons of problems to work through. Firecode is great because it introduces a learning algorithm that emphasizes spaced repitition that builds your programmer muscles over time.

Questions

What is the perfect question to ask - many people have asked me. To that I say whatever you want to know! The thing to understand is that while many people are wrapped up in the battle of getting the position…what they don’t know is if it is the right direction. If you spend all the effort to get into a place that you hate, why spend all that effort anyways?

Questions is an opportunity to learn more about the company, and if that fits your vision of the kind of company you want to work for. The question is how to make meaningful conversations from these questions. The answer lies in the person you’re asking - what are their concerns? Those are the questions that will get you the gold nuggets your looking for.

Typically there are five types of people you will have an opportunity to ask questions:

  • Human Resources
  • Junior Engineers
  • Senior Engineers
  • Managers
  • Leaders (Directors, C-Level, etc)

Human Resources

HR’s concerns are those of the people. What questions do you have how their company treats people?

Junior Engineers

Junior Engineers have the concern of “fresh eyes”, where they don’t have a lot of experience in the industry and to the company (usually). It is great to get fresh perspective from what they see.

Senior Engineers

Senior Engineers have the concern of getting things done. It’s great to ask them about workflows, processes, development experience. Asking them questions about how it they like the work is very telling about how good the code and architecture is in.

Managers

Managers are concerned with people. How are people working together? What can make people more effective? Managers are good people to ask what the culture is like at the company.

Leaders

Leaders are concerned with direction. They are the ones deciding where the destination is. You can ask about the greater strategy they are working on and what is their plan.