);
diff --git a/contents/behavioral-interview-questions.md b/contents/behavioral-interview-questions.md
index d3d52f80..fa15cf75 100644
--- a/contents/behavioral-interview-questions.md
+++ b/contents/behavioral-interview-questions.md
@@ -15,6 +15,8 @@ keywords:
sidebar_label: Common behavioral questions to practice
---
+import InDocAd from './\_components/InDocAd';
+
In the software engineer interview process, behavioral interviews may seem so much more varied and unstructured as compared to technical interviews. However, in most cases, the interviewer is actually just trying to get to know you better and there's always a set of common questions that need to be asked to achieve that.
## Most commonly asked behavioral questions across top tech companies
diff --git a/contents/behavioral-interview.md b/contents/behavioral-interview.md
index d1a2a064..27f35318 100644
--- a/contents/behavioral-interview.md
+++ b/contents/behavioral-interview.md
@@ -16,6 +16,8 @@ keywords:
sidebar_label: Step-by-step how to prepare
---
+import InDocAd from './\_components/InDocAd';
+
## What are behavioral interviews
Succeeding in an engineering career involves more than just technical skills. People skills become more important as an engineer becomes more senior. Senior engineers should have the ability to lead and influence, resolve conflicts, anticipate risks, plan the roadmap, and more.
@@ -43,6 +45,8 @@ Some examples of common values evaluated are:
- **Project management** - Able to orchestrate multiple work streams to meet timelines and unblock tasks
- **Conflict management** - Able to manage conflict between themselves and or between other parties, by explaining and ensuring no hard feelings remain
+
+
## How to prepare for behavioral interviews
1. Learn the STAR answer format
diff --git a/contents/coding-interview-cheatsheet.md b/contents/coding-interview-cheatsheet.md
index cc720264..324938a8 100644
--- a/contents/coding-interview-cheatsheet.md
+++ b/contents/coding-interview-cheatsheet.md
@@ -15,6 +15,8 @@ keywords:
sidebar_label: Best practices before, during, and after
---
+import InDocAd from './\_components/InDocAd';
+
As coding interviews mature over the years, there are now firmer expectations on how candidates should behave during a coding interview. Some of these practices also help you to exhibit "hire" signals to the interviewer by displaying your ability to communicate well and deal with roadblocks.
Deriving the best practices from top candidates and also based on [how you will be evaluated during a coding interview](./coding-interview-rubrics.md), we have summarized some of the top tips for how to behave during a coding interview in an exhaustive checklist - including top mistakes to avoid.
@@ -68,6 +70,8 @@ You should read and familiarize with this guide even before you start practicing
- ✅ Learn about whiteboard space management.
> Leave space between lines of code in case you need to insert lines between existing code.
+
@@ -122,6 +126,8 @@ This discussion can range from a few minutes to up to 5-10 minutes depending on
- ❌ Do not ignore any piece of information given.
- ❌ Do not appear unsure about your approach or analysis.
+
+
### 4. Code out your solution while talking through it
- ✅ Only start coding after you have explained your approach and the interviewer has given you the green light.
@@ -171,6 +177,8 @@ Once you are done coding, do not announce that you are done. Interviewers expect
- ✅ Thank the interviewer
- ❌ Do not end the interview without asking any questions.
+
+
## What to do _after_ your coding interview
diff --git a/contents/coding-interview-prep.md b/contents/coding-interview-prep.md
index 3e427848..822677bb 100644
--- a/contents/coding-interview-prep.md
+++ b/contents/coding-interview-prep.md
@@ -22,6 +22,8 @@ _The ultimate guide on how to efficiently prepare for your software engineering
If you have decided to embark on the arduous process of preparing for your coding interviews and you don't know how to maximize your time, this is the only guide you need to go from zero to hero on your coding test.
+import InDocAd from './\_components/InDocAd';
+
## What is a Software Engineering coding interview?
Coding interviews are a form of technical interviews used to access a potential software engineer candidate's competencies through presenting them with programming problems. Typically, coding interviews have a focus on data structures and algorithms, while other technical rounds may encompass [system design](./system-design.md) (especially for middle to senior level candidates).
@@ -39,6 +41,8 @@ I have collated evaluation criteria across top tech companies and generalized th
Read more about [how you should behave in a coding interview to display hire signals](./coding-interview-cheatsheet.md).
+
+
## How to best prepare for a coding interview?
LeetCode by itself is actually not enough to prepare you well for your coding interviews. Diving straight into LeetCode and thinking you can complete all of the thousands of questions is a bad use of your time and will never prepare you as well as a structured approach.
@@ -116,8 +120,6 @@ Using this guide to accompany practice ensures that you cultivate good habits an
These are actually the notes I personally collated for my own coding interview preparation. I have organized them into 1-pagers of the best study resources, best LeetCode questions to practice, and must-remembers (tips, corner cases) for every data structure and algorithm. They ensure that you internalize the most important concepts and get the most out of your preparation.
---
-
### 5. Prepare a good self introduction and final questions {#prepare-self-introduction}
Self introductions and final questions to ask are almost always required at the start and end of any software engineering interview. As such, you should always spend some time to craft an excellent self introduction and set of final questions to ask. When done well, these can leave a good impression with the interviewer that can turn things to your favor.
diff --git a/contents/coding-interview-rubrics.md b/contents/coding-interview-rubrics.md
index a4ad20a1..5c2f4ae0 100644
--- a/contents/coding-interview-rubrics.md
+++ b/contents/coding-interview-rubrics.md
@@ -13,6 +13,8 @@ keywords:
sidebar_label: Coding interview rubrics
---
+import InDocAd from './\_components/InDocAd';
+
Ever wondered how coding interviews are evaluated at top tech companies like Google, Amazon, Apple and Netflix?
Across top tech companies, coding interview evaluation criteria actually does not differ to a great extent. While the exact terms used in the rubric could be different, the dimensions evaluated are roughly similar.
@@ -44,6 +46,8 @@ Regardless of the method used, the scoring bands are generally:
Some companies may have a middle band for indecision when the interviewer feels that the candidate requires more assessment.
+
+
## How does your score impact the result?
Regardless of the scoring methodology, the final score is based on the overall performance across evaluated criteria (not purely through a certain mathematical cut-off).
@@ -100,6 +104,8 @@ Advanced problem solving signals:
| Leaning no hire | Showed only some basic problem solving signals, failing to achieve the rest. |
| Strong no hire | Unable to solve the problem or did it without much explanation of their thought process. Approach was disorganized and incorrect. |
+
+
### 3. Technical competency
Basic technical competency signals:
diff --git a/contents/coding-interview-study-plan.md b/contents/coding-interview-study-plan.md
index 71f6c2ec..f4411ce9 100644
--- a/contents/coding-interview-study-plan.md
+++ b/contents/coding-interview-study-plan.md
@@ -13,6 +13,7 @@ keywords:
sidebar_label: Study and practice plan
---
+import InDocAd from './\_components/InDocAd';
import QuestionList from './\_components/QuestionList';
One of the most important questions to answer at the start of your coding interview preparation is: What study topics and practice questions should you do to most efficiently prepare for your coding interviews?
@@ -41,6 +42,8 @@ Regardless of how long you have, if you are unfamiliar with core data structures
My personal recommendation would be the **Breadth-first preparation** or **Depth-first-then-breadth preparation**. It's important to have some form of breadth-level studying / practicing in your schedule so that you don't forget about the earlier topics as you move on to later topics.
+
+
## The 3 month study plan - with recommended study resources and practice question links
In each study plan, you will find a list of coding interview topics with resources and practice questions that you should work through **in order of priority** every week.
@@ -93,6 +96,8 @@ Don't forget to apply behaviors from [coding interview best practices](./coding-
| [Math](./algorithms/math.md) | Low | 1 hour |
| [Geometry](./algorithms/geometry.md) | Low | 1 hour |
+
+
### Week 5 - 12: In-depth practice
Here, I listed 75 questions that you should do to be fully prepared for your coding interviews. This list of questions are generated from the [**Grind 75 tool**](https://www.techinterviewhandbook.org/grind75/) (built by me), which generates recommended study plans for coding interviews based on the time you have left. More options like filtering by difficulty, topics, alternative grouping of questions can be found there.
diff --git a/contents/coding-interview-techniques.md b/contents/coding-interview-techniques.md
index f2a9d8af..11502599 100644
--- a/contents/coding-interview-techniques.md
+++ b/contents/coding-interview-techniques.md
@@ -15,6 +15,8 @@ keywords:
sidebar_label: Techniques to solve questions
---
+import InDocAd from './\_components/InDocAd';
+
The biggest fear most candidates will have during a coding interview is: what if I get stuck on the question and don't know how to do it? Fortunately, there are structured ways to approach coding interview questions that will increase your chances of solving them. From how to find a solution or approach, to optimizing time and space complexity, here are some of the top tips and best practices that will help you solve coding interview questions.
## How to find solutions to coding interview problems
@@ -47,6 +49,8 @@ How do you [validate if a tree is a valid Binary Search Tree](https://leetcode.c
Coming up with more examples is something useful you can do regardless of whether you are stuck or not. It helps you to reinforce your understanding of the question, prevents you from prematurely jumping into coding, helps you to identify a pattern which can be generalized to any input, which is the solution! Lastly, the multiple examples can be used as test cases at the end when verifying your solution.
+
+
### 4. Break the question down into smaller independent parts
If the problem is large, start with a high-level function and break it down into smaller constituting functions, solving each one separately. This prevents you from getting overwhelmed with the details of doing everything at once and keeps your thinking structured.
@@ -98,6 +102,8 @@ These are the data structures to keep in mind and try, in order of frequency the
In future we will add tips on how to better identify the most relevant data structures and routines based on the problem.
+
+
## How to optimize your approach or solution
After you've come up with an initial solution to the coding interview problem, your interviewer would most likely prompt you to optimize the solution by asking "Can we do better". The following techniques help you further optimize the time and space complexity of your solution:
@@ -239,6 +245,8 @@ def contains_string(search_term, strings):
This is considered a micro-optimization and most of the time, `strings` won't be empty, but I'm using it to illustrate the example where you don't have to do certain computations if they aren't needed. This also applies to initialization of objects that you will need in your code (usually hash tables). If the input is empty, there's no need to initialize any variables!
+
+
### How to optimize space complexity
Most of the time, time complexity is more important than space complexity. But when you have already reached the optimal time complexity, the interviewer might ask you to optimize the space your solution is using (if it is using extra space). Here are some techniques you can use to improve the space complexity of your code.
diff --git a/contents/final-questions.md b/contents/final-questions.md
index b53c6948..d6eaa524 100644
--- a/contents/final-questions.md
+++ b/contents/final-questions.md
@@ -12,6 +12,8 @@ keywords:
sidebar_label: Preparing final questions to ask
---
+import InDocAd from './\_components/InDocAd';
+
Something you can always count on to happen at the end of your Software Engineer interview - both technical and non-technical rounds - is for the interviewer to ask you if you "have any final questions?".
This question actually isn't a real question at all - candidates are generally expected to ask questions. As an interviewer myself, candidates who don't have any questions might come off as less interested in the role.
@@ -38,6 +40,8 @@ Here, I present questions to ask at the end of your software engineer interviews
- What resources does the company have for new hires to study its product and processes? Are there specifications, requirements, documentation?
- What would I work on if I joined this team and who would I work most closely with?
+
+
## Best questions to ask for knowing more culture and welfare
- How is individual performance measured?
diff --git a/contents/programming-languages-for-coding-interviews.md b/contents/programming-languages-for-coding-interviews.md
index eb7268b5..ac3e91ab 100644
--- a/contents/programming-languages-for-coding-interviews.md
+++ b/contents/programming-languages-for-coding-interviews.md
@@ -14,6 +14,8 @@ keywords:
sidebar_label: Picking a programming language
---
+import InDocAd from './\_components/InDocAd';
+
Does the programming language you use for coding interviews matter? The answer is yes.
Most companies let you code in any language you want - the only exception I know being Google, where they only allow candidates to pick from Java, C++, JavaScript or Python for their algorithmic coding interviews.
@@ -41,6 +43,8 @@ Java is a decent choice too but having to constantly declare types in your code
- Avoid: Haskell, Erlang, Perl, C, Matlab
- You must be mad: Brainfuck, Assembly
+
+
## 2. Your familiarity with the language
Most of the time, it is recommended that you use a language that you are extremely familiar with rather than picking up a new language just for using in interviews.
diff --git a/contents/resume.md b/contents/resume.md
index a0cab6e7..d0d3f59b 100644
--- a/contents/resume.md
+++ b/contents/resume.md
@@ -15,6 +15,8 @@ keywords:
sidebar_label: Writing your software engineer resume
---
+import InDocAd from './\_components/InDocAd';
+
Not sure why you're still not getting shortlisted at some or all of the top tech companies? Your software engineer resume could be the issue.
Having read tons of software engineering resumes as a FAANG interviewer, even some of the most qualified candidates I know fail to get shortlisted due to bad resumes. The mistake most people make is to immediately assume that they weren't qualified enough - but that could be far from the truth.
@@ -87,6 +89,8 @@ Never add symbols to your headers to avoid ATS readability issues.
:::
+
+
## How to write good Software Engineer resume content
As software engineering is inherently different from other careers in terms of its required skills and experiences, the content expectations for a software engineer resume is also unique. Each of the following paragraphs will cover the content usually expected for software engineers within each resume section:
@@ -220,6 +224,8 @@ Example
> 2016 | Best All-Round Product out of 50 teams | Facebook Hackathon
+
+
## Optimize your resume with keywords
must-haves to optimize your content:
@@ -273,6 +279,8 @@ While optimizing for every application is ideal, you can generalize your resume
:::
+
+
## Free tools to review your resume
I recommend using these free tools to optimize your resume:
diff --git a/contents/self-introduction.md b/contents/self-introduction.md
index e5843619..5cc64efe 100644
--- a/contents/self-introduction.md
+++ b/contents/self-introduction.md
@@ -60,6 +60,8 @@ After coming up with your self introduction, keep it somewhere where you can ref
Having an elevator pitch on hand is a great way to create a network and chance upon new job opportunities. There will often be times when you can't prepare for an interview or meeting and it is incredibly handy to have a practiced pitch.
+
+
## Good examples of software engineer self introductions
### Example 1: Front End Engineer at Meta