You just got an offer letter. It’s for a solid Staff Engineer role at a company you respect. Your heart pounds; you see that number, that glorious base salary, the stock options. For a split second, you think, "This is it! I'm rich!" Then, reality hits. Is this really a good offer? Did they lowball you? You need to negotiate that tech salary, and you need to hack your offer like a pro. This isn't about being greedy; it's about valuing your skills.
Most engineers leave money on the table. A lot of it. I've seen folks accept the first number because they’re tired of interviewing, or they don’t want to seem “difficult.” That’s a mistake. A big one. Over a 5-year tenure, a difference of just $20k in base salary can mean well over $100k lost, not even counting compounding stock growth or refreshers. You wouldn't ship code without testing it; why accept an offer without pushing back?
The Pre-Offer Ground Game: Information is Your Weapon
Before you even think about an offer, you've got to do your homework. This isn't just about Glassdoor anymore. Glassdoor is a good starting point, but it's often outdated or skewed. You need more granular data. Target specific companies, specific roles (Staff Software Engineer, not just "Software Engineer"), and specific locations.
Blind is your best friend here. Seriously, spend time there. Search for “[Company Name] Staff Engineer Salary” or “[Company Name] L5 offer.” People post actual offer letters, compensation breakdowns, and negotiation experiences. You'll see ranges, stock refreshers, sign-on bonuses, and even relocation packages. Levels.fyi is another non-negotiable tool. It aggregates self-reported data, providing a more current and comprehensive view of total compensation (TC) for various roles and levels at specific companies. Don't just look at the average; look at the range and try to understand where your experience fits within it. Are you a top 10% candidate? Or more like 50%? Be honest with yourself.
You should also network. Ask your friends, former colleagues, or even people on LinkedIn (politely, of course) who work at your target companies about compensation bands. Frame it as "I'm exploring opportunities at X, and trying to understand the compensation structure for someone with Y years of experience in Z domain. Any insights would be super helpful." Most people are willing to share general ranges, especially if they're not directly discussing their own salary. This proactive research arms you with realistic expectations and a baseline for what you'll ask for. You're not guessing; you're operating with data.
The First Salvo: Never Reveal Your Number First
This is perhaps the most crucial rule in salary negotiation. The moment a recruiter asks for your salary expectations, your alarm bells should be ringing. Your answer should always be a variation of "I'm looking for a compensation package that's competitive for a role of this level at a company like yours, and I'm confident that if we find a good mutual fit, we'll align on compensation." Or, "I'm still early in my process and focused on finding the right role, but I'm expecting something in line with market rates for a Staff Engineer with my experience."
They're trying to anchor you. If you say "$200k," and their internal band for your level goes up to $300k, you've just cost yourself $100k. If you say "$300k" and their band maxes at $250k, they might ghost you or decide you're out of budget. Force them to make the first move. They have an internal budget; make them reveal it. It's a game of chicken, and you need to win.
If they push back aggressively, saying they need a number to proceed, you have a few options. One, you can give a very broad range, like "$200k to $300k total compensation, depending on the full scope of the role and benefits." This still gives you wiggle room. Two, you can turn the question back: "What is the typical total compensation range for this role at your company?" Sometimes they'll tell you. If they absolutely refuse to provide a range, that's a red flag. It might indicate they're trying to pay as little as possible, or their compensation bands are disorganized. Proceed with caution.
The Offer Arrives: Don't Celebrate (Yet)
Okay, the offer is in your inbox. Resist the urge to call them immediately or accept on the spot. Even if it's better than you expected, you have a window – typically 3-5 business days, sometimes a week – to review and respond. Use this time wisely. This is where you dissect the offer, not just the base salary.
Look at the full compensation package: base salary, annual target bonus (if any), sign-on bonus, restricted stock units (RSUs) or stock options, refreshers, and benefits (health, dental, vision, 401k match, PTO, parental leave, etc.). Calculate the total compensation (TC) for the first year, and then over four years (as most RSUs vest over four years).
An offer for $200k base, 15% bonus, $50k sign-on, and $400k in RSUs over four years looks like this: Year 1 TC: $200k (base) + $30k (bonus) + $50k (sign-on) + $100k (RSU) = $380k This is the number you care about. Not just the base. A lower base with higher RSUs or a bigger sign-on can sometimes be a better overall package, especially in high-growth companies.
The Counter-Offer Strategy: Data-Driven and Confident
This is where your pre-offer research pays off. You're not pulling numbers out of thin air. You're presenting a well-reasoned case.
First, identify your target TC. Based on your Levels.fyi and Blind research, what's a realistic stretch goal? Aim for the high end of the band for your level and experience. If the average L6 at Company X makes $450k, and you're an L6 candidate, maybe you aim for $480k-$500k.
Second, craft your response. This should always be a call or video chat, never just an email. It allows for a more personal connection and gives you a chance to read their reactions. Start by expressing genuine enthusiasm for the role and the team. "I'm incredibly excited about the opportunity to join [Company Name] as a Staff Engineer. I really enjoyed meeting [Hiring Manager Name] and the team, and I see a strong alignment with my skills in [specific tech/domain]." This builds goodwill.
Then, transition to compensation. "Regarding the offer, I'm very grateful, and it's a strong start. However, based on my understanding of market rates for a Staff Engineer with my specific experience in [your key skill, e.g., distributed systems, large-scale ML infrastructure] and considering other opportunities I'm exploring, I was hoping for a total compensation package closer to [your target TC]."
Be specific about what you want to increase. Don't just say "more." Is it base? Is it RSUs? Is it the sign-on? Often, base salary is the hardest to move significantly, as it affects future raises and bonuses. RSUs and sign-on bonuses often have more wiggle room. "Specifically, I'm looking to increase the base salary to X, and the RSU grant to Y, to reach a total compensation of Z."
Provide your justification. "My experience leading the migration of our monolithic API to microservices at [Previous Company] resulted in a 30% reduction in latency and a significant improvement in developer velocity. I believe this directly aligns with the challenges you mentioned regarding scaling your platform." Connect your skills and past achievements directly to their stated needs.
The Multi-Offer Advantage: Play Your Cards Right
Having multiple offers is your strongest negotiation tool. Period. If you have an offer from Company A, and Company B gives you a better offer, go back to Company A. "I'm still very interested in [Company A], and I really appreciate the offer. However, I've also received an offer from [Company B] for a similar Staff Engineer role, and their total compensation package is $X. Given my strong interest in your team and product, I'd love for you to consider increasing your offer to match or exceed that."
Don't lie about other offers. Recruiters talk, especially in competitive markets. But you don't need to reveal every detail of the other offer unless pressed. You can say it's "significantly higher" or "more competitive." The goal is to create a sense of urgency and competition. They want you; they don't want to lose you to a competitor.
This is also where knowing your BATNA (Best Alternative To a Negotiated Agreement) comes into play. What's your walk-away point? What's the minimum TC you'd accept? If you have another offer that meets your minimum, you're negotiating from a position of power. If you don't, you're bluffing, which is riskier.
Beyond the Numbers: Perks and Non-Cash Negotiation
Salary isn't the only thing you can negotiate. Especially if a company is truly maxed out on their compensation bands, you can push for other things.
- Sign-on bonus: Often easier to move than base salary or long-term stock, as it's a one-time cost. This is great for bridging a gap if your base is slightly lower than desired, or if you're leaving behind unvested stock from your current company.
- Relocation package: Don't just accept the standard. Can they cover more moving expenses? Can they provide temporary housing?
- Title: Sometimes a higher title (e.g., "Principal Engineer" instead of "Staff Engineer") can be negotiated, which can have long-term career benefits and open doors for higher compensation in future roles, even if the initial pay bump isn't huge. This depends heavily on company structure and leveling guidelines.
- Vacation/PTO: Standard is often 15-20 days. Can you get 25? Or unlimited?
- Work-from-home flexibility/hybrid model: If it's important to you, and not explicitly stated, ask for clarity or a formal agreement.
- Professional Development Budget: Can they allocate a specific amount for conferences, courses, or certifications?
- Equipment: A specific monitor setup, a high-end laptop, a standing desk – these are small asks that can improve your daily work.
These non-cash perks might not add to your total compensation in the same way stock does, but they can significantly improve your quality of life or career trajectory. Sometimes, a slightly lower TC with amazing flexibility is worth more to you than a higher TC with rigid policies. This really depends on your personal priorities and life stage.
The Final Push and the "Yes"
After you've countered and they've come back with a revised offer, you might go back and forth once or twice. Be polite, be firm, and be clear. If you're genuinely happy with a revised offer, accept it enthusiastically. Get everything in writing before you resign from your current role. Every single detail: base, bonus, stock (number of units, vesting schedule, strike price if options), sign-on, and any agreed-upon perks. Do not verbally accept and then give notice without a signed offer letter. Things change.
Remember, the recruiter is not your friend, but they're also not your enemy. They're doing their job, which is to get you hired within their budget. Your job is to maximize your value. Treat them with respect, be professional, and be persistent. This process can feel uncomfortable, but it's a critical skill for any senior engineer. You're worth it.
Ready to Ace Your Next Interview?
Practice with AI-powered mock interviews tailored to your target role and company. Start Practicing for Free | Explore Interview Prep
