Career Switcher’s Guide to Your Dream Tech Job, Part 3

David Tian
Oct 4 · 16 min read

Pro-tips to Get the Most out of Your Dream Job Offer

Introduction

Welcome back! If you just stumbled upon this article, I recommend reading Part 1 and Part 2, because you need to have a few interviews and a few job offers to find this article useful.

In this article, I will assume you now have:

  • Complete a few rounds of on-site interviews
  • Received at least one job offer

Step 5. Offer Negotiation and Team Matching

5.1 Offer Negotiation

If you are reading this, you probably have received at least one offer. Wow, congratulations! (If you have not received any offers yet, stop reading right now, and go back to do more LC and interviews! ;-)

Components of an Offer Package

These are the typical components of an offer package of a tech company. I will give a sample of a mid-level software engineer (SWE), typically 3–5 years of experience (YoE).

  • Sign-on Bonus: This is the money you get right after you start work, NOT when you sign the offer letter. For example, $30,000 one time payment.
  • Base Salary: This is the money that goes into your bank account every month. For example, $150,000/year.
  • Annual Bonus: This is a percentage of your base salary, usually 10–30%, given every year. For example, 20%, which is $30,000 for a base salary of $150,000.
  • Stock Options or Stock Grants: bigger companies tend to give Stocks (called Restricted Stock Units, RSUs) which is worth something at the time of the grant, and startup companies tend to give stock options, which is worth very little at the time of the grant but may have big upside potential. For example, $300,000 worth of Stock Grant vested over 4 years, so $75,000 is vested every year.
  • Relocation package (If you need to relocate): This usually includes 1) a few weeks of corporate housing for your family, 2) moving of all your belongings, 3) help with selling and buying houses, and optionally 4) some cash to help with other relocation-related expenses. The relocation package is based on your family composition, location, and level. It is not usually negotiable.

Source: levels.fyi

Annualized Total Compensation (TC) This is the one number that makes all the offer packages comparable.

TC = Base Salary + Annual Bonus + Annual Stock Grants+ amortized Sign-on bonus (Assume you amortize the sign-on bonus over 3 years)

TC of our mid-level SWE

= $150k + $30K + $75K + $30K / 3 = $265,000

Note that the relocation package is not considered part of TC calculation, as it is expected you will be spending most, if not all, of the relocation package.

Know Your Level

Even though you know your YoE, the company may interview you at a certain level that is company-specific. For example, a 4 YoE engineer may interview at L3 or L4 at Google, E3 or E4 at Facebook, and Level 59–62 at Microsoft.

Ask the recruiter what level are you interviewing for. But this may not be the level you will be offered the job at. For example, you may interview at Facebook at E4, in the end, the hiring committee may decide that your performance is not stellar enough for an E4, but good enough to receive an offer for E3. So ask the recruiter again what level is your job offer for. With this level, you can find out the expected value and range of TC. (see below)

Know Your Market Value

You can’t negotiate if you don’t know your prevailing market value. For years, companies have kept compensation information very secretive, so the candidates have suffered HUGE information disadvantage. Fortunately, in recent years, the compensation information has been democratized, with many websites crowdsourcing from many candidates and then presenting the anonymized compensation data by level, job function and location. One well-known site is levels.fyi.

Top Compensation for 3–5 YoE SWE. Source: levels.fyi
Top Compensation for 5+ YoE SWE. Source: levels.fyi

As you can see above, all the top-paying jobs are in the San Francisco Bay Area (Bay Area). SWEs with 3–5 years of experience(YoE) can earn as high as $290,000 TC, and SWEs with 5+ YoE can earn over $400,000. For any non-Bay Area engineers, total compensation of $300,000–$400,000 may be eye-popping. But remember that Bay area housing is THE most expensive metro area in the US, with a median housing price of Palo Alto, CA at $2.8M (source: Zillow.com), and that of San Francisco Metro Area (source: censusreporter.com) at $1.1M, for preciously this reason — lots of people are paid at a very higher compensation. As a comparison, the median home prices of Manhattan, NY is $1.2M (source: Zillow.com), and that of New York/New Jersey Metro Area is only $440K. (source: censusreporter.com)

