Asking for Money With Something to Point at

Most career coaches will tell you that knowing how to ask for a raise is all about “visibility” and “personal branding,” as if you’re selling a lifestyle product instead of specialized technical labor. They suggest you walk into your manager’s office with a polished presentation and a smile, treating a compensation negotiation like a TED Talk. It’s exhausting, and frankly, it’s a lie. In the world of backend engineering—especially when you’re the one untangling a decade of legacy spaghetti code at 2:00 AM—your value isn’t in how well you perform confidence; it’s in the sheer, unglamorous stability you provide to the system.

I’m not here to teach you how to perform. I’m going to show you how to build a technical case that is as indisputable as a successful unit test. I want to talk about the messy, unscripted reality of the conversation: what happens when the budget is frozen, when your manager stalls, or when your primary leverage is actually the high cost of replacing your specific institutional knowledge. We are going to skip the happy path and focus on the actual mechanics of securing the compensation you’ve already earned.

Table of Contents

Why Your Market Value Research Fails in Person

Why Your Market Value Research Fails in Person

Most people approach market value research like a documentation update: they gather the data, check the version numbers, and assume the deployment will be seamless. You spend hours on Glassdoor or levels.fyi, building a tidy spreadsheet of what a backend dev with your stack should earn. But here is what the tutorials skip: data is static, but a negotiation is a live system under load. When you actually sit down for your performance review preparation, that spreadsheet becomes a liability if you treat it as a script rather than a baseline.

The failure happens because raw numbers lack context. You can show up with a list of industry averages, but if you can’t bridge the gap between a market median and your specific contribution, the conversation stalls. You aren’t just negotiating for a number; you are demonstrating business impact within the specific, often messy constraints of your current codebase. If your research stays at the surface level, your manager will see a commodity. To win, you have to move past the generic data and prove why your specific expertise prevents the exact type of outages that cost the company millions.

The Performance Review Preparation No One Warns You About

The Performance Review Preparation No One Warns You About

Most people treat performance review preparation like a checklist of completed Jira tickets. They show up, list their features, and expect a reward for being a reliable cog in the machine. But after twenty years of maintaining legacy systems, I know that stability is often invisible. If you only present what went right, you’re just proving you can follow instructions. To actually move the needle, you have to shift from listing tasks to demonstrating business impact. You aren’t just fixing bugs; you are reducing technical debt that costs the company money, or you are stabilizing a payment gateway that prevents churn.

The part the tutorials skip is the emotional friction of the actual meeting. You can have all the market value research in the world, but if you haven’t prepared for the “we don’t have the budget” deflection, you’ll stall. I’ve seen brilliant engineers fold the moment a manager uses a soft tone to deliver hard news. You need to treat this like a system migration: anticipate the failure states. Don’t just walk in with a number; walk in with a documented history of value that makes it mathematically difficult for them to say no.

The edge cases you need to handle before the meeting

  • Stop treating your achievements like a grocery list. If you just list tasks, you’re a commodity. I don’t care that you closed fifty tickets; I care about the one critical race condition you prevented that would have cost the company six figures in transaction failures. Link your output to the bottom line, or you’re just noise in the system.
  • Audit your “invisible” maintenance work. In backend work, the most valuable stuff is often the stuff that didn’t happen—the outages that were averted because you refactored a legacy module. If you don’t explicitly document the stability you provide, your manager will assume everything is running fine by magic, not by your effort.
  • Prepare for the “Budget Constraint” exception. When they say, “We’d love to, but there’s no budget,” don’t just nod and accept the error code. Ask for the specific parameters required to unlock that budget in the next cycle. If they can’t give you a clear logic gate, they aren’t actually constrained; they’re just stalling.
  • Build your own documentation of impact. I keep a running log of every time I had to dive into someone else’s spaghetti code to fix a production bug. When it comes time for the raise, I’m not guessing my value; I’m presenting a pull request of my entire year’s worth of contributions.
  • Learn to negotiate the non-monetary variables. If the salary cap is a hard limit, look at the other components of the stack: equity, remote flexibility, or a dedicated budget for specialized training. If they can’t increase the base integer, see if they can increase the overall package complexity.

The reality check

Market research is just data; the negotiation is about how that data applies to the specific, messy constraints of your current team and budget.

Don’t wait for the review to surface your wins; if you haven’t documented the edge cases you solved six months ago, they don’t exist to your manager.

A raise isn’t a reward for past stability, it’s a technical adjustment to ensure your compensation matches the actual complexity of the systems you’re currently keeping alive.

The logic error in the negotiation

Most people approach a raise like a tutorial: they follow the steps, present the data, and expect the system to return a success code. But a salary negotiation isn’t a happy path; it’s edge-case management. You aren’t just arguing for a higher number; you are debugging the company’s perception of your value, and that is where most people’s logic fails.

Pernille Askeland

The Deployment Phase

Preparing for The Deployment Phase.

At the end of the day, getting a raise isn’t about a sudden burst of confidence or a magic script you read in a LinkedIn post. It’s about the groundwork you do when no one is watching—the documentation of your impact, the deep dive into your actual market value, and the realization that your performance isn’t just a series of completed tickets. You have to move past the “happy path” where everything goes according to plan and prepare for the edge cases: the budget freezes, the hesitant manager, and the awkward silences. If you treat this process like a production deployment, you won’t be caught off guard when the initial response isn’t a perfect success code.

I spent years fixing bugs in legacy systems that were never properly maintained, and I realized that people are much the same. If you don’t advocate for your own value, you become part of the background noise—reliable, but overlooked. Don’t wait for a system update that is never coming. Take the initiative to refactor your career trajectory on your own terms. It will be uncomfortable, and it will feel like you are pushing code into a high-stakes environment without enough testing, but that is exactly where growth happens. Stop waiting for permission to be compensated for the complexity you actually manage.

Frequently Asked Questions

What do I do if they acknowledge my value but claim there is "no budget" for a salary increase?

When they say “no budget,” they aren’t lying, but they are closing a door. Don’t push for the cash immediately; you’ll just hit a wall of bureaucracy. Instead, pivot to the non-monetary stack. Ask for a structured timeline for the next budget cycle or trade the salary for something that reduces your friction: more PTO, a specific training budget, or a title change. If they won’t invest in your wallet, make them invest in your resume.

How do I handle the awkward silence after I've actually stated my number?

The silence feels like a system hang, but it isn’t. Most people panic and start backpedaling, offering “or whatever you think is fair” just to fill the void. Don’t do that. You’ve just pushed a change to production; now you wait for the logs. Let the silence sit. It’s not a rejection; it’s their turn to process the input. If you speak first, you’re just debugging their decision for them.

If I get a "not right now," how do I negotiate a specific timeline or set of milestones so I'm not stuck in the same position in six months?

If you hear “not right now,” don’t just nod and walk away. That’s how you end up in the same loop six months from now. You need to treat this like a technical specification. Ask: “What specific metrics or deliverables change my status from ‘not now’ to ‘yes’?” Get them to define the edge cases. If they can’t give you a clear roadmap of milestones, you aren’t negotiating; you’re just waiting for a bug that never gets patched.

About Pernille Askeland

I write the part the tutorial skipped: what it looks like when it breaks.

Scroll to Top