Skip to content

Instantly share code, notes, and snippets.

@arelangi
Created November 4, 2021 19:23
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save arelangi/2b04bb692cc650f8773a09c786027a88 to your computer and use it in GitHub Desktop.
Save arelangi/2b04bb692cc650f8773a09c786027a88 to your computer and use it in GitHub Desktop.

Here are the steps I took and the tools I used to prepare for the interviews.

  1. Market Research
  2. Resume
  3. Interview Prep
  4. Recruiter Calls
  5. Interview
  6. Offer negotiation

Market Research

First step was to understand how much pay companies are offering and how the pay is structured. I relied heavily on LEVELS.FYI for this. I'd recommend spending at least 2 hours looking at how much different companies are paying and what their leveling and career progression is like.

Depending on the years of experience(YOE) and interview performance, total compensation(TC) is upwards of 300k. This is separated into base pay(hard cash) + bonus + stocks. Bonus range is less in tech companies compared to financial organization but it is more than made up by the stock component. I'm not including benefits as they are comparable all across. Health insurance, 401k matches, ASPP are all within the same range.Given the remote working situation, catered in office lunches and other minor perks like that should not be taken into account. Stock component is not as straightforward because of the vesting schedule, this reading on it should bring you up to speed.

One thing to keep in mind regarding stocks is, a typical company does 4 year vesting. Check with the recruiter if the job is eligible for stock refreshes, only senior roles are. What it means is you will not be awarded any new stocks after the first fours years. For example, your offer letter says 200k in base pay, 50k in yearly bonus, 600k in stock vested over four years. So, your total comp per year would be 400k(200+50+150) for the first four years. For the fifth year, since there won't be a stock refresh your total comp would only be 250k(200+50). This is not unusual and most companies cannot retain their employess beyond the 4 year mark for this reason.

Also, different companies vest their stock differently. Most of them vest 25% after firt year and the rest every quarter. So, in a way, if you leave after every quarter after the first year, you don't lose any money. But Amazon's vesting schedule is unfriendly. They vest 5%, 10%, 15%, 70% in years 1,2,3 and 4 respectively. So, if you leave the company after 2 years, you lose a big chunk of the money.

Final reading recommendation is the Levels.fyi blog. There's only a few posts in there, but they are all very good to give you a good picture of things. The point is, double and triple check the vesting schedule before you accept the offer.

What is total compensation?

Resume

Resume review is one area you can spend half a day and get good returns on. I used this template from one of the highest rated posts in the jobs subreddit. You can also get your resume reviewed by some paid services that you can find on google.

Interview Prep

This is the most time consuming and hardest part of the process. There are two areas you need to focus your prep on. Algorithms and System Design. One thing to keep in mind is the skils you need for interviewing has no correlation with how good an engineer you are. Also, most companies only care about how well you perform in the coding interview and do not consider your experience or past accomplishments. Leetcode is the best resource for coding interview prep. They have thousands of programming questions ranked easy, medium and hard tagged by the companies that ask them. A good way to prep is to solve 3:5:2 easy, medium, hard questions across different areas. If you google, you will find different strategies for approaching these problems as well. The more problems you practice, the better you get. I find after you've solved 100-120 questions you are in a good enough spot that you've seen enough variety to solve any questions.

As for system design, it comes with experience and certifications. While certifications help, reading fundamental research papers about CAP theorem, Hadoop, Big Query, etc., gives you good foundation. Once you have this knowledge, you can look at the architecture of open source systems and read blogs of other tech companies.

An easy way to bypass this DIY approach is by signing up for a paid course like Interview Camp which gives structure to your preparation. I've personally done this and gotten a lot of value. There are other similar courses you can find upon googling.

Recruiter Calls

Once you feel semi-prepared, you can start applying to companies you don't care about so you can practice. The first call is usually with recruiters. These are the questions I ask in the first call.

  1. Do you sponsor visa?
  2. Can you tell me about the role in detail?
  3. How is the team organized?
  4. What is the interview process?
  5. What is the pay range for the role?

If any of the answers do not meet my criteria, I thank them and tell them it won't work out. Recruiters are iffy about sharing the pay details, so you might have to push them a little bt. If they ask you to specify your current pay or what you are looking for, you can tell them you'll feel comfortable once they share the the pay range for this role. If they give you no choice, tell them your total comp is 1.5x your actual total comp and mention you are looking to switch only if you get 25-40% over that. If everything is aligned then you can work on scheduling the interview. The recruiter will ask at this point, if you are interviewing anywhere else. Do share that info. That way, they can expedite their process as well. You want to be able to have multiple offers in your hand at the same time. It is useful for negotiation.

Interview

Average interviews follow this format.

  1. Coding test
  2. Call with hiring manager/behavioral interview
  3. Power day of 4-5 interviews( coding + system design + behavioral)

The strucutre and types change based on the role, but this is the typical format. For the behavioral interviews, use the STAR method to answer. I used this to write up scenarios and prepare answers ahead of time. Take the time to write each word you'd speak exactly and practice it with a friend or in front of a mirror. The higher up the role, the more weightage your communication has. One weekend of effort on this should be more than adequate.

Your performance of the interview also decides the leveling. The fewer hints you take when solving the problem, the better it is.

Offer negotiation

You can negotiate the offer yourselves or you can hire paid services like Moonchaser to help you in your negotitations. Their pricing is dependent on a percentage of increase you get from the initial offer. The most leverage you during negotiations is with multiple offers at hand, that way you can walk away from the job if they cannot match or exceed what other company is offering.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment