Success occurs when opportunity and preparation meet. Without a doubt, the more prepared you are for an endeavor, the higher your chances are in succeeding.

This is the base template I used when managing multiple software engineer interviews. 


You can make a copy of the sample Google Doc template I created for you and use that during your interview preparation.

For you unique and individual interview use cases, you add on and modify the document to your liking. 

Why You Should Do This

  1. Preparation: Aggregating all your pre-interview research into one central locus will help structure your understanding of the company you are interviewing at and during the actual interview, you can easily search your Google Doc for key information to use immediately. 
  2. Reflection: Documenting your interview process allows you to reflect and potentially correcting your bad habits (i.e. ineffective questions or question process) during the interview.
  3. Comparison: If you have several offers, you can reference these documents and conversation notes to make a data-informed decision on which opportunity is the best fit for you.

Interview Life Cycle Playbook

Research Preparation

When you hear back from a recruiter or hiring manager and actually have an interview scheduled on your calendar, you should enter the research preparation stage.


You should definitely do research about the company’s core product and investigate the pros and cons of the product.

Ideal Customer Profile


As for company strategy, you want to understand the company vision, mission, and overall direction that its headed towards.

This can differ based on whether you are interviewing for a start-up or public company. In that scenario, add different columns and rows for different information sets. 



This is definitely something you want to do your due diligence in researching. You can find company culture and value information typically on their company web page.

However, you might also want to dig deeper and look at Glassdoor for reviews and even reach out to current employees on LinkedIn for deeper investigation.

The last thing you want happening is moving deep into the interview process and realizing that it will not be a good fit because the company’s value and culture misalign with your own.

Key People


Normally, a competitor analysis research preparation is a good idea for a business or customer-facing roles like a Product Manager.

However, even for a Software Engineer role, it might be beneficial to do some light research and understand the market landscape of the company you are interviewing for.

This section is optional, but it’s nice to have. 

