How to crack technical questions in PM interviews

Technical questions are common in product manager interviews at companies like Google, Microsoft, and Amazon. For instance, your interviewer might ask, "How would you explain cloud technology to a five-year-old?” These questions can feel really unsettling at first.

But the good news is that if you know how to approach them they can become fairly easy to answer. So, let's step through our suggested methods for answering technical interview questions as well as some examples to help you prepare for your interview.

Here’s an overview of what we will cover:


1. What technical questions can you expect in PM interviews?

Product Managers work with engineers to build software products. PMs don't need to be developers but they need to understand how technology works. This is why companies like Google and Amazon ask technical questions in PM interviews. There are two types of technical interview questions: Technical explanation questions and Algorithm questions.

Employers use Technical explanation questions to assess the extent of your technical knowledge and your ability to communicate that knowledge simply. For instance, you could be asked, “How does the internet work?” Interviewers are looking for a summary that’s easy to understand, and might also follow up with questions to see how deep your understanding of the topic is.

Tech companies use Algorithm questions to test if you can think like a developer. For example, an interviewer might ask, ”How would you design a method to identify if a number is prime?“ Note that you’re only likely to be asked this type of question if you have a technical background. Your interviewers are mostly interested in how you think when they ask these types of questions. They will therefore only expect you to write pseudocode, not production-level code.

2. How to answer technical interview questions

A common mistake candidates make when answering technical questions is to provide an unstructured answer. In this next section, we’ll walk through two step-by-step approaches you can use to avoid that pitfall — one for Technical explanation questions and one for Algorithm questions.

2.1 Technical explanation questions

Technical explanation question example:

“How does the internet work?”

2.1.1 Step-by-step approach: IGotAnOffer Method

We developed the IGotAnOffer method below to help you give a clear and thorough answer to Technical explanation questions. The steps might sound abstract at first but bear with us as the example below will help make them tangible.

  1. Clarify: Many candidates skip this step and jump straight into answering the question. This is a big red flag for interviewers. Before starting to answer make sure you understand exactly what the interviewer wants you to explain by asking clarification questions. In addition, if the topic you were asked about is extremely vast you will need to narrow down and focus your explanation on the most important aspect of the topic.
  2. Explain step-by-step: Next, you should explain the technical concept step-by-step. When possible, use a metaphor to communicate your understanding of how it works. In this step, it’s ok to ask your interviewer for some time to structure your thoughts before delivering your answer.
  3. Conclude and discuss: Finally, you should provide a summary of your explanation. At this point the interviewer will most likely critique your explanation, which is perfectly normal. They might continue to ask for further details to assess the depth of your understanding. Some interviewers will also keep on asking questions until they reach a technical area which you don’t master. If you don’t know something you should therefore admit it.

2.1.2 Example question with answer: How does the internet work?

Now that you know how to approach Technical explanation questions, let's look at an example.

Try answering the question below by following the method described above. Play both the role of the interviewer and candidate. Leave a comment at the bottom of the blog post with your answer. We will reply to every question in the comments section.

The key is to answer each question without seeing other people’s answers. To do so, scroll down directly to the bottom and leave your answer before reading other candidates’ proposals.

Try this question:

“How does the internet work?”

Answer

Below you will find our proposed answer to the question. Before taking a look at it, make sure you go to the bottom of the page and answer the question by yourself in the comments section. There are only so many opportunities to prepare for technical interview questions!

Step one: Clarify

The Internet is a complex system with many features and we can’t realistically explain how all of it works in an interview. It’s therefore a good idea to clarify with the interviewer what specific features of the Internet we should focus on.

To reduce the scope of our explanation, we might say something like, “The internet is composed of many complex elements. I could talk about network connections, blockchain technology, specific web services, etc. But the most fundamental feature of the Internet is probably that websites can be accessed by typing a URL in a browser, so this is what I suggest we focus on. Is that what you have in mind too?”

Step two: Explain step-by-step

