Warning: long post. TL;DR; at the bottom. (*In Blind mobile app, only the first half of contents are shown because the post is too long. The second half has been added in the comments section. There is no issue reading this in desktop browser from teamblind website.) I started prepping for interviews in Jan/2021 about a year ago, and did series of interviews from March/2021 until Sep/2021 for about 7 months, except google which the loop completed in 2022. I initially applied to only a few startups assuming that I will never be able to pass Google/Meta/etc interviews. However, I ended up receiving offers from all the startups that I applied. I started asking myself “Wait… how far and how high can I reach?” I got curious and started applying to other companies and continued moving forward, and ended up getting offers from higher and higher tier companies. —— All positions are software engineer positions. Offers are mix of pre- and post-negotiation numbers. I live in SF bay area. - High COL ✅ Passed onsite and received offers: Offer format: [Company, Title, Base/4 year total equity/bonus - TC] TC calculation: base+equity/RSU only. Did not include sign-bonuses, refreshers, annual cash bonus, etc for fair comparisons. Affirm, Senior(L6) 170k/450k(3 year & 2 year vesting)/0 - $320k Facebook/Meta, Senior(E5)->Staff(E6) (up-leveled(?) after TPS) 240k/1.2M/60k - $540k Square, Senior(L6) 210k/840k/20k - $420k Instacart, Staff(L7) 260k/1.6M/20k - $660k Twilio, Staff (IC4) 200k/560k/0 - $340k LinkedIn, Staff 240k/900k/0 - $465k Brex, Senior, - 450k/0/0 - $450k (I get to choose base/RSU split) goPuff, Senior, 200k/840k/20k - 410k Zoom, Senior, 190k/240k/0k - 250k Compass, Senior-I (down-leveled after onsite), 200k/400k/25k - $300k Reddit, Staff - 270k/470k(3 year vesting)/0k - 426k Series B Startup, Senior 220k/400k/0k - $320k Series B Startup, Senior 180k/240k/10k - $240k Series C Startup, Staff 230k/480k/40k - $350k Series D Startup, Staff 180k/180k/0k - $225k Series D Startup, Senior 240k/560k/10k - $380k Seed Startup, Staff 140k/100k/0k - $165k Google, Senior (L5), ? (Took 4+ months to complete the loop. By the time I passed HC, I had already accepted on offer from the other company. App in hold. No team match done, thus no offer number.) ❌ Failed to pass onsite (and likely reason): Chewy, Staff (Failed Sys design) Bolt, Senior (Subpar interview performance overall) Wish, Senior (Bombed coding rounds) Series B Startup, Senior (Failed Sys design) Cruise, Senior (not sure) ❌Failed to pass technical phone screen (TPS): Uber ❌Rejected at resume screening: (Applied but got reject emails later & didn’t get a chance to talk to a recruiter) Lyft AirBnB Plaid Redfin Chime Salesforce Snap Zillow ❌Ghosted at resume screening: (Applied but never got response back. Probably as same as rejects.) Amazon (Did receive emails from AWS recruiters but never from the specific position that I applied to) Apple Microsoft DataDog Jane Street Twitter Stripe Coinbase Netflix Github DocuSign DoorDash Grab Noom Shift Atlassan Squarespace Snowflake VMWare Turo Disney Vroom Shopify Netflix Ramp Robinhood Walmart Lab Two Sigma Citadel + about 15 other companies Preps - Completed around 160 LeetCode questions. 30 easy, 80 medium, 50 hard. - Solved all coding exercises from Facebook recruiting portal. - Read ‘Designing Data Intensive Application’ book. - Watched system design interview YouTube videos. - Summarized work that I have accomplished, projects that I led. - Prepped behavior questions by going over my past experiences at my workplace. - Prepared a set of questions that I wanted to ask to interviewers, to SWEs, to EMs, to HMs, to Directors and so on. - Visited each company’s website and read through values/culture/LPs/etc prior to each interview. Learnings: - Luck matters in interviews, but I tried to think getting offer as playing a probabilistic game. e.g. I cannot guarantee that “I will pass coding/system design/behavior interviews 100% of the times”, but I can say something like “I can pass coding session 80% of times, system design session 70% of times, and behavior session 90% of times. If I am lucky, I can get an offer”. Having this mindset helped me to stay calm even after I got rejects and I focused on raising that % from low to high. - Startups tend to move fast. Most of the times, process completes within 2-3 weeks. - Startup recruiters do care whether or not you are really interested in those companies. Research little bit and prepare talking points for the screening call, otherwise, you won’t even reach TPS. - I tried working with a few recruiting firms/agencies, which helped me to land a few interviews with startups, but offers coming through them were not competitive compared to reaching out to the companies directly. Bases were often lower than 200k, prob because of 10~15% agency commission/fee, and TC always in the range of 200k-300k. — I am not saying these TCs are bad in absolute $ amount, but those numbers are often lower than what I could have gotten by working with companies directly. Recruiting firms also consume a lot of your time and bother you scheduling phone calls and emails going back and forth, so be aware. - Some company recruiters are really professional and show courtesy regardless of outcomes but some aren’t at all. - The same rule applies for interviewers. I have met a lot of awesome engineers/EMs/Directors but at the same time, there were some arrogant interviewers. Working with interviewers who are showing condescending behaviors can hit you low and demoralize you. If they are arrogant, just play along with them. Once you have an offer in, you have upper hand in choosing companies based on those interview experiences, and drop those companies with poor interview experiences if you would like to. - I was always able to negotiate offers and increase its amount by 20%~60% or so by presenting competing offers and simply saying ‘no’ to the initial offer. e.g. Got additional 40% RSUs, 40k extra base, or 50k sign-on bonus etc. — I personally thought offer negotiation part was the most rewarding and exciting part, because after you pass onsite, you have upper hand and it is now recruiter’s job to retain you, and you can enjoy power play, which I personally love playing it. — Companies often give exploding offers (e.g. offer is only valid for 2 days, 7 days , 14 days), but I learned that those are arbitrary timeframes set to force candidates to accept non-competitive offers. I simply ignored the timeframe and continued with negotiation and set everything in my pace, because I knew recruiters losing candidates who passed full interview loop is their loss, not my loss. This is a risky move and they could potentially rollback their offers (never happened in my case, but your mileage can vary), but because I had multiple offers at my hand often times, I risked it, and drove the pace of the conversation and negotiation and recruiters followed my pace most of the times. Nonetheless, I never dragged on offer more than 2 weeks once I received it to unblock hiring pipeline for HM. - Fintech companies (Brex, Fast checkout, Bolt, etc) all asked questions related to money transactions, involving parsing ISO8601 dates, settlements, etc. System design interviews at these companies involved money most of the times as well. Idempotency design is an important topic throughout the loop. - Startups always say their offer is worth million+ when their valuation eventually reaches $xB. It is difficult to compare one offer to another, but try using equity % (total valuation / (# of options * FMV)) to compare one startup offer to another. I always used face value, instead of forward looking value when I negotiated. Against status quo - Online Assessments/homework — Many people hate online assessments because they take time, but I decided to complete all online assessments because I thought you can only learn from completing them, and it gave me chances to land onsite interviews. Always did OA when I was asked for it and I became Yes man. —— It actually helped me to practice writing practical/pragmatic code. —— At least 4~5 coding rounds and 2 sys design interview rounds were somewhat related to some of the OAs that I had to complete (Trie, custom cache, auto complete, rate limiter, pagination, etc), so I don’t want to say that they are waste of time. OAs indeed helped me to learn and brush up my skills/knowledge. ——— Startups tend to use OA more so than larger companies. —— I probably would have failed a few TPS and/or onsite rounds if I didn’t complete OAs. - Some companies used Karat, and I know many people hate it, but I accepted it and went along with it. — Karat covers wide breadth and depth at fast pace. I personally thought it was o.k. experience. They seem to capture various data points and signals. — I passed my first Karat interview, and difficulty was o.k., so when other companies asked for Karat, I accepted them and eventually passed all Karat interviews. (They do ask different questions but formats are similar). — I always completed 2 coding questions in Karat, and didn’t have time to start 3rd coding question. However, I always talked about possible approaches that I can take for the 3rd coding question and that seemed fine for all companies which used Karat or testing out Karat. Personal Tips - Getting in sync with an interviewer seems to be the most important aspect. Once you and your interviewer are out of sync during the interview (e.g. you talk too fast or you talk too slow, your mic is breaking, etc), they can easily lose focus/interest, and it is difficult for them to follow your code, your system design or your answers in behavior interview session. Make sure you and your interviewer are aligned and are in sync most of the times. — Every 15 min or so, check with interviewer if you are going too fast, too slow, etc. — If you find yourself talking nonstop for more than a minute or so, stop for a second and gauge if the interviewer is following you, nodding, and/or writing notes. If they are yawning and/or just staring at you blankly, they probably lost a track of your words. - Good interviewers with a lot of experience can capture various signals and can guide candidates toward the right direction, if the candidate is heading toward a wrong direction. — If an interviewer suddenly interrupts you and ask a question, take a step back and see if you missed any important points or if you are heading toward a wrong direction. Their question can be just a clarification question, it could be a hint that you are missing something so they are challenging your code/design, or it can be a trick question in rare cases. Try to work with interviewers because I learned that they are often, not always, but often there to help you when you need help and help you succeed. —— The worst thing that you can say when they interrupt you is “Let me finish what I am doing/coding/drawing and I will get back to you.” Instead, take a deep breadth and think if you missed any details and try to see your code/design in different perspective. - However, inexperienced interviewers tend to focus on subset of domain/areas that they are familiar with, or do not have much experience in guiding candidates toward the right direction. Unfortunately, it is candidates’ job to figure out and navigate what interviewer is looking for in this case. — This gap is more visible when interviewers are conducting system design rounds, so make sure you understand what interviewers are looking for earlier in the interview. e.g. They might have zero interest in back of the envelope calculations, capacity estimate, or DB schema for system design interview, or API design which can waste precious interview time. Worse, they might not understand some of the technical topics that you talk about (e.g. storage engines/LSM-Tree/SSTable/B-Tree/Replication strategy/Leader selection/Rate limiting algorithms/tcp/udp/hashing/memory/cpu/bottlenecks/etc) and they won’t capture what you said in the interview as positive points. — They can only see and interpret as much as what they know, just like how you only see as much as what you know. Hopefully, their technical depth is deeper and their breadth is wider than your technical knowledge so that they can capture all the important points that you bring up. In system design interview, make sure you clarify with interviewers what they are interested in diving into. - In a few cases, I passed system design interviews without drawing a single box for a high level diagram (but did write down various design details). As I have said before, it is more about getting in sync with interviewer and discussing important and relevant technical topics in depth as well as in breadth that the interviewer is interested in learning more about, and you summarizing and writing them down in a document. This could be better than you somewhat pointlessly spending precious 5~15 minutes drawing boxes on a drawing board, adjusting individual box sizes, drawing arrows, re-sizing length of arrows, writing words inside those little boxes while you talking intermittently which the end result diagram might not be adding significant values. Not to mention a simple high level diagram could have been summarized and talked through in a minute or two and remaining time could have been spent on more meaningful discussion. — I am not saying that drawing high-level diagrams is bad. I am saying that if you can share your thoughts in a concise manner and navigate through what you are thinking with the interviewer with your words, visual system diagrams become optional items. Obviously, if interviewers ask for high-level diagrams or if you have time, go ahead and draw them. - Recruiters take notes of everything you say over the phone or email, from beginning to the end. They use every piece of information that you mention over the phone and relay that information to the compensation team which will use that data + interview results to generate offers. They can even cross-check you against some of the details that you had talked about in earlier calls if they think you are lying about competing offers or other things. They might ask you about refresher details (even when they already know this) in the other company and cross-check if you are lying or not. Treat recruiter calls as if you are talking to a permanent recording machine. Therefore, be careful about things that you say to the recruiters. You should also try to take notes about everything that you mentioned to each recruiter if you aren’t so sure, and review those details before joining a follow-up call. - Again, the best way to negotiate an offer is to have higher competing offers. If you simply ask for more base/RSU by saying something like “I want more base/RSU because my market value is higher than this because I have xx YOE, my location is yy, etc based on my research.” without any competing offer, recruiters aren’t going to budge much. They may give you extra $5k, $10k but not $50k+ or higher. - Lastly and most importantly, after the interview, if you expect to receive rejects and you do receive rejects, that is actually better than you expecting to receive offers, but receive rejects. — Why? Because the former case means that you can objectively evaluate yourself & you know which part of the interview you did poorly, and there is an opportunity for you to grow and do better next time. However, the latter case implies that you might not be objectively gauging yourself, you don’t know what your weak areas are or what you did poorly on, so you are probably going to make the same mistakes again and again thinking that you just got unlucky and the company rejected you. — Use every reject as a data point to learn areas that you can grow. Being self-critical is difficult, but if you find yourself getting rejects when you expected to receive pass/offers more than once, take a pause and try to figure out those missing puzzle pieces that interviewers are looking for but you don’t currently have. Memorable question - Write spell checker (coding round) Memorable experience - EMs, not SWEs, conducting TPS coding interview for Meta. - Directors conducting TPS coding and onsite sys design interviews for goPuff for Sr.SWE candidates. Most frequently asked coding question - Top-k or its advanced variations Asked system design questions in no particular order. (Not a single duplicate question was asked across all onsite system design interviews) *Most systems designs are focused around a few features, not all. - Design Auction system. - Design search autocomplete system. - Design large scale rate limiter. - Design Netflix. - Design Amazon inventory system. - Design ATM/banking system. - Design twitter/tweets/followers system. - Design Venmo. - Design large scale notification platform. - Design AirBNB platform. - Design Ticketmaster. - Design high velocity bank account platform. - Design top 10 scorers in a large scale mobile game. - Design Expedia. - Design large scale real time chat platform. - Design url shortener with various features. - Design electric bike rental platform. - Design grocery store order processing system. - Design website building platform. - Design gift card system - Design e-commerce platform. - Design large scale devices location tracker. - Variations of “Design APIs for one or two specific features” for smaller system design interviews. Most frequently asked screening questions by recruiters - Why are you leaving your current job? - What made you apply to our company? — (*Affirm asked this question 4 times. At screening call, HM interview, TPS, and in onsite interview loop. Had to answer “Why Affirm?” 4 times.) - What is your expected comp range? Most frequently asked behavior questions. - Tell me about times when you had conflicts with others. - Tell me about times when you had to deal with ambiguity. - Tell me about constructive feedbacks that you have received from peers. FAQ - Did LeetCode help? — Yes - How did you apply? — I used LinkedIn Jobs to search for positions and applied online 95% of the time. — Remaining 5% are —— Worked directly with a few company recruiters who reached out to me on LinkedIn messaging for a few cases. —— Worked with recruiting agencies to apply to a few early-stage startups, though they consumed a lot of my time. They always act as a middleman and you need to go back and forth many times to move onto the next step. They like to act as a gateway/gatekeeper. —— Used referrals for Facebook/Meta only, and the rest were just cold reach out/LinkedIn apply by me. - Did you disclose your current salary to recruiters? — No. Actually, none of the recruiters asked this. - Did you talk about expected salary range that you wanted to get? — No, but I listened when they shared their numbers and expected offer range. - Did you disclose that you are interviewing with other companies? — Yes, but very vaguely with limited info to them. - Did you disclose offer numbers from different companies? — Only after I finished the onsite loop, and only after I receive the first offer number from the company. - Most difficult interview session? — Chewy onsite system design - Interviewer drilled a lot on behaviors/leadership questions in system design interview session. I was given 10 minutes at the end to do system design after answering 8 behavior questions for the first 40 minutes. - Were you asked DP questions? — Yes. From Google onsite, and in few other cases etc. - Companies with the best-interviewing experiences regardless of outcomes? (e.g. Awesome interviewers, reasonable interview questions, good calibration across different sessions) — Square — Brex — Twilio — Fast — Uber (I failed to pass TPS, but the TPS interviewer was top notch) - Companies with the best recruiter experience. — Meta — Twilio — Square — Compass - What types of interview sessions did you have? — Each company had different combinations, but they were all one of the followings. —— Coding interviews (TPS/Onsite - All) —— System design interviews (Onsite - All) —— Behavior/HM interviews (Onsite - All) —— Past project deep dive interview (Onsite - Some) —— Leadership interview or its variation (TPS/Onsite - Most staff loop) —— PM/cross functional interview (Onsite - Few) - Did you expect $400k+ offers? — No. I initially targeted for $300k in a larger company which is already 40%+ increase in TC compared to my current TC. Initial offers that I have been getting from smaller companies were in the range of $200k~$300k, but it went up as I started receiving offers from higher tier companies. - Did you apply to all those companies at once? — No. I initially applied to only a few startups assuming that I will never be able to pass Google/Meta/etc interviews. As I started receiving offers from all the startups that I applied, I started asking myself “Wait… how far and how high can I reach?” —— I got curious and started applying to other companies and continued moving forward. - Did you get all offers at once in the same week? — No. I received offers in span of few months. I had to reject non-competitive/low offers as I move forward, but always had 1~3 offers in hands. - Did you ghost any recruiters/companies? — No, I tried to be as professional as possible and closed the loop without ghosting. Unfortunately, it doesn’t always work the same the other way. I was ghosted by companies and recruiters countless times throughout the process, from the resume screening stage, after finishing OA, as well as in offer negotiation stage in rare cases when recruiters can’t simply match against competing offers. - How did you handle rejects? — Receiving reject emails sank me in despair when they arrived in my email inbox. However, having multiple interview loop pipeline at the same time allowed me to get back on track, forget & move on, and helped me to avoid emotionally getting attached to each company. This helped whenever I was ghosted by recruiters/companies, or when I received reject emails after screening/onsite. —— For that reason, I think interviewing with just one company is the worst thing that you could do. If you pass, that is great! But if you fail, it can be demoralizing, because you were probably emotionally attached to the company. Not to mention, you won’t have competing offers to negotiate TC if you are only completing loop in one company. - How did you find time for interviews? — Using PTOs for full day onsite or splitting onsite interviews across 2 days. — For TPS which I just need one hour, I tried to do it early in the morning or anytime when I didn’t have a meeting scheduled. There were times when I had TPS scheduled from different companies at 9am full 5 days in a given week. — Doing interviews during working hours and doing work after working hours or on weekends. — I probably would never have been able to do these many interviews if it weren’t WFH due to pandemic & companies are doing remote virtual interviews. - Should I start prep interview & jump? — If you haven’t moved in the past 3 years, I think you should give it a shot. I saw many of my friends and colleagues leaving and moving to new companies during pandemic. Attrition in my team and org meant more responsibility and opportunity for me, but there hadn’t been much change in my compensation, and I felt dull & lackluster at the same time. So I decided to give it a shot early last year and move. I am happy with my state right now, but to be honest, I always had felt that I am way behind (in terms of TC, net worth, and role relative to my YOE) compared to other peers. Especially when I saw posts on Blind by others with ridiculous offers/TCs or my colleagues landing a job in Google/Meta, or new grads with 0 YOE earning more than me, it was somewhat depressing. But, you should also know that those feelings are natural things to have if you understand that jealousy & envy are just inherent traits of human nature. You can use them as a good pill that motivates you, or let it be a bad pill and devours you over time. There is a third option which you can simply avoid them by simply not reading those taunting posts. Reading those posts made me jealous most of the times, but it was also addicting at the same time. Often times, those posts only have offer numbers with “Which offer should I choose?”, “Please help me decide”, and not much about rejects/failures or tips. That is why I have decided to add personal learnings/tips/FAQ to this post in addition to offer numbers as well as my rejects and failures hoping that it can encourage and help those of you, who haven’t made jumps because you are too busy/lazy/expecting promo soon/whatever reason, but are capable of doing so with a bit of luck and dedication. Even today, I still struggle to stop comparing my state and position against others and feel somewhat low when I see higher TC or NW by others (e.g. $900k, $1M, $1.5M TCs or those people with $1M+ net worth), so I am trying hard to stop comparing myself against others. This post might not help everyone, but I hope it helps some of you who are wondering and lingering whether or not you should start prepping for interviews to make a great jump in 2022. You can do it. Current TC: $220k New TC: $500k+ YOE: 10 Tl;dr; - Sync & align with interviewers during interviews. - Have multiple interview loops to cope with rejects, and also to negotiate better offers. - Your market value might be much higher than what you are getting right now. #tech #interview #tips
Wow, thanks for compiling this and sharing with the community!
Also, lots of people are going to ask but what’s your prior work exp and YOE? Not sure if I missed that.
It looks like mobile Blind App only shows half of the contents. I added the remaining half content (with my TC, YOE info) to a separate comment. 10 YOE btw.
Crazy in-depth post, thank you for sharing your journey and process!!
Excellent article OP, one question, are you based in the Bay Area?
YOE?
Congratulations.. well deserved.. YOE ?
thank you
This is a real marathon of interviewing...well done!! Which offer did you end up accepting? (seems like it must be Instacart of Meta given $500+).
It looks like mobile Blind app only shows half of contents that I wrote. You can check full contents through computer on teamblind website. I am adding remaining half of the contents here for mobile-only users. --- (Personal Tips cont...) - Recruiters take notes of everything you say over the phone or email, from beginning to the end. They use every piece of information that you mention over the phone and relay that information to compensation team which will use that data + interview results to generate offers. They can even cross-check you against some of the details that you had talked about in earlier calls if they think you are lying about competing offers or other things. They might ask you about refresher details (even when they already know this) in the other company and cross-check if you are lying or not. Treat recruiter calls as if you are talking to a permanent recording machine. Therefore, be careful about things that you say to the recruiters. You should also try to take notes about everything that you mentioned to each recruiter if you aren’t so sure, and review those details before joining a follow-up call. - Again, the best way to negotiate an offer is to have higher competing offers. If you simply ask for more base/RSU by saying something like “I want more base/RSU because my market value is higher than this because I have xx YOE, my location is yy, etc based on my research.” without any competing offer, recruiters aren’t going to budge much. They may give you extra $5k, $10k but not $50k+ or higher. - Lastly and most importantly, after the interview, if you expect to receive rejects and you do receive rejects, that is actually better than you expecting to receive offers, but receive rejects. — Why? Because the former case means that you can objectively evaluate yourself & you know which part of the interview you did poorly, and there is an opportunity for you to grow and do better next time. However, the latter case implies that you might not be objectively gauging yourself, you don’t know what your weak areas are or what you did poorly on, so you are probably going to make the same mistakes again and again thinking that you just got unlucky and the company rejected you. — Use every reject as a data point to learn areas that you can grow. Being self-critical is difficult, but if you find yourself getting rejects when you expected to receive pass/offers more than once, take a pause and try to figure out those missing puzzle pieces that interviewers are looking for but you don’t currently have. Memorable question - Write spell checker (coding round) Memorable experience - EMs, not SWEs, conducting TPS coding interview for Meta. - Directors conducting TPS coding and onsite sys design interviews for goPuff for Sr.SWE candidates. Most frequently asked coding question - Top-k or its advanced variations Asked system design questions in no particular order. (Not a single duplicate question was asked across all onsite system design interviews) *Most systems designs are focused around a few features, not all. - Design Auction system. - Design search autocomplete system. - Design large scale rate limiter. - Design Netflix. - Design Amazon inventory system. - Design ATM/banking system. - Design twitter/tweets/followers system. - Design Venmo. - Design large scale notification platform. - Design AirBNB platform. - Design Ticketmaster. - Design high velocity bank account platform. - Design top 10 scorers in a large scale mobile game. - Design Expedia. - Design large scale real time chat platform. - Design url shortener with various features. - Design electric bike rental platform. - Design grocery store order processing system. - Design website building platform. - Design gift card system - Design e-commerce platform. - Design large scale devices location tracker. - Variations of “Design APIs for one or two specific features” for smaller system design interviews. Most frequently asked screening question by recruiters - Why are you leaving current job? - What made you apply to our company? — (*Affirm asked this question 4 times. At screening call, HM interview, TPS, and in onsite interview loop. Had to answer “Why Affirm?” 4 times.) - What is your expected comp range? Most frequently asked behavior questions. - Tell me about times when you had conflicts with others. - Tell me about times when you had to deal with ambiguity. - Tell me about constructive feedbacks that you have received from peers. FAQ - Did LeetCode help? — Yes - How did you apply? — I used LinkedIn Jobs to search positions and applied online 95% of times. — Remaining 5% are —— Worked directly with a few company recruiters who reached out to me on LinkedIn messaging for few cases. —— Worked with recruiting agencies to apply to a few early stage startups, though they consumed a lot of my time. They always act as a middleman and you need to go back and forth many times to move onto the next step. They like to act as a gateway/gatekeeper. —— Used referrals for Facebook/Meta only, and the rest were just cold reach out/LinkedIn apply by me. - Did you disclose your current salary to recruiters? — No. Actually, none of the recruiters asked this. - Did you talk about expected salary range that you wanted to get? — No, but I listened when they shared their numbers and expected offer range. - Did you disclose that you are interviewing with other companies? — Yes, but very vaguely with limited info to them. - Did you disclose offer numbers from different companies? — Only after I finished the onsite loop, and only after I receive the first offer number from the company. - Most difficult interview session? — Chewy onsite system design - Interviewer drilled a lot on behaviors/leadership questions in system design interview session. I was given 10 minutes at the end to do system design after answering 8 behavior questions for the first 40 minutes. - Were you asked DP questions? — Yes. From Google onsite, and in few other cases etc. - Companies with the best interviewing experiences regardless of outcomes? (e.g. Awesome interviewers, reasonable interview questions, good calibration across different sessions) — Square — Brex — Twilio — Fast — Uber (I failed to pass TPS, but the TPS interviewer was top notch) - Companies with the best recruiter experience. — Meta — Twilio — Square — Compass - What types of interview sessions did you have? — Each company had different combinations, but they were all one of the followings. —— Coding interviews (TPS/Onsite - All) —— System design interviews (Onsite - All) —— Behavior/HM interviews (Onsite - All) —— Past project deep dive interview (Onsite - Some) —— Leadership interview or its variation (TPS/Onsite - Most staff loop) —— PM/cross functional interview (Onsite - Few) - Did you expect $400k+ offers? — No. I initially targeted for $300k in a larger company which is already 40%+ increase in TC compared to my current TC. Initial offers that I have been getting from smaller companies were in the range of $200k~$300k, but it went up as I started receiving offers from higher tier companies. - Did you apply to all those companies at once? — No. I initially applied to only a few startups assuming that I will never be able to pass Google/Meta/etc interviews. As I started receiving offers from all the startups that I applied, I started asking myself “Wait… how far and how high can I reach?” —— I got curious and started applying to other companies and continued moving forward. - Did you get all offers at once in the same week? — No. I received offers in span of few months. I had to reject non-competitive/low offers as I move forward, but always had 1~3 offers in hands. - Did you ghost any recruiters/companies? — No, I tried to be as professional as possible and closed the loop without ghosting. Unfortunately, it doesn’t always work the same the other way. I was ghosted by companies and recruiters countless times throughout the process, from the resume screening stage, after finishing OA, as well as in offer negotiation stage in rare cases when recruiters can’t simply match against competing offers. - How did you handle rejects? — Receiving reject emails sank me in despair when they arrived in my email inbox. However, having multiple interview loop pipeline at the same time allowed me to get back on track, forget & move on, and helped me to avoid emotionally getting attached to each company. This helped whenever I was ghosted by recruiters/companies, or when I received reject emails after screening/onsite. —— For that reason, I think interviewing with just one company is the worst thing that you could do. If you pass, that is great! But if you fail, it can be demoralizing, because you were probably emotionally attached to the company. Not to mention, you won’t have competing offers to negotiate TC if you are only completing loop in one company. - How did you find time for interviews? — Using PTOs for full day onsite or splitting onsite interviews across 2 days. — For TPS which I just need one hour, I tried to do it early in the morning or anytime when I didn’t have meeting scheduled. There were times which I had TPS scheduled from different companies at 9am full 5 days in given week. — Doing interviews during working hours and doing work after working hours or on weekends. — I probably would never have been able to do these many interviews if it weren’t WFH due to pandemic & companies are doing remote virtual interviews. - Should I start prep interview & jump? — If you haven’t moved in the past 3 years, I think you should give it a shot. I saw many of my friends and colleagues leaving and moving to new company during pandemic. Attrition in my team and org meant more responsibility and opportunity for me, but there hadn’t been much change in my compensation, and I felt dull & lackluster at the same time. So I decided to give it a shot early last year and move. I am happy with my state right now, but to be honest, I always had felt that I am way behind (in terms of TC, net worth, and role relative to my YOE) compared to other peers. Especially when I saw posts on Blind by others with ridiculous offers/TCs or my colleagues landing a job in Google/Meta, or new grads with 0 YOE earning more than me, it was somewhat depressing. But, you should also know that those feelings are natural things to have if you understand that jealousy & envy are just inherent traits of human nature. You can use them as a good pill that motivates you, or let it be a bad pill and devours you over time. There is a third option which you can simply avoid them by simply not reading those taunting posts. Reading those posts made me jealous most of the times, but it was also addicting at the same time. Often times, those posts only have offer numbers with “Which offer should I choose?”, “Please help me decide”, and not much about rejects/failures or tips. That is why I have decided to add personal learnings/tips/FAQ to this post in addition to offer numbers as well as my rejects and failures hoping that it can encourage and help those of you, who haven’t made jumps because you are too busy/lazy/expecting promo soon/whatever reason, but are capable of doing so with a bit of luck and dedication. Even today, I still struggle to stop comparing my state and position against others and feel somewhat low when I see higher TC or NW by others (e.g. $900k, $1M, $1.5M TCs or those people with $1M+ net worth), so I am trying hard to stop comparing myself against others. This post might not help everyone, but I hope it helps some of you who are wondering and lingering whether or not you should start prepping for interviews to make a great jump in 2022. You can do it. Current TC: $220k New TC: $500k+ YOE: 10 Tl;dr; - Sync & align with interviewers during interviews. - Have multiple interview loops to cope with rejects, and also to negotiate better offers. - Your market value might be much higher than what you are getting right now.
Hope you did not type the whole post in mobile app.
OP thank you from the bottom of my heart for taking out the time to write this! This is very helpful
Amazing post, this is what Blind is for! Congratulations on your 100 offers!