(#1) MasterCard(#2) American Express(#3) Discover
Product: -Who is in charge of making the product?-How good is your competitor’s product team?
Market Share / Strategy
Customers: Having a large user base has certain advantages:- any time they launch a new feature, they can dominate the market
Key Metrics
News & Rumors
Brand Rating: Strong brands demand a higher level of customer loyalty,can charge higher prices, and they get the benefit of the doubt
Design:  How good is the competitor’s ability to make products that have great design?
Speed:  How quickly can they make changes?


Here, you want to copy and paste the job description for reference. This way, you won’t have to search for the actual job post and prevent the event when the original job post and description has been deleted.


This preparation is extremely important. Typically, you will be repeating this elevator pitch in all stages of your interview process. 

A good elevator pitch is at max 2 minutes long. And it should depict your career story in chronological order. Moreover, you should list out the accomplishments and tangible results you’ve achieved in your previous roles.

  1. Who are you?
    1. During college, I’ve co-started the 1st Young Life college chapter in San Francisco for 5 years and held a leadership role in program management by living in the venue
      1. I created programs for biking, surfing, breakdancing,  music open mics (LIVE), and open discussions on philosophy and religion
    2. Since graduating in 2016, I joined my friend as a Sales co-founder at LTEMP in the mobile accessories wholesale and e-commerce business
      1. Since we didn’t have much capital but needed to hire sales and marketing people, I devised an internship program and hired 
    3. I’ve also worked as a Strategic Advisor for 2 infant start-up, and consulted and CompassionLeaders around Sales, Marketing, and Product
      1. One success story was the consultation I provided on sales helped acquire first early adopters like AirBnB and OpenTable
    4. Worked at IFTTT as one of the 1st sales hire. 
      1. Closed an enterprise account, Alibaba IoT Cloud in Mandarin Chinese. 
      2. Specialized in selling to finance companies. Closed Project Imagine and Base Account which were fintech companies that used IFTTT and IoT technology to gamify payments and investments. 
      3. Received 4 LinkedIn recommendations for excellent customer service, especially in post-sales activities in helping clients with their go-to-market by syncing their business goals and IFTTT solution using OKRs
    5. Currently, I’ve been building skills in web development since 2017 in technologies like Ruby on Rails and full-stack JavaScript. When I was building my MVPs, I acted as my own Product Manager by mapping out the product roadmap, project management using Trello
      1. SmartOKRs  (GitHub Repo)  
        1. App Overview: Automate your goals through the everyday software tools you make.
      2. Qualified (GitHub Repo)  
        1. App Overview: Quantify the value of a sales opportunity based on the summation of points for all sales stage. 
  2. What makes you different (personal)?
    1. I speak 4 different languages (Burmese, English, Mandarin, and Cantonese)
    2. I have a background in breakdancing (10+ years) and music for 5+ years (vocal, guitar, keyboard)
    3. International work experience in China, lots of travel experiences (40+ cities around the world)
    4. For the most part, self-taught my whole life when it comes to language (Chinese), breakdancing, music, and programming
    5. Had 5+ mentors during high school up to college
  3. Where do you want to take your career?
    1. Keep building my engineering skills in tandem with my Product skills. Ultimately, stay in the product


For this section, this is an opportunity for you to devise short pitches for the arsenal of technologies know-how skills you possess.

The framework I use to presenting a complete pitch of your understanding of any given technology follows this pattern: What is it? What challenges does it address? What are the benefits of using that technology? And what are the trade-offs?

How To Present (What Is It? Challenges, Benefits, Trade-offs,)

  1. Redux
    1. What is it?
      1. Redux is a predictable state container for JavaScript apps.
      2. Redux helps you write applications where the state behaves consistently, run in different environments (client, server, and native), and are easy to test.
    2. Challenges
      1. State Is Not Predictable
        1. Side-effects, an input A results in different outputs
        2. Dealing with asynchronous data from 3rd party APIs
      2. Bi-Directional data flow and Mutability 
        1. When data flow is bidirectional, the data can be mutated through various transactions from the UI and state
      3. State and Presentation Not Separated
        1. React components will be responsible for both UI rendering and state management, which will have a hit on the performance of that component
        2. Also, it will make maintainability and testing hard
        3. Plus, it will go against the DOT principle, because a component will be doing more than one thing (manage state and render UI)
    3. Benefits
      1. Predictable State – Unidirectional data flow and immutability
        1. In Redux, the state is always predictable. If the same state and action are passed to a reducer, the same result is always produced as reducers are pure functions. 
        2. The state is also immutable and is never changed. This makes it possible to implement arduous tasks like infinite undo and redo. 
        3. It is also possible to implement time travel that is, the ability to move back and forth among the previous states and view the results in real-time.
      2. Separation of data and presentation
      3. Debuggable for days.
        1. Redux makes it easy to debug an application. By logging actions and state, it is easy to understand coding errors, network errors and other forms of bugs that might come up during production.
      4. Ease of testing
        1. It is easy to test Redux apps as functions used to change the state of pure functions.
      5. Maintainability.
        1. Redux is strict about how code should be organized so it makes it easier for someone with knowledge of Redux to understand the structure of any Redux application. This generally makes it easier to maintain.
      6. Redux can also be used for server-side rendering
        1. With it, you can handle the initial render of the app by sending the state of an app to the server along with its response to the server request. The required components are then rendered in HTML and sent to the clients.
    4. Trade-Offs
      1. Actions are disconnected from their effect (which is defined in the reducer)
      2. Side Effects: No out-of-the-box solution for dealing with side-effects (available through middlewares such as redux-thunk or redux-saga)
        1. We want the ability to trigger side effects (for example, issuing AJAX requests and dealing with ASYNC things) in a controlled and predictable way. 
      3. Boilerplate (views, action types, action creators, reducers, selectors, …)


This is a cheat sheet to have in your back pocket to answer potential run-time complexity questions you might encounter during a phone interview and also this will help you when you’re about to prepare for an onsite whiteboard.

  1. [Excellent] O(1) — Constant Time: Given an input of size n, it only takes a single step for the algorithm to accomplish the task.
  2. [Good] O(log n) — Logarithmic time: given an input of size n, the number of steps it takes to accomplish the task are decreased by some factor with each step.
  3. [Fair] O(n) — Linear Time: Given an input of size n, the number of steps required is directly related (1 to 1)
  4. [Bad] O(n²) — Quadratic Time: Given an input of size n, the number of steps it takes to accomplish a task is square of n.
  5. [Horrible] O(C^n) — Exponential Time: Given an input of size n, the number of steps it takes to accomplish a task is a constant to the n power (pretty large number).
Data Structure
Time Complexity
Linked ListO(N)O(N)0(1)0(1)
Doubly Linked ListO(N)O(N)0(1)0(1)
Hash tableN/A0(1)0(1)0(1)
Binary Search TreeO(log(n))O(log(N))O(log(N))
Red-Black TreeO(log(n))O(log(N))O(log(N))
AVL TreeO(log(n))O(log(N))O(log(N))

[DATE] PHONE INTERVIEW  WITH [Name, Role, LinkedIn Link]

For each stage of the interview, you should apply this same template structure by copying and pasting the entire template but changing the date and the person you are interviewing.

Also, you should change the questions you ask each person as not to overlap and repeat questions and get similar responses.

You want to date the interview and also find the interviewer’s LinkedIn link.


  1. 51 Great Questions to Ask in an Interview
  2. 10 Questions to Ask in Your Next Job Interview to Avoid (Another) Toxic Boss
  3. Tech Interview Handbook – Yangshun GitHub

This section will allow you to jot down arbitrary, unorganized conversation notes that doesn’t fit your pre-curated question set.

  1. Example
Questions for Interviewer, Company

Prepare some thoughtful questions you want to ask that you cannot find online. This can be able company goals, the next product iterations, or deeper questions on why the opportunity is available, etc.

  1. Question 1
  2. Question 2
  3. Question 3
Why This Opportunity?

Be prepared for the interviewer asking the question of why you are interested in this opportunity.  Below is the framework I use to prepare for this inevitable question. 

You want to list out at least 3 reasons why you are interested in the company. You can talk about the product, company mission, or the problem that the company is trying to solve. 

Next, you want to highlight how your prior experience directly compliments the job description or the function of the role you are applying for.

Lastly, a dose of passion for why you enjoy the role, the industry, or company product will help end this pitch on a positive note.

  1. Company Research
  2. Relevant Experience
  3. Passion
Why I Will Be a Good Fit 

This preparation forces you to articulate why you are a good fit specifically for this role. You can devise your pitch from these perspectives:

  1. Why I’m a good Developer
  2. Why good fit for this space
  3. Why good fit for company, culture

About the Company

You want to open up the conversation by understanding the company goals as a whole. This will help you get a broad idea of the direction they are planning to go towards and help you understand how the role plays in the bigger picture.

  1. What are the current goals that the company is focused on, and how does this teamwork to support hitting those goals?


These questions are typically asked for start-ups. This helps you understand how the leadership team is strategizing and positioning the company for current or future success. 

  1. Are you profitable? If no, what’s your plan for becoming profitable?
  2. What assurance do you have that this company will be successful?

About the Current Technical Situation

As an engineer, you need to understand what you are getting yourself into when joining an engineering team.

You want to understand their current tech stack, what type of technical debt or basically backlog of technical work you will start working on. 

  1. What are the engineering challenges that the company/team is facing?
  2. What is the most costly technical decision made early on that the company is living with now?
  3. What is the most fulfilling/exciting/technically complex project that you’ve worked on here so far?


You want to know what stage their product is at and what iteration they are working on. Moreover, you also want to learn more about the other players in the space. 

This will give you a better idea of what type of work the engineering and product team needs to work on to stay competitive in the market.

  1. Tell me about the main products of your company.
  2. What products are your main competitors?
  3. What are your highest priorities right now? 
    1. For example, new features, new products, solidifying existing code, reducing operations overhead?

Team Dynamics

It’s important to investigate what’s the state of the team. That could mean, the team size, composition, and plans for expansion, etc.

You can also ask questions on how the team works together, handles conflicts, challenges, and whether it’s a collaborative environment where everyone is helping each other succeed. 

  1. What was the greatest challenge for you when adapting to the engineering team?
  2. Where do you see the (team you’re interviewing for) in 2 years?
  3. How does workflow/projects get managed? 


This is a critical topic to have strong mutual expectations. How you will be graded for performance. 

Find out KPIs (key performance indicators) or key metrics that your manager has set up that acts as a success barometer for your role. 

  1. What metrics or goals will my performance be evaluated?
  2. What are the most important things you’d like to see someone accomplish in the first 30, 60, and 90 days on the job?

Work & Culture

You want to understand the office culture and company values of the company you are potentially going to be employed at.

Historically, companies that don’t live out strong values has a cascading top-down effect on employees.

You don’t want to join a company where the culture is toxic (i.e. long hours, unreasonable manager expectations, or high turnover)

  1. How is the work-life balance here?
  2. What are the top 3 good things about the company culture and what are the 3 things you would change?

About Manager

You’ve heard the saying: people don’t leave companies, they leave managers. If you and your boss does not tango well. Both of you will have miserable work experience. Worst. The employee will be in a very vulnerable state.

Therefore, you really need to vet out your manager to see if there is a good fit in terms of their expectations and yours. 

  1. What does success look like for your team/project?
  2. What qualities do you look out for when hiring for this role?
  3. What are the strengths and weaknesses of the current team? What is being done to improve upon the weaknesses?

Next Steps

You always want to ask next step questions to understand the entire interview process and from that knowledge, better prepare for favorable outcomes.

The best question I’ve always learned to ask from my sales background is: “Do you have any reservations about me concerning this role that I can address now?”

This question is direct and will force the interviewer to come up with a concern that you can directly reinforce on the spot before the next round. We call this closing.

Remember. You won’t have another chance to sell yourself when they walk out the door. Therefore, you want to ensure that you’ve won them over before they leave. 

  1. Do you have any reservations about me being a fit for this role?
  2. What’s the next step in the interview process? And timeline?

Key Takeaways & Action Items

Success Happens Why Opportunity and Preparation Kiss

When you diligently and systematically prepare for an interview, it increases your chance of success.

Please do not wing interviews. They are opportunities for you to close a deal to get you paid.

Take them seriously and with reverence. 

Hopefully, this template I’ve formulated will help you get ahead start on your own preparations. 🙂

Was This Helpful? Please Support 🙂

If you found this content to be helpful, I would love your support by clicking into these Amazon affiliate links in my tools page and go through your normal purchasing habits. 

Or you can join my Patreon community. Your membership [Basic fan support at $1/month] will help support increasing the quality of the content

Doing this will support this blog and my other resources like my YouTube channel so I can continue to produce high quality, useful content on a weekly basis. 

Influencer Inspirations

This blog has been inspired by these creators who specialize in inspiring other potential, prospective upcoming software developers with their content:

Programmer Inspirations

Chris Sean, Whatsdev, Joshua Fluke, Traversy Media, Dylan Israel, Engineered Truth

Entrepreneurial Inspirations

Roberto Blake, Dan Lok, Kevin David.

This blog was made to serve you. Enjoy. 


Please enter your comment!
Please enter your name here