How to evaluate a job offer beyond money.

•

•

What the Salary Does Not Tell You

I remember sitting in my kitchen at 3:15 AM three years ago, staring at a glowing monitor while a production database in a logistics startup I’d joined six months prior slowly choked to death. The salary was excellent—enough to make me feel like I’d finally “made it”—but the compensation didn’t account for the fact that I was the only person who knew how the deployment pipeline worked. When people ask me how to evaluate a job offer beyond money, they usually expect a lecture on “company culture” or “mission statements.” Forget that. Culture is just what people say in All-Hands meetings; what you actually need to care about is the unwritten architecture of your daily life.

I’m not here to give you a checklist of HR-approved buzzwords or help you optimize your LinkedIn profile. Instead, I want to talk about the things that actually matter when the pager goes off: the maturity of the on-call rotation, the real cost of technical debt, and whether the engineering manager actually understands what a deployment entails. This is a collection of notes based on everything that went wrong in my previous roles, so you don’t have to repeat my mistakes.

Table of Contents

Why Total Compensation vs Salary Is a Dangerous Lie

Why Total Compensation vs Salary Is a Dangerous Lie

When a recruiter starts talking about “total compensation,” my internal alarm goes off. On paper, a package looks massive because it’s padded with stock options, performance bonuses, and a complex employee benefits package analysis that looks great in a PDF. But here’s the reality: paper wealth doesn’t pay the mortgage if the company goes belly-up or if the vesting schedule is tied to a metric that’s impossible to hit. I’ve seen engineers walk away from a higher base salary because they chased a “life-changing” equity grant that ended up being worth exactly zero when the startup’s valuation cratered.

The math gets even murkier when you factor in the hidden costs of your time. If a role offers a high total compensation vs salary spread but requires you to be on-call for a legacy monolith every other weekend, you aren’t actually getting paid more; you’re just selling your sanity at a discount. I learned this the hard way at a logistics startup where the “upside” was huge, but the lack of work-life balance considerations meant I was too burnt out to actually enjoy the money I was making. You have to treat these numbers like a production budget: if you don’t account for the overhead of your own exhaustion, the math will never actually work out in your favor.

The Company Culture Assessment That Saves Your Sanity

The Company Culture Assessment That Saves Your Sanity

When people talk about “culture,” they usually mean free snacks or a ping-pong table in the breakroom. That’s useless. I’ve learned the hard way that a real company culture assessment happens in the gaps between the official slides. You need to find out how they handle failure. During your interview, ask them about the last time a production deployment went sideways. If the interviewer starts talking about “accountability” in a way that sounds like finger-pointing, run. You aren’t looking for a perfect team; you’re looking for a team that conducts a blameless post-mortem instead of looking for a scapegoat.

You also need to dig into the actual work-life balance considerations by asking about the on-call rotation. Don’t ask “Is there a good balance?” because everyone will say yes. Instead, ask how many times a developer was paged during their scheduled vacation last year. That number tells you more about the reality of the job than any mission statement ever will. I’ve spent too many weekends debugging a distributed system because a company’s “flexible” culture actually meant “we expect you to be reachable 24/7.” If they can’t give you a straight answer about how they protect their engineers’ time, they probably aren’t protecting it.

The Practical Checklist: What I actually look for in the fine print

  • Audit the on-call rotation before you sign. I don’t care how many free snacks are in the kitchen if the “primary responder” is expected to be at their laptop every single weekend. Ask specifically: “What was the volume of P1 incidents last month, and how many people are actually in the rotation?” If the answer is vague, run.
  • Dig into the technical debt, not the tech stack. Everyone says they use Kubernetes and Go, but that tells you nothing. Ask how they handle deployments and how long it takes for a single line of code to get from a developer’s machine to production. If it’s a manual, terrifying process involving three different managers, you aren’t an engineer; you’re a firefighter.
  • Check the “meeting-to-coding” ratio. I’ve spent entire weeks at previous jobs where I felt like I was just a highly paid secretary for stakeholders. Ask how much time is spent in synchronous meetings versus deep work. If they can’t give you a straight answer, expect your calendar to be a graveyard of “quick syncs.”
  • Evaluate the growth path, but skip the HR buzzwords. Don’t ask about “career ladders”—ask about the last person in your role and where they went. Did they get promoted? Did they move to a different team? Or did they burn out and disappear? You want to see a history of internal movement, not just a static org chart.
  • Look at the tooling and the developer experience. It sounds pedantic, but if a company makes you wait twenty minutes for a local build or forces you to use a proprietary, broken internal deployment tool, your daily life will be a slow grind of frustration. A company that invests in its engineers’ tools is a company that respects their time.

