From c160df7abed8103c81b471f3b00922abbe927698 Mon Sep 17 00:00:00 2001 From: Yangshun Date: Fri, 18 Mar 2022 08:41:37 +0800 Subject: [PATCH] website: embed partner placements within docs --- contents/_components/InDocAd.js | 10 ++++++++++ contents/algorithms/introduction.md | 4 ++++ contents/behavioral-questions.md | 6 ++++++ contents/best-practice-questions.md | 6 ++++++ contents/choosing-between-companies.md | 6 ++++++ contents/during-coding-interview.md | 4 ++++ contents/interview-formats-top-companies.md | 4 ++++ contents/interview-formats.md | 4 ++++ contents/landscape.md | 4 ++++ contents/negotiation-rules.md | 6 ++++++ contents/questions-to-ask.md | 6 ++++++ contents/resume/write-effective-content.md | 4 ++++ contents/self-introduction.md | 4 ++++ contents/understanding-compensation.md | 6 ++++++ website/src/components/SidebarAd/index.js | 12 ++++++------ 15 files changed, 80 insertions(+), 6 deletions(-) create mode 100644 contents/_components/InDocAd.js diff --git a/contents/_components/InDocAd.js b/contents/_components/InDocAd.js new file mode 100644 index 00000000..30d1c3fe --- /dev/null +++ b/contents/_components/InDocAd.js @@ -0,0 +1,10 @@ +import React from 'react'; +import SidebarAd from '@site/src/components/SidebarAd'; + +export default function InDocAd() { + return ( +
+ +
+ ); +} diff --git a/contents/algorithms/introduction.md b/contents/algorithms/introduction.md index b76a6957..2aec92bf 100644 --- a/contents/algorithms/introduction.md +++ b/contents/algorithms/introduction.md @@ -6,6 +6,8 @@ sidebar_label: Introduction slug: introduction --- +import InDocAd from '../\_components/InDocAd'; + This section dives deep into practical tips for specific topics of algorithms and data structures which appear frequently in coding questions. Many algorithm questions involve techniques that can be applied to questions of similar nature. The more techniques you have in your arsenal, the higher the chances of passing the interview. They may lead you to discover corner cases you might have missed out or even lead you towards the optimal approach! For each topic, study links are recommended to help you master the topic. There is a list of recommended common questions to practice which in my opinion is highly valuable for mastering the core concepts for the topic. @@ -47,6 +49,8 @@ Hashmaps are probably the most commonly used data structure for algorithm questi If you are cutting corners in your code, state that out loud to your interviewer and say what you would do in a non-interview setting (no time constraints). E.g., I would write a regex to parse this string rather than using `split()` which may not cover all cases. + + ## Recommended courses import AlgorithmCourses from '../\_courses/AlgorithmCourses.md' diff --git a/contents/behavioral-questions.md b/contents/behavioral-questions.md index 209512a0..edb2d6ac 100644 --- a/contents/behavioral-questions.md +++ b/contents/behavioral-questions.md @@ -4,6 +4,8 @@ title: Behavioral interview common questions sidebar_label: Common questions --- +import InDocAd from './\_components/InDocAd'; + Here's a list of common behavioral questions to prepare for. If you prepare well for the general questions and apply the STAR format along with demonstrating qualities, you will be fine. ## General @@ -102,6 +104,8 @@ Source: [Glassdoor](https://www.glassdoor.sg/Interview/ByteDance-Interview-Quest Source: [Glassdoor](https://www.glassdoor.com/Interview/Dropbox-Interview-Questions-E415350.htm) + + ## Hired - Tell me about yourself. @@ -144,6 +148,8 @@ Source: [Glassdoor](https://www.glassdoor.com/Interview/Lyft-Interview-Questions Source: [Glassdoor](https://www.glassdoor.com/Interview/Palantir-Technologies-Interview-Questions-E236375.htm) + + ## Slack - Tell me something about your internship. diff --git a/contents/best-practice-questions.md b/contents/best-practice-questions.md index cf16270c..b36773ee 100644 --- a/contents/best-practice-questions.md +++ b/contents/best-practice-questions.md @@ -8,6 +8,8 @@ keywords: [algorithm, coding, interview, questions, leetcode, blind 75] import AlgorithmCourses from './\_courses/AlgorithmCourses.md' +import InDocAd from './\_components/InDocAd'; + Best practice questions by the author of Blind 75 | Tech Interview Handbook @@ -73,6 +75,8 @@ The focus of week 2 is on linked lists, strings and matrix-based questions. The | Pacific Atlantic Water Flow | Medium | [Link](https://leetcode.com/problems/pacific-atlantic-water-flow/) | | Minimum Window Substring | Hard | [Link](https://leetcode.com/problems/minimum-window-substring/) | + + ## Week 3 - Non-linear data structures The focus of week 3 is on non-linear data structures like trees, graphs and heaps. You should be familiar with the various tree traversal (in-order, pre-order, post-order) algorithms and graph traversal algorithms such as breadth-first search and depth-first search. In my experience, using more advanced graph algorithms (Dijkstra's and Floyd-Warshall) is quite rare and usually not necessary. @@ -125,6 +129,8 @@ Week 4 builds up on knowledge from previous weeks but questions are of increased | Number of Connected Components in an Undirected Graph | Medium | [Link](https://leetcode.com/problems/number-of-connected-components-in-an-undirected-graph/) (Premium) | | Alien Dictionary | Hard | [Link](https://leetcode.com/problems/alien-dictionary/) (Premium) | + + ## Week 5 - Dynamic programming Week 5 focuses on Dynamic Programming (DP) questions. Personally as an interviewer, I'm not a fan of DP questions as they are not really applicable to practical scenarios and frankly if I were made to do the tough DP questions during my interviews I'd not have gotten the job. However, companies like Google still ask DP questions and if joining Google is your dream, DP is unavoidable. diff --git a/contents/choosing-between-companies.md b/contents/choosing-between-companies.md index 27c4121b..e6a884cb 100644 --- a/contents/choosing-between-companies.md +++ b/contents/choosing-between-companies.md @@ -3,6 +3,8 @@ id: choosing-between-companies title: Choosing between companies --- +import InDocAd from './\_components/InDocAd'; + If you have passed the interviews and received multiple offers, congratulations on the feat! Now you are faced with yet another problem (albeit a good one!) of choosing between companies. Here we will provide some insights into the factors you should be considering when deciding on the company to join. Every individual is different and certain factors matter more/less to others, so only you can decide what is best for you. Do your due diligence by researching on the companies before deciding! @@ -39,6 +41,8 @@ Do find out what products and teams your intended location works on so that you If you are awarded stocks, the company's prospects will affect your compensation! Is the company poised to be successful in the coming years or are there factors hindering the company's progress? + + ## Career growth How fast does the company promote its employees and does the company provide opportunities for its employees to grow? In smaller companies, you will get to wear multiple hats and build many products from 0 to 1. It's great for people who like to grow their product building skills and launch products quickly. However, technical growth might be limited due to the company's focus on product work and less on building infrastructure, which is usually only needed at scale. There's little need for a Principal Engineer in a small startup of 10 people where everyone is scrambling to build products. Career growth might be limited by the size and scope of the company and its product offerings. @@ -76,6 +80,8 @@ It's no surprise that the FAANG companies hit all 12 points. Read more about it Which company's culture resonates with you the most? + + ## Work-life balance While the common practice is for employees to work 40 hours a week and 8 hours a day, some places are infamous for being more stressful and asks more time from their employees. Some Chinese companies famously [require employees to work 6 days a week](https://www.reuters.com/world/china/chinese-tech-workers-disclose-working-hours-criticism-996-2021-10-14/). Most tech employees do not get paid when they work overtime, so sometimes a more accurate way of calculating your salary is dollars per hour instead of the raw annual total compensations diff --git a/contents/during-coding-interview.md b/contents/during-coding-interview.md index 26d6d882..f50bf938 100644 --- a/contents/during-coding-interview.md +++ b/contents/during-coding-interview.md @@ -4,6 +4,8 @@ title: During the coding interview description: The coding interview can be divided into stages, follow these recommended steps for each stage to ace the coding interview --- +import InDocAd from './\_components/InDocAd'; + What to do during the coding interview | Tech Interview Handbook @@ -46,6 +48,8 @@ Start with a brute force approach, communicate it to the interviewer, explain th Only start coding after you and your interviewer have agreed on an approach and they have given you the green light. + + ## What to do when stuck Getting stuck during coding interviews is extremely common. But do not worry, that is part of the process and is a test of your problem solving abilities. Here are some tips to try out when you are stuck: diff --git a/contents/interview-formats-top-companies.md b/contents/interview-formats-top-companies.md index 11587d4d..2d22bd33 100644 --- a/contents/interview-formats-top-companies.md +++ b/contents/interview-formats-top-companies.md @@ -5,6 +5,8 @@ description: Interview formats of the top tech companies. Know what to expect an sidebar_label: Top companies --- +import InDocAd from './\_components/InDocAd'; + :::info Due to COVID travel restrictions, many companies hold interviews remotely even for the onsite rounds, so the instructions might differ. @@ -77,6 +79,8 @@ Are there companies you would like to know more about? Email us at [contact{at}t - In rare cases, candidates may even be allowed to skip the phone interview round and advanced to onsite directly - For non-fresh grads, you only receive an offer if you are successfully matched with a team + + ## Indeed - Recruiter phone screen diff --git a/contents/interview-formats.md b/contents/interview-formats.md index 9b916faa..017f3731 100644 --- a/contents/interview-formats.md +++ b/contents/interview-formats.md @@ -5,6 +5,8 @@ description: Common interview formats of tech companies and what they entail sidebar_label: Overview --- +import InDocAd from './\_components/InDocAd'; + Interviews are a multi-stage process and each stage can consist of vastly different formats. ## Various formats @@ -34,6 +36,8 @@ Examples - Build a kanban app - Build a snake game + + ### Phone interview Phone interviews are the most common format and every candidate will face this at least once while interviewing. You will be asked to speak with an interviewer either over a phone call or VoIP (BlueJeans/Skype/Google Hangout). A question will be given to you and you will work on that question using an online collaborative editor (CoderPad/CodePen/Google Docs). diff --git a/contents/landscape.md b/contents/landscape.md index 1f6d36b7..61c8555d 100644 --- a/contents/landscape.md +++ b/contents/landscape.md @@ -3,6 +3,8 @@ id: landscape title: Landscape --- +import InDocAd from './\_components/InDocAd'; + import InternshipSalariesURL from '@site/static/img/internship-salaries.jpg'; Most of the content covered here will be specific to the Bay Area. Landscape differences due to geographical location are mentioned briefly [below](#geographical-location). @@ -25,6 +27,8 @@ Technology industry is an extremely fast-moving one. Many technologies used toda A software engineering job is perhaps the most flexible job that exists in terms of hours, location and environment. Physical location is usually not an issue and there are many tech companies that are fully remote. There's no formal attire to be worn and working hours are generally flexible. Your co-workers would stare at you weirdly if you came to work wearing a shirt and tie. + + ## Internships vs full-time If you dream of working at a top tech company one day, getting hired via an intern conversion is by far the easiest way to achieve that. Internship interviews are extremely short (usually just 2 rounds whereas interviews for full-time roles are usually 4-5 rounds). Internships allow you to work at a company over a short period of time (3 months or so) and helps in getting a first-hand understanding of the company and engineering culture. Companies also tend to give higher return job offers to high performing interns as they have proven to be effective at the job and can work with existing employees; hence hiring them is considered to be relatively low-risk. diff --git a/contents/negotiation-rules.md b/contents/negotiation-rules.md index 445ec7e7..d7772ec2 100644 --- a/contents/negotiation-rules.md +++ b/contents/negotiation-rules.md @@ -16,6 +16,8 @@ keywords: ] --- +import InDocAd from './\_components/InDocAd'; + Key points extracted from "Ten Rules for Negotiating a Job Offer" [Part 1](http://haseebq.com/my-ten-rules-for-negotiating-a-job-offer/) and [Part 2](https://haseebq.com/how-not-to-bomb-your-offer-negotiation/) by Haseeb Qureshi. ## Get everything in writing @@ -46,6 +48,8 @@ Even if you don't particularly care what your friends/family/husband/mother thin It's much harder to pressure someone if they're not the final decision-maker. So take advantage of that. + + ## Have alternatives If you're already in the pipeline with other companies (which you should be if you're doing it right), you should proactively reach out and let them know that you've just received an offer. Try to build a sense of urgency. Regardless of whether you know the expiration date, all offers expire at some point, so take advantage of that. @@ -80,6 +84,8 @@ The more unobjectionable and sympathetic your reason, the better. If it's medica Just go with it, state a reason for everything, and you'll find recruiters more willing to become your advocate. + + ## Be motivated by more than just money You should be motivated by money too of course, but it should be one among many dimensions you're optimizing for. How much training you get, what your first project will be, which team you join, or even who your mentor will beā€”these are all things you can and should negotiate. diff --git a/contents/questions-to-ask.md b/contents/questions-to-ask.md index ffacbc28..76d65b1a 100644 --- a/contents/questions-to-ask.md +++ b/contents/questions-to-ask.md @@ -3,6 +3,8 @@ id: questions-to-ask title: Questions to ask --- +import InDocAd from './\_components/InDocAd'; + Here are some good questions to ask at the end of the interview, extracted from various sources. The ones in **bold** are the ones that tend to make the interviewer go "That's a good question" and pause and think for a bit. ## General @@ -55,6 +57,8 @@ These questions are suitable for any technical role. - There's "C++" (or Python, Swift or any other tech) in the job description. How will you estimate my proficiency in this tech in 3 months? - How do you think my expertise would be relevant to this team? What unique value can I add? + + ## Product - Tell me about the main products of your company. @@ -94,6 +98,8 @@ These questions are suitable for asking Engineering Managers, especially useful - What opportunities for growth will your team provide? - What would I work on if I joined this team and who would I work most closely with? + + ## Leadership These questions are intended for senior level management, such as CEO, CTO, VPs. Candidates who interview with startups usually get to speak with senior level management. diff --git a/contents/resume/write-effective-content.md b/contents/resume/write-effective-content.md index 9b0d31ec..e15b0c94 100644 --- a/contents/resume/write-effective-content.md +++ b/contents/resume/write-effective-content.md @@ -18,6 +18,8 @@ keywords: toc_max_heading_level: 2 --- +import InDocAd from '../\_components/InDocAd'; + Next, fill up your template! It is daunting to start on a fresh slate, so I recommend you start by making a laundry list of bullet points under each section, then optimizing it accordingly. This prevents excessive attention placed on premature optimization. @@ -101,6 +103,8 @@ Structure in the following manner: - Frameworks - Databases + + ## 4. Work experience List your work experience in a familiar format and reverse chronological order. Every job listed should have: diff --git a/contents/self-introduction.md b/contents/self-introduction.md index e5530b84..4dc61921 100644 --- a/contents/self-introduction.md +++ b/contents/self-introduction.md @@ -10,6 +10,8 @@ keywords: [interview, self introduction, impression, best] +import InDocAd from './\_components/InDocAd'; + Interviewers want to work with candidates they like. Leave a good/deep impression and it will increase your chances of success. Most of us are not strangers to self introductions as we meet new people now and then and have to introduce ourselves every once in a while. However, self introductions in interviews are slightly different from real life - you need to tweak it to your advantage - tailor the self introduction to the role and company you are applying for! Your self introduction evolves as you grow and are at a different stage of your career. When being asked to introduce yourself, you can rephrase the question into: @@ -64,6 +66,8 @@ Prepare a self introduction that follows the following outline (inspired by "Cra 1. Some sentences about your professional experience after school/university. Where did you work? What projects did you deal with? What were the typical challenges and tasks? Which technologies did you use? 1. Finish with a statement saying why you are seeking a new job opportunity and why you are interested in the role you applied for. + + ## Examples ### Example 1: Front End Engineer at Meta diff --git a/contents/understanding-compensation.md b/contents/understanding-compensation.md index c4648733..ab06af6e 100644 --- a/contents/understanding-compensation.md +++ b/contents/understanding-compensation.md @@ -3,6 +3,8 @@ id: understanding-compensation title: Understanding compensation --- +import InDocAd from './\_components/InDocAd'; + Compensation is one of the largest factors when it comes to deciding between job offers. This section gives you a breakdown of the common components of compensation in the tech industry. In most companies, your compensation will consist of base salary, a performance bonus and equity/stocks. For compensation data, check out [Levels.fyi](https://www.levels.fyi?ref=TechInterviewHandbook&utm_source=techinterviewhandbook&utm_medium=referral&utm_content=website_negotiation). @@ -39,6 +41,8 @@ Alice is an Engineering Manager with 10 years of professional experience. Her ba Hence the amount of bonus you receive can be highly variable and senior employees get a higher proportion of their total compensation from bonuses. + + ## Equity/stocks Equity is what differentiates a tech job from a non-tech one. Equity means a share of the company; this signifies ownership and motivates employees to work in the best interests of the company. They can be a significant portion of one's compensation, sometimes even more than the base salary, especially for senior employees. @@ -67,6 +71,8 @@ This is a one-time lump sum that is paid to you when you join a company. This am There can be conditions attached to signing bonuses, such as having to return a pro-rated amount if an employee leaves before the one-year mark. Make sure you are aware of them before you sign the offer. + + ## Misc bonuses/perks While these perks are not exactly cash, they can help you save money which is almost equivalent to getting compensated more. Do find out more about these from your recruiters if you get the chance. diff --git a/website/src/components/SidebarAd/index.js b/website/src/components/SidebarAd/index.js index ae23e4ae..c5924c5f 100644 --- a/website/src/components/SidebarAd/index.js +++ b/website/src/components/SidebarAd/index.js @@ -57,7 +57,7 @@ function AlgoMonster({className, position}) { Stop grinding. Study with a plan Developed by Google engineers, AlgoMonster is the fastest way to - get a software engineering job. Join today for a 70% discount!! + get a software engineering job. Join today for a 70% discount!

); @@ -97,9 +97,9 @@ function EducativeCoding({className, position}) { }}>

Get the job at FAANG - "Grokking the Coding Interview: Patterns for Coding Questions" by - Educative is the best course for improving your algorithms interview - game. Join today for a 10% discount! + Grokking the Coding Interview teaches you techniques and question + patterns to be good at coding interviews.{' '} + Get your 10% discount now!

); @@ -118,8 +118,8 @@ function EducativeSystemDesign({className, position}) { }}>

Get the job at FAANG - "Grokking the System Design Interview" by Educative is a highly - recommended course for improving your system design interview game.{' '} + Grokking the System Design Interview is a highly recommended + course to get better at system design interviews.{' '} Join today for a 10% discount!