When I was younger, I always dreamed of working at one of those cool tech companies you hear about in Silicon Valley. Early on in college, I didn’t have much success landing interviews, much less passing them. It became very apparent that these jobs are gatekeeped by notoriously difficult and subjective interview processes.

During my sophomore year, I managed to land an interview for an internship at Microsoft. I was very naive and had no idea what to expect. My preparation mostly involved solving LeetCode problems. During the interview, the interviewer asked me variations of “What’s your favorite Microsoft product?” and “Which team at Microsoft would you want to work on?”. To be honest, I hadn’t ever thought about it before. I stumbled through these questions and could feel the dissatisfaction coming from my interviewer. I was so concentrated on passing the technical portion of the interview that I neglected to understand the company I was interviewing for at all.

Needless to say, I didn’t get hired. So what did I take away from this experience?

Know Your Customer

In the macro, an interview is really a sales pitch. You are pitching your time and skills in exchange for a paycheck. In marketing, it’s clear that you need to know the customer you are selling to. This allows you to craft your pitch and really sell why your product is right for them. It works the same way in an interview.

Why does this company need you? What kind of skills do you have that can directly help them? Are you knowledgeable and excited about the problem domain?

Before heading into an interview, I’ve made a habit to read engineering blogs from current/former employees, search relevant news stories, and get familar with any products or services the company offers.