Let’s imagine the interviewer agrees that we should explain what happens when someone types a URL into the address bar of a web browser.

A this point, we would ask for a few seconds to gather our thoughts and to list the high level steps of what happens when a user queries a website. Once you’ve laid out your thoughts you can start walking the interviewer through the different steps.

When a user queries a website there are four systems involved:

  • The device on which the user is typing the website’s URL. This is often called the "Client"
  • The DNS resolver which is going to help us find the IP address of the website based on its URL
  • The Server, from which we need to get the website data that needs to be displayed
  • The Internet which manages communications (e.g. queries, data, etc.) between the Client and the website’s Server

Web page query process diagram


Here is what happens step-by-step:

  1. The Client browser uses the URL (e.g. example.com) to find the website’s IP address, which is either stored in local memory or found with a DNS lookup. Let’s use a metaphor for a second. A DNS resolver is like a big phone book matching URLs and IP addresses. If you wanted to call “John Smith” on the phone first you would need to find his number in the phone book.
  2. Next, the browser uses the IP address and queries the Internet for the website’s data. This is like if you dialed John Smith’s number, the phone company would make a connection between your phone lines.
  3. Then the website’s Server sends appropriate data (e.g. an index.html file) back across the Internet. In our metaphor, when John Smith answers and says hello, his voice is translated into an electronic signal that’s passed through the phone lines.
  4. Finally, the website’s data reaches the browser, which then displays a visual interpretation of that data. This is like your phone’s speaker turning the electronic signal into John Smith’s voice again.

Step three: Conclude and discuss

We would conclude by saying something like, “So, typing a URL into the address bar of a browser works a lot like making a phone call. Information is transferred back and forth between two connection points. Also, the transferred information needs to be interpreted by the receiver.”

Let’s imagine the interviewer is looking for more detail and says, “That’s an interesting explanation, but you glossed over DNS lookup which is a really important factor of the process you described. Can you explain more about that?”

Once again here we could ask for some time to list what happens step-by-step when a DNS resolver tries turning a URL into an IP address. Let’s assume we know a lot about how DNS resolvers work. Below is the information we would walk the interviewer through.

There are four major types of servers involved in DNS resolution:

  • The Resolving name server receives the URL from the Client and is expected to send back an IP address. To find that IP address the Resolving name server communicates with three other servers: Root servers, Top Level Domain (TLD) servers, and Authoritative name servers.
  • Authoritative name servers provide the IP address of specific websites (e.g. www.example.com). However, there are many Authoritative name servers, and the Resolving name server does not know which one to contact to find the IP address.
  • A TLD server can point to the Authoritative name server of any website that ends with the particular domain extension it’s responsible for. As an example, a ‘.com’ TLD server stores the location of the Authoritative name server for all websites that end with ‘.com’. However, the Resolving name server does not know the location of the TLD server it needs to contact when it begins searching for the IP address.
  • A Root server provides the location of TLD servers. The Resolving name server always knows where to find Root servers. So, contacting a Root server is the Resolving name server’s first step when searching for the IP address it’s trying to find.

DNS resolution diagram

 

Here is how the resolution works step-by-step:

  1. The Resolving name server queries a Root server, which points to the appropriate TLD server. Let’s use our phone book metaphor again. When calling John Smith, we would start our search for his number in the phonebook by deciding between the yellow pages for business numbers versus white pages for personal numbers. This is what the Root name server does for us.
  2. The Resolving name server then queries the appropriate TLD server, which points to the Authoritative name server. This would be like using the category and alphabetical sorting of the phonebook to find the specific page that lists all the “Smiths.”
  3. The Resolving name server then queries the appropriate Authoritative name server, which will provide the website’s IP address. There could be a lot of “John Smiths” listed in the phonebook, so you would use street addresses to determine the exact phone number for the specific John Smith you’re trying to call.

The interviewer interrupts and asks, “Another important element related to DNS is caching — can you explain how that works?”