Armed with levels.fyi, your level (obtained from the previous step) and the company name, you can clearly see the average reported TC as well as its range. For example, for the Google L4 SWE in the Bay Area, the average reported TC is about $260K, with a range from $200K to $320K. So if you received a Google L4 offer in the low $200K, then you know you have room to negotiate.

Startups

Levels.fyi is a great tool to compare offers between more mature companies (public or private), as the equity component of the comp can be evaluated in dollar terms with higher certainty. But for early-stage startup companies, you can not find reliable data points on Levels.fyi. Very often you are given either 1) a percentage of the company stocks or 2) given a certain number of stock options. The company recruiter or the CEO may tell you that even the value of your equity component is worth very little right now, it may work 20x–50x more if the company goes IPO in 3–5 years. In reality, these equity components are hard to evaluate, are extreme illiquid with no monetary value for years to come, and indeed go to zero value when 90% of all startups fail (source: Forbes).

I received a few offers from early-stage startup companies. The typical package is light on cash (i.e. low base salary and bonus) and heavy on equity (lots of options with a huge potential payout… or nothing). This makes sense, as most early-stage startups do not make a profit, any cash salary/bonus they pay out depletes their cash on hand, in Venture Capital (VC) speak, burns up their runway.

Even though the startups I received offers from do really exciting work and the prospects look very promising — one had Google Ventures as a backer — I ended up choosing Google because I need the certainty and stability of a large company, given that I will have a college-bound kid soon. I can’t afford to join a startup for a few years only to see it fail and have my equity component wiped out.

However, if I were younger and had no kids, I would certainly work for a startup and try to hit a home run. If I fail, I won’t be under pressure to support the family and still have enough time to start over. If my wife makes enough income to support the expenses of our entire family, then I could also work for startups for its potential upside. In finance speak, this is called diversification — by combining risky stocks with safer stocks or bonds, you can actually achieve higher risk-adjusted returns.

Don’t Accept an Offer on the First Call

When you are first offered a position, the recruiter always tells you the offer details (base salary, bonus, equity grants, etc) over the phone. This is called a “Verbal Offer”. What you want to do on the first call is to thank the recruiter, write down all the offer details, repeat it back to the recruiter to confirm, and ask him/her to send you this offer details in an email and then hang up. Remember, DO NOT accept the job on the spot. (If this is your dream job, you can jump up and down AFTER you hang up the phone.) Sometimes, the recruiter will refuse to send you anything in writing or email, then email him/her with the offer details you just wrote down and ask him/her to confirm what you heard is correct. He/she would usually respond affirmatively. It is important because after something is in writing, the recruiter can not easily back out what they just told you over the phone.

Many times, recruiters would push you to verbally accept the offer right away over the phone or give you a 24-hours deadline to accept. DO NOT BITE! You should always try to negotiate for a better offer.

Offer Negotiation — Multiple Offers

Offer negotiation is like playing high stakes poker — indeed, we are talking about tens of thousands of dollars here — it is both exciting and stressful. For some people like myself, it can also be scary. However, armed with information from level.fyi, you can call a recruiter’s offer bluff, if it is too low.

To have leverage in the offer negotiation process, it helps to have another strong offer, or in poker speak, a strong hand. Many recruiters are very willing to try to match competing offers because they can present the competing offer to the hiring/compensation committee as strong justifications for offer increases. In this case, you can try to let these companies to bid up your compensation. This is quite normal, as bidding happens every day around us when a commodity is in demand, such as in the stock markets, eBay, and Google Ads bidding process. The bidding process ensures the commodity is valued at a fair market price.

Offer Negotiation — Just One Offer

Even if you don’t have a strong hand — i.e. only one offer or only low offers — you can tell the recruiter that you are really excited about the company, but your salary expectation is actually $XYZ. The recruiter would ask you to justify this figure, and you can say it is based on figures from levels.fyi, or your friends/co-workers who have similar YoE and their TC is $XYZ. If you present yourself professionally, it is very likely the initial offer will be bumped up somewhat. It is highly unlikely that the company will retract its original offer simply because you try to negotiate because the company invests a lot of effort to find a qualified candidate, so it doesn’t want to lose a good candidate over a small increase. So you have nothing to lose by asking for more comp, nicely.

