Important
There’s a fantasy version of career advice that goes like this: carefully evaluate your values, find companies that align with them, negotiate from a position of strength, and choose the role that perfectly matches your skills and aspirations. Then, through excellent performance and clear communication, advance steadily while being fairly compensated for your growing contributions.
That’s not how it works for most people, most of the time.
You Work with What’s Available
When you need a job - whether you’re graduating, got laid off, need to relocate, or just need to get out of a bad situation - you don’t get to choose from an idealized menu of perfect opportunities. You get to choose from what’s actually hiring at that moment in your geographic area (or remote market) in your field at your experience level.
Maybe there are three relevant openings. Maybe there’s one. Maybe the company culture is questionable, or the role isn’t exactly what you want, or the commute is longer than you’d like, or the management structure gives you pause. You make the best choice available and then you deal with it.
That’s reality. The job market is not a perfect marketplace where supply meets demand at the optimal equilibrium. It’s lumpy, timing-dependent, and often arbitrary. You take the best opportunity you can get when you need it.
Lock In Your Compensation at the Start
Here’s a critical lesson that many engineers learn too late: the time to maximize your compensation is when you’re interviewing and negotiating your initial offer. That’s when you have leverage. That’s when the company has decided they want you and is willing to pay to get you.
Once you’re an employee, the dynamics change completely. Annual raises are typically modest - maybe 3% in a good year, often less. They’re determined by budget allocations and salary bands and performance review processes that have little to do with your actual value or contribution. Even if you’re doing excellent work, even if you’ve taken on more responsibility, even if you’re generating significant value - your raise will be whatever the company has budgeted for your level and rating.
Want a 20% increase in compensation? You’re probably not getting it from your current employer through normal raises. You get it by changing jobs.
So negotiate hard at the beginning. Research market rates. Ask for more than you think they’ll give you. Get everything in writing - base salary, bonus structure, equity if relevant, benefits. Don’t accept the first offer unless it’s already at the top of your range. This is the moment you have power.
Then You Show Up and Do the Work
Once you’re in the job, your day-to-day reality is dealing with whatever the actual work environment turns out to be. Maybe your manager is great, maybe they’re mediocre, maybe they’re actively incompetent. Maybe the projects are interesting, maybe they’re tedious. Maybe the company culture is as advertised, maybe it’s not.
You don’t get to redesign the company. You decide how to operate within it.
This means understanding the real rules - not the ones in the employee handbook, but the ones that actually govern how things work. What does your manager actually care about? What gets rewarded? What gets punished? What’s the real decision-making process? Who has actual influence?
It means picking your battles. Not every disagreement is worth fighting about. Not every inefficiency needs to be fixed. Not every instance of unfairness requires you to fall on your sword. Save your capital for things that actually matter to you or that you can actually change.
It means finding ways to make the work tolerable or even satisfying despite the dysfunction. Maybe that’s the technical challenges. Maybe it’s the team you work with. Maybe it’s just the paycheck and benefits while you build skills for the next move.
Managing Expectations and Protecting Yourself
You’re not going to change the ownership structure of your company. You’re not going to single-handedly fix a toxic culture. You’re not going to convince executives to abandon quarterly earnings pressure in favor of long-term thinking.
What you can do:
- Document your work and achievements. Keep a record of projects, contributions, and impacts. You’ll need this for performance reviews, promotions, and especially for your next job search.
- Build skills that are portable. Don’t just become an expert in your company’s specific proprietary systems. Develop expertise that translates to other employers.
- Maintain your network. Build relationships and stay connected with colleagues, former coworkers, and industry contacts. Most jobs come through referrals, not applications.
- Keep your resume current. Update it when you finish major projects or gain new skills, not just when you’re job hunting.
- Understand your finances. Know how long you could survive without this job. Having even a modest emergency fund changes the power dynamic.
- Watch for warning signs. Private equity acquisition? Mass layoffs? Executives talking about “efficiency”? Start looking before you’re forced to.
It’s Not Forever
Here’s the thing: you don’t have to stay. The average engineer changes jobs every few years. Some situations are worth sticking with - good manager, interesting work, fair compensation, reasonable culture. Many aren’t.
If you’re in a bad situation, you don’t have to fix it or endure it indefinitely. You can leave. Maybe not today, maybe not this month, but you can start looking. You can build toward the next opportunity.
And when that next opportunity comes, remember: negotiate your compensation then, because you won’t get it later. Evaluate what’s actually available, not what you wish was available. Make the best choice you can. Then show up and deal with the reality of it until it’s time for the next move.
This is how most careers actually work. Not the fantasy version from career advice books, but the real version where you make the best of imperfect situations while building toward better ones.