The Checklist for When You’re Actually Working

Ask about the on-call rotation and the “incident response” reality; a high salary won’t feel worth it when you’re debugging a distributed system failure on a Saturday night because the team has no formal rotation.

Dig into the actual technical debt and deployment frequency; if they tell you they “move fast,” ask how often they break things and how much of their sprint is spent just fixing what they broke last week.

Look past the perks and check the decision-making process; I’ve learned that working in a place where every minor architectural change requires three layers of management approval is a much faster way to burn out than working long hours.

The Final Debugging Step

The Final Debugging Step in career evaluation.

At the end of the day, evaluating an offer is just another form of system design. You aren’t just looking at the input (the salary and the equity); you are looking at the operational constraints of your life for the next two years. If you ignore the on-call rotation, the technical debt, or the reality of how decisions are actually made in a meeting, you are essentially deploying code without a testing environment. You might think you’ve optimized for the highest possible compensation, but if the culture is toxic or the stack is a decaying monolith, you’ve actually just engineered a massive failure into your personal life.

I’ve learned the hard way that a high salary is a very poor consolation prize when you’re staring at a broken production environment at midnight because the team lacks the autonomy to fix it. Don’t be afraid to ask the uncomfortable questions during the interview process; it is much easier to negotiate a better remote work policy now than it is to renegotiate your sanity after you’ve already signed the contract. Choose the role that offers you the best chance to grow, to build things that actually work, and to sleep through the night. Everything else is just noise in the logs.

Frequently Asked Questions

How do I actually sniff out technical debt during a standard interview without sounding like a jerk?

Don’t ask, “How much technical debt do you have?” They’ll lie, or they won’t even know. Instead, ask about their last major production incident. Ask how they handled the post-mortem and what actually changed in the codebase afterward. If they can’t name a single architectural change made to prevent a repeat, you’re looking at a place that just fights fires instead of fixing the arsonist. That’s your signal to run.

If a company says they have a "flexible" remote policy, what specific questions should I ask to make sure they aren't just lying to get me in the office?

“Flexible” is a dangerous word in a job description. It usually means “we don’t have a policy yet,” which is code for “your manager decides based on their mood.”

How much weight should I really give to the equity package if the company hasn't had a liquidity event in years?

Treat it as a lottery ticket, not a part of your retirement fund. If they haven’t had a liquidity event in years, that paper wealth is just a theoretical number on a spreadsheet. I’ve seen too many engineers burn out chasing “life-changing” equity that never actually materialized. Unless there’s a clear, documented path to an exit or a secondary market, value it at zero in your mental math. Focus on the base salary; it’s the only thing that pays for your groceries.

Is it worth turning down a higher salary if the on-call rotation looks like a nightmare?

Is it worth it? Usually, no. I’ve seen people take a 30% bump only to realize they’re effectively working a second, unpaid job every time a service goes sideways at midnight. A high salary is just a way to compensate you for the sleep you aren’t getting. If the on-call rotation is a mess, that money will vanish into caffeine, burnout, and resentment. Calculate your hourly rate based on actual interruptions, not the contract.

Tomasz Wierzbicki

About Tomasz Wierzbicki

I am not interested in arguing about frameworks. I am interested in why the thing broke at two in the morning and what would have prevented it. Most of what I know came from being wrong in production and writing it down afterwards.