When I got my first dev job offer, I almost accepted it on the spot. The number looked fine. More than I was making before (which was nothing). I was excited just to have an offer.
Then a friend told me something that changed my entire approach: "The first number they give you is never the real number."
That single piece of advice made me an extra 40% on my starting salary. And I want to share exactly how I did it, step by step, because this stuff isn't as scary as it sounds.
The Situation
I was 18 at the time. Zero professional experience. A portfolio of personal projects, some freelance work, and a lot of SwiftUI knowledge.
I applied to a small company that was building a mobile app. After two technical interviews and a take-home project, they gave me an offer.
The offer was decent. Slightly below the market average for juniors in my area, but not insultingly low. Most people would've taken it.
I almost did.
Why Most Juniors Don't Negotiate
Let me explain the mindset I had to overcome, because you probably have the same one:
"I should be grateful they even offered me a job." This is the most common trap. Yes, gratitude is good. But accepting a low offer out of gratitude isn't noble. It's leaving money on the table.
"I don't have leverage. I'm a junior." Wrong. If they made you an offer, they want YOU. The interview process costs them time and money. They don't want to restart it. That's your leverage.
"They'll rescind the offer if I negotiate." Almost never happens. I've talked to hiring managers about this. They expect negotiation. A company that rescinds an offer because you asked for more money is a company you don't want to work for anyway.
"I don't know what I'm worth." This one's fair. But it's fixable. Let me show you how.
Step 1: Research Like Your Paycheck Depends on It (Because It Does)
Before I responded to the offer, I spent two days researching. Here's exactly what I did:
Glassdoor and similar sites. I looked up junior developer salaries at similar companies in my area. Not just one data point. I collected 15-20 salary entries and calculated the range.
Talked to other developers. I asked 5 people in my network what juniors were making at their companies. You'd be surprised how willing people are to share this info if you just ask.
Checked job postings. Some companies post salary ranges. I filtered for junior positions with similar tech stacks and noted every range I could find.
After all this research, I had a clear picture. The offer was at the 25th percentile for my role. Not terrible, but well below the median.
The number I settled on: I wanted to ask for the 60th-70th percentile. Not the top of the range (that would be unrealistic for a junior), but solidly above average. This came out to roughly 40% above the initial offer.
Step 2: The Email That Changed Everything
I didn't negotiate over the phone. I did it via email, and here's why: email gives you time to think. No pressure to respond instantly. No awkward silences. No accidentally saying "sure" when you meant to say "can we discuss this?"
Here's the structure of what I wrote (obviously adapted, not the exact email):
Paragraph 1: Enthusiasm. I started by telling them how excited I was about the role. Not fake excitement. I genuinely wanted the job. Making that clear upfront sets the right tone.
Paragraph 2: The ask. I stated the number I wanted. Direct and clear. "Based on my research into market rates for this role and the skills I bring, I'd like to discuss a salary of [X]."
Paragraph 3: The justification. I listed three specific things:
- A project from my portfolio that directly related to their product
- A skill I had that they specifically mentioned needing during the interview
- Market data (without being preachy about it, just "from what I've seen, the range for this role is X to Y")
Paragraph 4: Flexibility. I ended with something like "I'm open to discussing this and finding a number that works for both of us." This signals that you're reasonable and not giving an ultimatum.
The whole email was maybe 200 words. Short. Professional. Not aggressive.
Step 3: The Waiting Game
I sent the email and then the hardest part: I waited.
They took two days to respond. Those were the longest two days of my life. I checked my email approximately 400 times.
Their response: they couldn't match my ask exactly, but they came up with a counter-offer that was about 35% above the original number. They also threw in some extra PTO days and a flexible work arrangement.
I asked for one more small bump. They agreed. Final result: 40% above the original offer.
The Techniques That Actually Work
Let me break down the specific tactics that made this work:
Never Give the First Number
If they ask your salary expectations early in the process, deflect. "I'd like to learn more about the role before discussing compensation" works every time. Let them anchor first. Their anchor is usually lower than what they're willing to pay.
Use Specific Numbers
Don't say "I want around 50K." Say "I'm looking for 52,500." Specific numbers signal that you've done research and aren't just throwing out a random figure. Psychologically, people take precise numbers more seriously.
Talk About Value, Not Need
"I need more money because my rent is expensive" is a terrible negotiation tactic. "My SwiftUI experience will save your team 2-3 months on the onboarding screen redesign" is a great one.
They don't care about your expenses. They care about what you'll bring to the company. Frame everything in terms of value.
Have a BATNA (Best Alternative to Negotiated Agreement)
This is the single most powerful negotiation concept. Basically: what happens if this negotiation fails?
When I was negotiating, I had two things going for me:
- I was still freelancing and making decent money
- I had another interview process in progress
I didn't threaten to walk away. I didn't even mention the other option. But KNOWING I had alternatives made me calmer and more confident. That confidence comes through in everything you write and say.
If your BATNA is "I'm desperate and this is my only option," you'll negotiate from fear. Work on improving your alternatives before you negotiate.
Ask for More Than You Want
I asked for about 50% more than the original offer, knowing I'd be happy with 35-40%. This gave them room to "win" by negotiating me down, while I still ended up above my target.
This isn't being dishonest. It's how negotiation works. Both sides start high/low and meet somewhere reasonable.
What About Non-Salary Benefits?
If they genuinely can't move on salary (some companies have strict bands), negotiate other stuff:
- Remote work days. Even 2-3 days remote can save you commute time and money.
- Learning budget. Money for courses, conferences, and books. This is easy for companies to approve.
- Equipment. A better laptop, monitors, or a home office budget.
- PTO. Extra vacation days are worth real money.
- Title bump. Going from "Junior Developer" to "Developer" on your resume can pay off in your next negotiation.
- Review timeline. "Can we do a salary review at 6 months instead of 12?" This is surprisingly negotiable and sets you up for your next raise.
The Compounding Effect
Here's why negotiating your first salary matters so much: every future raise and job offer is based on your current compensation.
If you accept 50K when you could've gotten 70K, you're not just losing 20K in year one. You're losing 20K+ every year for the rest of your career (because raises are usually percentage-based).
Over a 10-year career, that one negotiation can be worth $200,000+. And all it took was an uncomfortable email and two days of waiting.
Common Mistakes to Avoid
Don't apologize for negotiating. "Sorry to ask, but..." No. You're not sorry. You're having a business discussion.
Don't negotiate against yourself. If you ask for X and they go silent, wait. Don't panic and lower your number before they even respond.
Don't lie about other offers. If you say you have another offer and you don't, it can backfire spectacularly. If you DO have another offer, absolutely mention it.
Don't be a jerk. Confident and firm is good. Aggressive and demanding is bad. Remember, these are your future coworkers.
Don't accept verbally and then try to renegotiate via email. If you say yes, you're done. Get the full written offer before committing to anything.
The Bottom Line
Negotiating salary isn't a natural talent. It's a skill. Like coding, it gets easier with practice.
Your first negotiation will be awkward. You'll feel like you're being unreasonable. You'll worry they'll say no. And none of those feelings mean you shouldn't do it.
Companies budget for negotiation. The offer they give you has room built in. The only question is whether that extra money goes to you or stays in their budget.
Might as well be yours.
I've put together career resources for developers, including salary negotiation scripts, interview prep, and job search strategies:
Telegram: t.me/SwiftUIDaily - career tips and dev advice
Boosty: boosty.to/swiftuidev - Job Interview Kit, Career Pivot Playbook, and 25+ other developer resources
Did you negotiate your salary at your current job? Or did you accept the first offer? No judgment either way. I'm curious what the community's experience is. Share in the comments.
Top comments (0)