At this point let’s assume we don’t know anything about caching, so we would say something like, “That’s really interesting, but I’m not sure how caching works in DNS processes. I would need to look into it a bit more to give an accurate answer.”

Remember, interviewers are likely to ask follow up questions until they reach the limits of your knowledge so it’s ok to say when you don’t know something.

How did you do? 

Leave a comment below with your thoughts and questions, and we will answer them promptly.

2.2 Algorithm questions: IGotAnOffer Method

Algorithm question example:

”How would you design a method to identify if a number is prime?”

2.2.1 Step-by-step approach: IGotAnOffer Method

We developed the IGotAnOffer method below to help you give a clear and thorough answer to Algorithm questions. The steps might sound abstract at first but bear with us as the example below will help make them tangible.

  1. Clarify: Many candidates skip this step and just start writing code. Before doing this, you need to make sure you understand the question correctly by asking clarification questions and playing back what you understood to the interviewer. Doing this upfront is extremely important because you can’t answer the question correctly if your understanding is not accurate.
  2. Solve an example: Start by answering the question for a simple example. This will help you figure out how to write your algorithm for the generic solution in the next step.
  3. Write your generic solution: Once you’ve solved an example you should write an algorithm in pseudocode that solves the generic case. You should show the piece of paper you write on to your interviewer or use a whiteboard when possible.
  4. Discuss your solution: It’s a good idea to finish your answer by sense-checking your algorithm with an example. You should also list edge cases you would want to test your algorithm on but there’s usually no need to run through them unless the interviewer asks you to. Finally, if you have a very technical background, such as a Computer Science degree, the interviewer might also ask about the trade-offs of your code (e.g. memory vs. speed performance).

2.2.2 Example question with answer: How would you design a method to identify if a number is prime?

Now that you know how to approach Algorithm questions, let's look at an example.

Try answering the question below by following the method described above. Play both the role of the interviewer and candidate. Leave a comment at the bottom of the blog post with your answer. We will reply to every question in the comments section.

The key is to answer each question without seeing other people’s answers. To do so, scroll down directly to the bottom and leave your answer before reading other candidates’ proposals.

Try this question:

”How would you design a method to identify if a number is prime?”

Answer

Below you will find our proposed answer to the question. Before taking a look at it, make sure you go to the bottom of the page and answer the question by yourself in the comments section. There are only so many opportunities to prepare for technical interview questions!

Step one: Clarify

First we want to confirm our understanding of prime numbers with the interviewer. The main question that comes to mind here is how prime numbers are defined:

  • What exactly makes a number prime?

Let’s imagine the interviewer gives us a few details related to prime numbers. We would then summarize to make sure we understand correctly, and say something like, “So, a prime number is a whole number greater than one, and whose only factors are one and itself. In other words, a prime number divided by any whole number between one and itself (excluded) will produce a remainder.”

Note: If you’re not familiar with the concept of a remainder, one way to think about it is as the fraction left over after dividing. For example, 9 / 4 = (4 / 4) + (4 / 4) + (1 / 4). The number 4 divides into 9 exactly twice with 1 left over. That leftover 1 is the remainder of 9 / 4. A remainder of 0 is produced when there is nothing left over. For example, 8 / 4 = (4 / 4) + (4 / 4). The number 4 divides into 8 twice, and there is nothing (0 / 4) left over.

Step two: Solve an example

First, let’s pick a simple number and think about what we would do to determine if it’s a prime number. For instance, how could we determine if the number 7 is prime or not?

  • The first condition is that it has to be greater than one
  • The second condition is that when dividing 7 by any whole number between 1 and 7 (excluded) there should be none that produces a remainder of 0

We know that 7 is greater than 1, so the first condition is met.

To meet the second condition, 7 divided by 2, 3, 4, 5, and 6 all need to produce a remainder greater than 0. If dividing by any of these numbers produces a remainder of 0, we know 7 is not prime.