Offer Negotiation — Money is Not the Only Thing on the Table

Remember money is not the only thing you can negotiate. Anything that the company can offer you is on the negotiation table. For example, you can ask to work for a different group (say a core group rather than support related group), a different title (say Senior Software Engineer instead of Software Engineer), a different job function (say a research engineer rather than a software engineer), more Paid Time Off days, flex time to work from home, or better relocation package. Of course, this varies heavily from companies to companies. Larger companies may be less flexible, but smaller companies, as they may not be able to match the monetary compensation of larger companies, may be more willing to consider these alternative demands. Again, it doesn’t hurt to ask, if you do it nicely.

Offer Negotiation — Don’t Be Too Greedy

After a few rounds of back-and-forth with the recruiter, if you sense that there is not much room to negotiate, stop demanding for more. Recruiter at larger firms see this every day, and probably wouldn’t mind too much. For smaller firms, the recruiter may be working directly with your hiring manager or even the owner/founder. If you drive your bargain too hard, you may be perceived as too greedy, so even when they hire you, they may view you negatively. Know when to be content.

Offer Stalling Tactics

If you are not quite happy with any of the offers after negotiation, you should try to delay the acceptance of the offers. It can happen if some offers’ job functions are very attractive, but comps are too low, while other offers’ comps are nice, but you don’t like the job functions. Delaying an offer allows you more time to interview and land that perfect offer. But it does have risks, as the opening position may be filled anytime. But for large tech firms, that risk is minimal, as they are always hiring. If you need to delay an offer, here are some tactics to try. (Disclaimer: I have not tried all of them, some of them are suggested to me.)

  • Meet with the team/peers: Request a call, coffee, or dinner to meet the rest of the team or learn more from peers is a great way to not only show interest but also get a strong signal on the company/team culture.
  • Request Product Demos: Requesting a product demo is another great way to show interest. It’s also a good way to assess the technical challenges, the product roadmap, and how product-oriented the company is. You can usually combine this with meeting the team for lunch.
  • Ask various Stock/Option related questions, such as the company’s current valuation, last funding round, company’s exit plans/strategies, and option exercise schedule, etc

These above strategies work best for most companies. For some large tech companies, once they decide to give you an offer, the offer is usually good for at least a few months, because you have met their technical bar, and they would be happy to hire a good SWE anytime. Your recruiter may not be willing to tell you this, as they want to close on you ASAP, but you can find out from other sources, i.e. Google Search and Blind App.

Lastly, remember all recruiters want to see you get hired by the company. Be able to close on a candidate (i.e. convert a qualified candidate to an employee) is one of their performance metrics, which is tied to a recruiter’s performance bonus. So treat your recruiter as your advocate, not your adversary.


5.2 Team Matching/Selection

Don’t choose a job simply because it pays the most right now. While compensation is an important factor in your offer decision process, what may be more important is how a job impacts your career. I will discuss how to select a company/team that will maximize your career potential in the long run.

Team Matching Process

For many companies (including Apple/Microsoft/many other companies), you would be interviewing with a few specific teams, and when you are offered the job, it would be for one of those teams.

However, for some companies such as Google and Facebook, they interview most candidates as general SWEs and only try to match a candidate to a team after he/she is extended an offer. Since I have only experienced the team matching process with only these two companies, I will discuss my experience below.

Facebook extends a firm written offer first and then match you to a team. Team matching can also happen before you join, as you take calls from hiring managers, or after you join, during the first 4–6 weeks of orientation/boot camp stage. The pro of this process is that the candidate knows that his/her offer is firm, and the con is that you run the risk of joining then not be able to find a team you like during boot camp. I was told by my Facebook friends that this situation is highly unlikely.

