Contents
  1. Background: how I ended up with no leverage
  2. The shape of the negotiation
  3. What I knew before the call
  4. Leverage without a competing offer
  5. What happened
  6. Results
  7. What I’d do differently
  8. Conclusion

On the morning of August 31 I had a meeting on my calendar called an “EVP discussion,” an hour away. I did not know what EVP stood for. I asked Claude, which did not know either until I explained that the recruiter wanted to discuss the offer. So that was the call: the offer, in an hour, and I had not prepared for it.

I also had no competing offer. I had collected seven others between April and June, but by late August each one had been declined or had lapsed. The most widely shared advice on negotiating a tech offer says the single strongest determinant of the outcome is the number and strength of the other offers you hold. I held none.

This post describes what I did with that hour and that position: what I already knew about the structure of a Google L4 package in India, which parts of it move and which do not, how I framed an ask without another offer, and how it turned out. It is part 16, the last part, of the 35 companies, 8 offers series. As with every post in the series, I am not publishing compensation figures.

The short version:

  • Competing offers in hand: none
  • Preparation time: about an hour, on top of research done earlier
  • The ask: meaningfully above the first number, with reasons attached
  • The outcome: settled much closer to my ask than to the first number
  • Signed: the same day

Background: how I ended up with no leverage#

The timing was the problem. My other offers arrived between April and June. Google’s loop ran through July, and the offer came at the end of August. I could not hold six offers open for three months, and I did not want to: each one failed my own tests on role, culture or pay, and keeping a company waiting for a decision I had already made would have been unfair to them.

The conventional view of negotiation makes this look hopeless. Haseeb Qureshi’s rules for negotiating a job offer, the most widely shared guide on the subject, puts competing offers at the center. Without them, the usual playbook (share the other offer, ask the company to match or beat it) does not exist.

Two things made the position less weak than it looked. First, I did have an alternative: the role I already had. Harvard’s Program on Negotiation defines your best alternative to a negotiated agreement as what you will do if you do not reach a deal, and “stay where I am” is a real alternative even if it is not a competing offer. Second, a negotiation is not only about leverage. It is also about giving the other side reasons and a clear path to yes.

The shape of the negotiation#

The call followed a sequence I had decided on in that hour, with one rule at each step.

graph TD
    A["Research the band<br/>before the call"] --> B["Identify which<br/>levers move"]
    B --> C["Recruiter presents<br/>the package"]
    C --> D["Listen fully,<br/>no numbers first"]
    D --> E["Ask on the<br/>flexible levers"]
    E --> F["Attach a reason<br/>to every ask"]
    F --> G["Say what would<br/>get me to sign"]
    G --> H["Revised package"]
    H --> I["Accept and sign"]

    class A,B blue
    class C,D gray
    class E,F,G amber
    class H violet
    class I green
Figure 1: The plan for the call. Research identified the levers that move; the ask was to target those levers, come with reasons, and make the path to a yes explicit.

What I knew before the call#

I had done the research in two passes earlier in the process: once in June, when the loop was scheduled, and once in August, after the hiring committee approved. Both passes used public data, aggregated compensation sites and recent offer reports from candidates on LeetCode Discuss, filtered for L4 software engineering roles in India and, where possible, ML-focused ones.

The useful findings were about structure rather than any single number.

Base salary is banded. At a given level and location, base sits in a fairly narrow range. Pushing hard on base mostly runs into the top of the band.

The bonus percentage is fixed. The target bonus is a percentage of base set by level, not something you negotiate.

Equity is where most of the variation lives. Recent reports showed a wide range of stock grants for the same level, with the high end mostly belonging to candidates who had competing offers. Several reports suggested that grants had tightened after a compensation change in 2025.

One-time payments may or may not exist. Some recent reports mentioned signing bonuses; others said they were no longer offered. Relocation support was standard for a move between cities.

ML roles sat toward the top. Offers for ML-focused L4 roles tended toward the higher end of the range.

Vesting was front-loaded. More of the stock vests in the first year than in later years, which makes the first-year number more meaningful than it used to be.

Put together, the research turned into a simple map of where to spend the ask:

Part of the package What the research suggested What I planned to do
Base salary Banded by level and location Accept if within the band
Target bonus Fixed percentage Do not negotiate
Stock grant Widest variation; tighter recently Main lever for the ask
One-time payments Inconsistent across recent reports Ask whether available, tied to relocation
First-year total Front-loaded vesting makes it meaningful Frame the ask as one first-year number

Framing the ask as a single first-year number mattered. It let the recruiter decide which components to move to reach it, instead of making me argue about each one.

Weeks before the call, a recruiter intake form asked for my compensation expectations, and I wrote a number. My own research later suggested the equity part of it was aggressive. A number written on a form is an anchor you set before you have any information. If a form allows it, “I would like to understand the full package first” is the better answer.

Leverage without a competing offer#

With no other offer to cite, the plan I went into the call with rested on three things instead.

The strength of the interview signal. My loop had come back with Strong Hire on two rounds and Hire on the others. The framing I prepared was: I am not negotiating against another offer; I am asking for the package to reflect the strength of the interview signal. That is a request a recruiter can take to whoever approves the package, which is what makes it useful.

Reasons for every ask. Qureshi’s follow-up post on not bombing an offer negotiation makes the point that stating a reason, any reason, makes a request feel human rather than greedy. My reasons were real: a move to a new city, a change of track from startups to a large company, and the role I would be leaving.

A clear path to yes. The same post argues for being “winnable”: telling the company what would get you to sign. The plan was to be explicit that I wanted to join, and to name the number that would let me sign.

Equally important was what I planned not to do. Do not cite forum posts or other people’s offers; quoting a LeetCode thread to a recruiter invites an argument about whose data is better. Do not push on base or on the bonus percentage, which the research said were fixed. Do not invent leverage I did not have. Let the recruiter present first, and do not react to numbers before hearing the whole package.

What happened#

The first-year total presented was within the range my research had predicted for a candidate without competing offers, toward the lower part of it.

I asked for a specific first-year number, meaningfully above the one presented. The revised package came back much closer to my ask than to the first number: most of the gap between the two was closed. I accepted it and signed the offer the same day.

Results#

I cannot publish the figures, but the movement is the point: most of the gap between the first number and my ask closed, without a competing offer, before the end of the day the offer was presented.

I cannot say for certain which part of my approach moved it. What I can say is that the ask was specific, it was aimed at a package whose structure I understood, and it came with reasons. Each of those is under a candidate’s control, with or without other offers.

What I’d do differently#

Do not write numbers on forms. The anchor I set on the intake form weeks earlier was set with less information than I had on the day. Where a form allows it, I would defer.

Ask what every meeting is before the day. I found out what the offer call was an hour before it started. A one-line email to the recruiter asking for the agenda would have given me a day to prepare instead of an hour.

Keep one alternative alive if possible. I could not have held six offers open for three months. But I could have timed one late process so that it was still live in August. Even a single real alternative changes the conversation.

Ask for time if you need it. I had prepared to ask for a few days to review. In the end I did not need them, because the revised package was one I wanted to sign. But the option should always be on the table, and it costs nothing to ask.

Conclusion#

A competing offer is the strongest lever in a negotiation, but it is not the only one. Without one, I relied on knowing which parts of the package could move, a framing built on the interview signal, real reasons for every ask, and a clear statement of what would get me to sign. That combination closed most of the gap in one conversation.

Know the structure, ask on what moves, give reasons, and make a yes the obvious answer for the other side.

Part 16 of the 35 companies, 8 offers series. I join Google as a Software Engineer III, AI/ML, in October 2026.