This algorithm question was so popular @ Pinterest that three interviewers asked me the exact same question and I had to let them know that I had this question with the first interviewer. So make sure you learn how to solve this question before your next interview! Here is the invitation email I received for my remote onsite interview:

In the “Pinterest System Design Interview” blog, we went over the system design interview round. In this blog, we will go over the first practical data & algorithm interview round I had with Pinterest.

Question

Given a list of non-empty words…


Today, I prepared another Pinterest technical interview tutorial for you guys. From the last tutorial, I went over the algorithm question that I received from the first phone screen interview. After that interview, I was invited to do the remote onsite interview (due to Covid..)

Here is the invitation email I received for the remote onsite interview:

One thing to note is that because it is a remote onsite interview, they give you an hour for the system design interview round because it is harder to explain things via the CoderPad.

System Design Interview Question


A technical recruiter from Pinterest approached to me around Sep 2020 for a new software position in Toronto. Once I had a quick chat with the recruiter, I got an invitation for the first technical phone interview round. The invitation email looks something like this:

It contains date, time, and the person who will be conducting your interview. Also it contains the link to the CoderPad where you will be writing your code.

Interview Question

On the first phone interview round, they asked me the following algorithm question:


Have you googled anything about scalable systems or scalability recently?There are more than 123M results on Google, +10k research papers, and +100k tutorials/blogs on Scalability.

Scalability became a must skill to have for software engineers. You “must” know what and how to build a scalable system if you want to work at big companies (e.g., Amazon, Google, Uber). They work with a massive volume of data so anything they build must be scalable.


When you are building a software application or a service, I’m sure you’ve heard of these big words: scalability, maintainability, and reliability. Everyone talks about it.

Everyone just throws these words at each other without really knowing what individual terms actually mean. Today we will tackle what reliability really means in depth so you don’t freeze when the interviewer asks you sth like: so “how do you make a reliable application?”

What is Reliability


Today we will learn in depth about ACID database properties. If you have accidentally clicked on this video to learn about acid and base chemistry, might as well — stick around a bit longer to learn about software and programming which provides the best career opportunities right now!! This might be your life changing moment for you!


Prerequisite

Visit the official protocol buffer site to understand and learn what “protocol buffers” is. This article assumes that you have fair bit of knowledge on protocol buffers and Java.

Objective

Implement gRPC server using Java + Gradle.

1. Define Your Service

Create a hello.proto file under src/main/proto directory and define a HelloWorld service as follows:

2. Generate HelloWorld Service Server Code in Java

If you have not installed the protoc compiler yet, visit the official compiler installation page to download it.

Once you have the protoc compiler, make the following changes in your build.gradle file for the compiler to auto-generate HelloWorld service server code in Java:

Once you make the…


Prerequisite

Visit the official site to understand and learn what “protocol buffers” is. This article assumes that you have fair bit of knowledge on angular & protobuf.

Objective

Use protocol buffers in angular applications.

1. Define Your Service

Create a proto/hello.proto file and define a HelloWorld service as follows:

2. Generate Typescript Service Client Code

If you have not installed the protoc compiler yet, visit the official compiler installation page to download it.

Use the following command to install npm libraries required to generate typescript service client code:

$ npm install ts-protoc-gen @improbable-eng/grpc-web @types/google-protobuf google-protobuf

Then, create a bash script genproto.sh with the following code:

Then, run the script…

Justin Holiday

Software Engineer @ Google

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store