Google, on the other hand, works very differently. It does not run a long orientation/boot camp like Facebook, so it first extends you a verbal offer and then requires you to be matched to a team before extending a formal written offer. Even after you are matched with a team, this offer can be rejected/modified by the hiring committee, even the final comp can be revised from the initial verbal offer by the compensation committee. I have read, from many online posts, that this is a long and arduous process. As I found out personally, the team matching process was indeed long and frustrating which took 1.5 months. At one point, I seriously thought it would not work out and wanted to join another company instead. Had Google extended me a firm written offer first like Facebook, it would’ve been much less stressful, because I would know for certain I will work for Google and all I had to do was to find a team. Luckily, things worked out for me as I was finally matched with a group of my choice, and the offer was approved by various committees shortly after that.

How to Select a Team

Here are the questions that I ask myself during the interview or offer stage. You don’t need to ask these exact questions to the interviewers, but you want to somehow extract the answers to these questions from your interviews/conversations with the companies/groups.

  1. Which group will I be joining? I want to join the “core” groups of a company. It would be a group that a company has put a lot of commitment and resources behind, often its flagship product groups or high growth groups. Working in these groups offers stability and/or growth.
  2. What types of work will I be doing for this company/group? I look for work experiences that are transferable in my later career. I would prefer to work with publicly available tools and technologies, and not so much with the company’s proprietary technologies. For example, if I work on an ad recommendation machine learning system, I am sure I can easily find another company that also wants to improve its ad/product recommendation system. However, I would not be so interested to work on automating some internal processes with a company proprietary scripting language.
  3. What will I be learning by working for this company/group? Work is a two-way street. I want to be able to contribute a lot to my company. At the same time, I want to learn a ton from my work, so that my skill sets can be in high demand when I look for my next job. I believe AI/ML, Computer Vision, Cloud computing, Self-driving car, and AR/VR skills will be in high demand in the future, so I want to learn some of these skills in my next job.
  4. Do I have a passion for this job? If you don’t have a passion for what you do, it doesn’t matter how much the job pays, you won’t be happy and won’t be putting that 120%. I was passionate about quantitative finance because it was cool to see math and technology transforming a whole industry. But after 10+ years, my passion is now on AI/ML because it is really awesome and magical that you don’t have to tell a computer exactly how to do something, all you have to do is to feed it data and it would figure out how better than one would in code.
  5. Do I like my manager and my peers? And do they like me? You want a manager that appreciates you and would support you in your new job. You also want to enjoy being around your teammates, since you will be with them for 8+ hours every single day, even longer than when you are with your family!

Many times, not all of the above can be satisfied, then you have to weigh the pros and cons of each. But if one of the above gives you a red flag, I would seriously consider passing this position.

I ended up choosing to go to Google’s Pixel Phone’s camera group because it offers three things that I am very passionate about, Computer Vision, Machine Learning, and Hardware, which are exactly what my robotic self-driving car project was all about! Also from what I learned, Google is now deeply committed to its hardware and smart home strategies, where the Pixel Phone would be a central part of that ecosystem.


Final Thoughts

Thanks for reading thus far. It was quite a journey for me these last 6 months. Through my personal projects and intensive interview preparation, I believe I am now a better engineer (or at least a better interviewee. ;-) What I presented are my own lessons and experiences.

I have found that A&DS questions are the core of any tech interview, and there is no shortcut to getting better at it except through practicing more LC questions. Once you are decent at A&DS and System Design questions, the suggestions that I presented in these three articles should help you tip the scale in your favor.

I recommend bookmarking all three articles (Part 1, Part 2, and Part 3) as you will need to refer back to them in the next 2–6 months as your job search progresses. Some of the tips in the later stages won’t make much sense until you actually get to that stage. For example, you may need to do a few phone interviews to appreciate the tips presented in Part 2, and you certainly shouldn’t be thinking about offer negotiation before you get any offers.

If you are going through interviews, please let me know which of my tips worked well or not so well by leaving a comment below, so that others will benefit as well. Please also suggest new tips in the comments as well. Thanks!

Best of Luck Landing YOUR Dream Tech Job!

David Tian

Written by

Hacker, tinkerer, and engineer. I am passionate about machine learning, AI, and anything technology related. DeepPiCar GitHub: https://github.com/dctian

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade