Offers and negotiation
You passed the interviews. Now there is one more step that can change your pay by a lot: the offer. Most companies expect some negotiation. Asking politely almost never makes them take the offer back.
What is in an offer
An offer has more than a salary. Know each part.
| Part | What it is |
|---|---|
| Base salary | The fixed yearly pay. |
| Bonus | Extra money, often yearly. It can depend on company and personal results. |
| Equity | A part of the company, usually as stock (RSUs) or stock options. |
| Vesting | The schedule for when you actually get the equity. |
| Sign-on bonus | A one-time payment for joining. Sometimes you must return it if you leave early. |
| Level / title | Your position in the company's career ladder. |
| Benefits | Health insurance, retirement plan, learning budget, equipment, and so on. |
| Work setup | Remote, hybrid or office. Location rules. |
Two words to understand:
- RSU (Restricted Stock Unit): shares of a company that you receive over time. At public companies they have a clear value.
- Stock options: the right to buy shares later at a fixed price. At startups they can be worth a lot or nothing.
A common vesting pattern is 4 years with a 1-year "cliff". The cliff means you get nothing if you leave before 1 year, then you get the first part. Schedules differ between companies, so always ask.
Compare offers by total compensation
Total compensation (often called "TC") is the full yearly value. Use a simple table. The numbers below are only an example.
| Company A | Company B | |
|---|---|---|
| Base | 140,000 | 155,000 |
| Bonus (target) | 10% = 14,000 | 0 |
| Equity per year | 40,000 (RSUs, public company) | 20,000 (options, startup) |
| Sign-on (year 1 only) | 20,000 | 0 |
| Year 1 total | 214,000 | 175,000 |
| Year 2+ total | 194,000 | 175,000 |
Company B looks better if you only compare base salary. Company A is better in total. But also think about risk: startup options may be worth nothing, or much more.
To get the equity per year: divide the total grant by the vesting years. A grant of 160,000 over 4 years is about 40,000 per year.
Do not compare only money
Money matters. But for your career, these matter too.
- Level: a higher level means higher pay in the future, too.
- Team: will you work on the iOS app every day, or on internal tools?
- Growth: is there a senior iOS engineer you can learn from?
- Tech: SwiftUI or a 10-year-old Objective-C codebase? Both can be good; just know it.
- Stability: is the company growing or cutting?
- Life: commute, on-call, working hours.
A simple scoring table helps when offers are close:
Weight Company A Company B
Money 3 4 3
Level 2 3 4
Team and growth 3 3 5
Tech 1 4 4
Work-life 2 3 4
-------------------------------------------
Weighted total 37 44Here Company B wins even with less money. Your weights may be different. That is the point: decide what matters to you.
Levels
Companies use different names for levels. Some use numbers (like L3, L4, L5), some use titles (Engineer, Senior Engineer, Staff Engineer). A "Senior" at one company may be "Mid-level" at another.
A rough common pattern:
| Level | What is expected |
|---|---|
| Junior / Entry | Builds features with help. Learns the codebase. |
| Mid-level | Builds features alone. Good code quality. Some design. |
| Senior | Leads features end to end. Makes technical decisions. Helps others. |
| Staff and above | Leads across teams. Sets technical direction. |
Level matters more than one year of pay. It decides your pay range, your future raises, and your next job title. If you think the level is too low, ask about it.
"Based on my experience leading the SwiftUI migration and mentoring two developers, I expected to be considered for the senior level. Could you share how the level was decided?"
How to negotiate politely
1. Thank them and ask for the offer in writing
"Thank you, I am excited about this offer. Could you send me the full details in writing, including equity and the vesting schedule?"
2. Ask for time
It is normal to take a few days. Do not accept on the call.
"I would like a few days to review everything. Can I get back to you by Friday?"
3. Do not share a number too early
If they ask your expected salary early in the process, try to let them share the range first.
"I would like to learn more about the role and the level first. Could you share the range for this position?"
In some places, companies must publish salary ranges in the job post. Check the post first.
4. Ask, with a reason
Give a clear reason: another offer, market data, or your experience. Be specific about what you want.
"I am very interested in joining. I have another offer with a higher total compensation. If you could raise the base salary to 160,000, I would be ready to accept."
5. Negotiate more than base
If base is fixed, ask about other parts:
- Sign-on bonus
- More equity
- Higher level
- Start date
- Remote work days
- Learning budget
"I understand the base salary is at the top of the band. Would it be possible to add a sign-on bonus to close the gap?"
6. Be honest
Never invent another offer. Recruiters may ask for details, and the industry is smaller than it looks. If you have no other offer, use your experience and market data as the reason.
Sample email lines
Asking for more:
"Thank you again for the offer. I am excited about the team and the work on the iOS app. Based on my experience and the market for senior iOS roles, I was hoping for a base salary closer to 160,000. Is there flexibility here?"
Using a competing offer:
"I have received another offer with a total compensation of about 200,000 per year. Your team is my first choice. Is there anything you can do to bring the offer closer?"
Asking about level:
"Could you share how the level was decided? I believe my experience leading the offline sync project matches the senior level, and I would like to understand the gap."
Accepting:
"Thank you for working with me on this. I am happy to accept the offer. Please let me know the next steps."
Declining politely:
"Thank you very much for the offer and for your time. After careful thought, I have decided to accept another position. I really enjoyed meeting the team, and I hope our paths cross again."
Always decline politely. You may want to apply to the same company again in a few years.
Common mistakes
- Accepting on the first call. Always ask for time.
- Only negotiating base salary. Equity, sign-on and level can be bigger.
- Being aggressive. Firm and polite works better than demands.
- Lying about other offers. It can end the offer.
- Negotiating after accepting. Negotiate before you say yes.
- Ignoring the level. A low level costs you money for years.
- Forgetting taxes and location. The same number is worth different amounts in different cities and countries.
Before you accept: checklist
- I have the full offer in writing.
- I know base, bonus, equity, vesting and sign-on.
- I compared total compensation, not only base.
- I know my level and what it means.
- I asked at least once for a better offer, politely.
- I know the start date, work setup and on-call rules.
- I said thank you and declined other offers politely.
The end of the playbook
You now have a plan for every step: process, preparation, resume, coding, iOS knowledge, UI building, system design, behavioral rounds and the offer.
Go back to the Preparation plan chapter. Pick your plan, open the study plans on this site, and start today. Small daily practice wins.