7 / 2 produces a remainder of 1
7 / 3 produces a remainder of 1
7 / 4 produces a remainder of 3
7 / 5 produces a remainder of 2
7 / 6 produces a remainder of 1


So, since 7 does not have any other factors besides 1 and 7, the second condition is met and we can conclude that 7 is a prime number.

Note: we don’t need to check numbers larger than 7 as we know it is not divisible by 8, 9, 10, etc.

Step three: Write your generic solution

Now let’s think about how we can generalize this logic. At this point we would start writing out our solution in pseudocode.

Let’s write an algorithm which takes a number N as an input and determines if N is prime or not as an output.

First, we should check if N is greater than 1. If it’s not, we know that it’s not a prime number and our algorithm should return “false.”

Step one: if (N <= 1) return false;


Next, we need to know if there are any other factors between 2 and (N - 1). In other words, if any of the numbers between 2 and (N - 1) produce a remainder of 0, we know N is not a prime number.

Step two: i = 2;
Step three: N % i = R;
Step four: if (R == 0) return false;

Note: “%” is standard coding notation for a function that calculates the remainder of a division between two numbers. And “==” is standard notation to test if two variables are equal to each other.


Each time the remainder produced is different than 0 we should try the next number, until we reach N.

Step five: else i++;
Step six: while i < N, go back to step three;


If N is not divisible by any number between 1 and N (excluded), then N has passed our second condition, and we can confirm it is a prime number.

Step seven: return true;


The whole algorithm then looks like this:

Step one: if ( N <= 1) return false;
Step two: i = 2;
Step three: N % i = R;
Step four: if ( R == 0) return false;
Step five: else i++;
Step six: while i < N, go back to step three;
Step seven: return true;


Step four: Discuss your implementation with the interviewer

Let’s now test out our generalized algorithm on another easy number, like 10.

Step one: 10 > 1
Step two: i = 2
Step three: 10 % 2 = 0 = R
Step four: R == 0, so return false


Our algorithm confirms that 10 is not a prime number, as 2 is also a factor.

Finally, we could call out non-integer and negative numbers as edge cases we would want to test. We might also highlight that we could make a more condensed version of our algorithm by using a for loop:

if ( N <= 1) return false;
for (i = 2; i < N; i++) {
    N % i = R;
    if (R == 0) return false;
}
return true;


How did you do? 

Leave a comment below with your thoughts and questions, and we will answer them promptly.

3. List of sample interview questions: Technical

If you would like feedback on your answer to any of the questions listed here, you can leave your answer below and our team will get back to you.

3.1 Practice Technical explanation questions

Here is a list of Technical explanation questions that were asked in PM interviews at Google, Microsoft, Amazon, and Facebook, according to data from Glassdoor.com:

  • Explain recursion to my grandmother
  • What technologies would you use to build a live stream video service?
  • Explain the concept of "protocol" to a 4-year-old child
  • What is the difference between C++ and Java?
  • Explain what happens when executing mergesort
  • When are Bayesian methods more appropriate than "Artificial Intelligence" techniques for predictive analytics?
  • How would you most efficiently store large images in a database?
  • Explain the concept of big O notation
  • How would you get authentication to work across domains
3.2 Practice Algorithm questions

Here is a list of Algorithm questions that were asked in PM interviews at Google, Microsoft, and Amazon, according to data from Glassdoor.com:

  • Design a method that removes every other node from a linked list
  • Write a program to randomly shuffle an array of numbers
  • How would you output a tree in column sequence from left to right
  • Invert the words of a sentence in a string
  • Write a function that returns how many digits are in a number
  • Take in an unsorted array with duplicates and return it with no duplicates
  • Write a function that determines if an array of ‘chars’ is a palindrome
  • How can you find and then remove the second to last element in an infinite list?

If you are practicing for PM interviews, here are some other question types you should prepare for:


Any questions about PM interviews?

If you have any questions about product manager interviews, do not hesitate to ask them below and we will be more than happy to answer them. All questions are good questions, so go ahead!

Keep reading: product manager interview articles