Loading
0xA0Lesson 11 of 11

Evaluate and negotiate an offer

Compare total compensation and negotiate professionally.

20 min 5-question quiz 1 code exercise
By the end of this lesson you can
  • Break an offer into its components.
  • Compare offers by annualized total compensation.
  • Negotiate respectfully with data.

The interview process ends with an offer - and usually room to negotiate. Offers are rarely final, and a professional negotiation almost never costs you the offer. Knowing how to evaluate one is part of doing the process well.

Components of an offer

  • Base salary: your guaranteed yearly pay.
  • Bonus: often a target percentage of base, which may depend on company and personal performance.
  • Equity: stock or options granted over a vesting schedule, commonly four years. Divide the grant by the vesting years for an annual value, and consider the risk for private companies.
  • Signing bonus: a one-time payment, often used to close gaps.
  • Benefits: retirement matching, health insurance, remote work, learning budget, leave.
story.py
base, bonus_pct, equity, vest_years = 150_000, 10, 200_000, 4
annual = base + base * bonus_pct // 100 + equity // vest_years
print(f"Annual total compensation: {annual:,}")
Output
Annual total compensation: 215,000

When negotiating: express enthusiasm first, base requests on data (competing offers, market ranges for the level and location), and ask for specific adjustments. It is often easier to increase equity or the signing bonus than base salary. Get the final offer in writing. If you are asked for salary expectations early, you can give a researched range or ask to learn more about the role first.

Key takeaways

  • Compare offers by annualized total compensation and terms.

  • Negotiate with enthusiasm and data.

  • Equity and signing bonuses are often more flexible than base.

Lesson quiz

5 questions · pass with 4 correct · up to 50 XP

Passing this quiz completes the lesson and keeps your streak going. Questions you miss come back in review sessions later.

Practice: sharpen your stories

Use short Python programs to check your story structure, time your answers, and quantify impact. These exercises run locally in your browser.

Exercise 1

Compare offers by total compensation

+25 XP

Read a count n, then n lines of company base bonus_percent equity_grant vesting_years. For each offer compute the annual total as base + base * bonus_percent // 100 + equity_grant // vesting_years. Print company: total lines from highest to lowest total (ties alphabetically), with thousands separators.

  • Higher base is not always better
  • Tie broken alphabetically
main.py
Loading editor…

Python runs in a sandboxed browser worker with a 60 second time limit. Its runtime loads from the Pyodide CDN; your code stays in this browser.

Questions about this lesson

Stuck? Ask. Figured something out? Share it. Explaining is one of the best ways to learn.

Loading posts…

Did you like the lesson? 😆👍
Consider a donation to support our work: