Nobody teaches you this in college. Your first job, you got an offer and said yes. Maybe you felt lucky. Maybe you were scared they'd take it back. Maybe you just didn't know what else to do.
Then six months later you found out your colleague joined at 20% higher. Same role. Same experience. Different conversation.
This guide is that conversation. Everything you need to know before you pick up the next offer call.
Before You Negotiate: Understand What You're Actually Negotiating
Most developers think salary negotiation is about one number. It isn't. It's about total compensation, and in India that gap between what a company quotes and what lands in your account every month is large enough to change the entire conversation.
CTC vs In-Hand: Decode the Offer First
CTC stands for Cost to Company. It includes everything the company spends on you, including the parts you never actually receive in cash.
Here's a realistic breakdown of a 12 LPA CTC offer:
| Component | Amount |
|---|---|
| Fixed base salary | 7.5 LPA |
| Variable / performance bonus | 2.0 LPA |
| Employer PF contribution | 1.2 LPA |
| Gratuity (vests after 5 years) | 0.6 LPA |
| Food coupons / perks | 0.7 LPA |
| Your actual in-hand / month | ~52,000 |
That 12 LPA CTC becomes roughly 52,000 a month in hand. And that variable component? You only get that if you hit targets your manager defines every quarter.
Before you evaluate any offer, ask this:
"Can you share the fixed vs variable split and a sample salary slip?"
Any legitimate company will share it. If they hesitate, that's a signal.
Always negotiate on fixed. Always calculate your real number before you compare two offers.
💡 TIP
If the company cannot explain fixed vs variable clearly, treat that offer as higher risk.
Variable Pay Is a Promise, Not a Salary
Variable pay is one of the most misunderstood parts of compensation for early and mid-level developers in India.
The typical pitch sounds like this: 14 LPA fixed plus 4 LPA variable. 18 LPA total. Sounds good. Except most devs never see 100% of their variable component. Company performance, team performance, individual rating, manager discretion — all of these chip away at it.
Realistically, budget your variable at 60 to 70 paise to the rupee. That 4 LPA variable is closer to 2.4 to 2.8 LPA in reality. Your 18 LPA offer is actually closer to 16.4 to 17 LPA.
When negotiating, push to move as much of the variable into fixed as possible. The line that works:
"I'd prefer a higher fixed component. Can we move 2 LPA of the variable into fixed? I can commit fully when my base is secured."
If they won't budge, at least you know your real number going in.
Step 1: Know Your Number Before the Call
Walking into a salary conversation without a number is not negotiation. It's hope.
Your number needs to be grounded in data. Here's where to find it:
- AmbitionBox: Good for India-specific role, company, city, and experience data.
- LinkedIn Salary: More reliable for product companies and senior roles.
- Levels.fyi: Essential for startups, unicorns, and FAANG-style compensation.
- Your network: The most accurate and underused source. Message 2–3 engineers and ask, "roughly what band does this role sit in?"
Once you have data, build two numbers:
- Your target: the number you actually want.
- Your walk-away: the minimum you'll accept.
Never walk into a negotiation knowing only one of these.
🧠 NOTE
A strong range is one where your target is the lower bound, not the midpoint.
Step 2: Control the Anchor
In any negotiation, the first number spoken sets the psychological anchor for everything that follows. Whoever names the number first is playing defense for the rest of the conversation.
This is not theory. It's been studied extensively in behavioral economics. The anchor number, even when clearly arbitrary, pulls the final outcome toward it.
If HR opens with 12 LPA, you're negotiating up from 12. If you open with 18, you're negotiating from a completely different starting point.
Never reveal your current salary
Your current salary is irrelevant to your market value. The only thing sharing it does is give HR a ceiling to work from.
When they ask:
"What is your current CTC? We need it to process your application."
You say:
"I'd prefer to keep that confidential. I'm looking for X to Y LPA based on market research for this role."
That's it. Polite, firm, and immediately redirects the conversation to your expectation.
It's worth knowing that in several Indian states, asking candidates for salary slips during hiring is illegal or heavily discouraged. You are never obligated to produce one to get a job offer.
⚠️ NOTE
If a company insists on salary slips before hiring you, it may be a warning sign about how they treat people internally.
Let them speak first on expectations
When HR asks:
"What are your salary expectations?"
The best response is:
"I'd love to hear what the budgeted range for this role is first. I want to make sure we're aligned before I share a number."
Most HR professionals will respect this. It's professional, not aggressive.
If they push back and insist you name a number first, give a range where your target is the floor. If you want 18 LPA, say 18 to 22. Not 15 to 18.
People tend to offer the lower half of your range. Price that in.
Step 3: Handle the Standard HR Lines
Every developer who has negotiated has heard some version of these lines. Knowing them in advance removes the anxiety.
"We don't negotiate salaries."
Every company negotiates. This line exists to see if you'll fold.
A strong response is:
"I completely understand. Based on my research and experience, X LPA is the market rate for this role. Is there any flexibility to get closer to that?"
Stay calm. Do not apologize for asking. After you say this, there will often be a pause. That silence is not rejection. It is them calculating whether they want to fight for the budget or lose you.
"You're already at the top of our band."
Salary bands are internal guidelines. They are not laws. They exist to create structure, but they are revised when the right candidate appears.
A good response is:
"I understand. Could we explore a joining bonus or revisiting the band given my specific experience in X? I want to make this work."
This shows you want the role, and it opens a door to alternate compensation that is easier for them to approve.
"We're offering you a 30% hike."
This is the most seductive trap in Indian tech hiring.
A 30% hike on an underpaid base is still underpaid. If you earn 8 LPA and the market rate for the next role is 15 LPA, accepting 10.4 LPA means you've locked yourself into a smaller base for the next appraisal.
The right response is:
"I'm benchmarking against the market rate for this role, which is X to Y LPA. That's the range I'm targeting."
Do not reference your current salary. Market data is your anchor.
Step 4: Negotiate Total Compensation, Not Just Base
If the base salary truly cannot move, the negotiation isn't over. It's just shifting.
Most developers give up after one pushback on base. They don't realize that every one of these items is negotiable and often easier to get approved than a base revision.
- Joining bonus — a one-time payment that doesn't affect band structure.
- Early appraisal — ask for your first review at 6 months instead of 12.
- WFH flexibility — remote days can save 20,000 to 40,000 rupees a year.
- Notice period buyout — if you need to leave faster, ask them to cover the cost.
- Learning budget — 20,000 to 50,000 per year for courses and conferences.
The framing for these is:
"The base is at the edge of what I was expecting. I'd like to make this work. Can we look at [specific ask] to bridge the gap?"
💡 TIP
A joining bonus or early appraisal is often easier for HR to approve than a permanent base increase.
Step 5: Use Competing Offers the Right Way
A competing offer is your strongest negotiation tool.
The framing is:
"I have another offer at X LPA. I genuinely prefer to join here. Can you get closer to that number?"
This works because it becomes market proof, not just an expectation.
Rules:
- Do not fabricate them.
- Do not use them as threats.
- If you are in final rounds elsewhere, create honest urgency: "I'm in final rounds with a couple of other companies. I'd love to close this by end of week if we can get aligned."
🧠 NOTE
Use competing offers as leverage, not as an ultimatum.
A Note on Different Company Types
Negotiation works differently depending on the company.
- Service companies like TCS, Infosys, Wipro, Cognizant have rigid bands. Focus on joining bonus, level upgrade, or earlier appraisal.
- Mid-size product companies are the most negotiable in the Indian market.
- Early-stage startups often trade cash for equity. Ask about cliff, vesting, strike price, valuation, and exit terms.
- Large tech companies have structured bands but meaningful room in RSUs, joining bonus, and relocation.
⚠️ NOTE
If founders can't clearly explain ESOP terms, the equity is probably not worth the headline number.
What Not to Do
A few things that kill the negotiation before it starts:
- Accepting on the spot. Always ask for 24 to 48 hours to review the offer.
- Apologizing for negotiating. You are asking for fair market compensation.
- Going back more than once. One counter-offer is professional; two is acceptable if there is real movement.
- Negotiating only by email when a quick call would be faster and more human.
The Number That Actually Matters
Over a 5-year career, the developer who negotiates every offer earns 25 to 50 lakhs more than the one who doesn't.
That number isn't theoretical. It compounds. A higher base means a higher appraisal, a stronger next offer, and a better market signal for every career move after.
One 10-minute conversation, done right, changes the trajectory.
More From @code.clash
If this helped, I post regularly on JavaScript, React, and building a dev career in India.
Follow @code.clash on Instagram, @CodeClashIG on Twitter, and check out more posts at codeclash.site.




Comments
Leave a Comment