why hard work doesnt lead to career growth (and what actually does)
here's a hard truth that took me too long to learn: working hard is not enough.
you can show up early, leave late, close tickets faster than anyone else, and still get passed over for promotions. you can be the most reliable person on your team and still feel invisible.
why? because hard work without direction is like throwing darts with perfect consistency... except you're completely missing the bullseye.
the problem with hard work
the trap most engineers fall into is simple: we optimize for effort instead of impact.
we think career growth looks like this:
- close more tickets
- write cleaner code
- respond to messages faster
- stay later than everyone else
but here's what actually happens: you become really good at solving problems nobody cares about. your hard work remains invisible because it's not moving the needle on what matters.
i've seen brilliant engineers stuck at the same level for years, not because they weren't talented, but because they were solving the wrong problems with perfect execution.
product-market fit for your career
here's a mental model that changed how i think about career growth: treat your career like a startup.
- your product: your skills, effort, and the hours you put in
- the market: the expensive, painful problems your company needs solved
you can have the best product in the world - clean code, deep expertise, insane work ethic. but if there's no market for it (meaning: nobody at your company is losing sleep over the problems you're solving), you won't succeed.
startups fail all the time because they build products nobody wants. engineers stagnate for the same reason: they're perfecting skills nobody needs.
the goal isn't to be the hardest worker. it's to find the intersection between what you're good at and what your company desperately needs.
how to find your market
stop asking your manager "am i doing a good job?"
that question leads to polite, useless answers. "yeah, you're doing great!" doesn't tell you anything actionable.
instead, do market research. in your next 1:1, ask questions like:
- "what is the most frustrating part of your week?"
- "what is slowing the team down?"
- "if you could fix one thing about our process, what would it be?"
- "what keeps you up at night?"
you're looking for expensive pain - the problems that are costing real time, money, or sanity. these are the problems worth solving.
when you find that pain, you've found your market.
how to define your product
now that you know what problems matter, the next question is: what unique skills can you offer?
to find this, look for three signals:
-
problems you're naturally drawn to
- do you gravitate toward untangling legacy code? bridging gaps between teams? optimizing slow queries? these instincts reveal your natural strengths.
-
activities that give you energy while draining others
- if writing documentation feels easy to you but painful for your teammates, that's a signal. if debugging production issues excites you when it exhausts everyone else, pay attention.
-
compliments you brush off
- "oh, that was easy" is usually a sign you're undervaluing something you're uniquely good at. if people thank you for something that felt effortless, that's your superpower.
your product is the intersection of these three: what you're naturally good at, what energizes you, and what others struggle with.
the value loop: a three-step framework
once you've identified your market (the expensive pain) and your product (your unique skills), here's how to execute:
step 1: solve for one
find one person with a nagging problem and fix it completely for them.
don't try to boil the ocean. find your manager who's manually generating reports every week. find the teammate who loses hours to a repetitive task. fix that one thing, end to end.
example: your manager complains about spending two hours every friday compiling metrics. you automate it. done.
step 2: generalize the solution
turn that one-off fix into something reusable.
- a script becomes a documented tool
- a workaround becomes a template
- a fix becomes a process others can follow
this is where you go from "helpful" to "valuable."
step 3: announce the product
this is the step most engineers skip, and it's the most important one.
share your solution with the wider team. post in slack: "i noticed we were losing time on X, so i built Y. it's in the repo now and should save us Z hours per week."
this signals that you're the person who solves this class of problem. you move from being a good worker to being essential.
visibility matters. if you solve problems silently, you're just "helpful." if you solve problems publicly, you become the go-to person.
for outsourced engineers: how to stop being a commodity
if you're an outsourced engineer or contractor, everything above applies double - but there's an extra challenge.
as an outsourcer, you're at higher risk of being seen as a commodity. someone who converts tickets into code. if you only "work hard," you're easily replaceable by someone cheaper.
here's how to apply the value loop when you're not a full-time employee:
market research (even as an outsider)
you might not have access to company all-hands, but you have a point of contact - a CTO, engineering manager, or founder.
don't just ask "is my code quality good?" (they'll say yes to be polite).
ask: "what is delaying the release cycle right now?" or "what's the most frustrating part of your week?"
in startups, the expensive pain is usually speed and stability. if they're manually deploying or spending hours fixing bugs before demos, that's your target.
find your wedge (small wins, big impact)
don't try to refactor their entire legacy codebase - that's expensive and risky for an outsourcer.
find one specific friction point you identified from your market research.
example: the startup founder complains that onboarding new developers takes too long because the local setup is a mess. instead of just coding your feature, spend a little extra time to dockerize the setup or write a one-click setup script.
announce your value (the pivot from contractor to partner)
this is critical. if you fix a problem silently, you're just a "good contractor." if you announce it, you become a consultant.
post in their slack: "i noticed we were losing time on manual deployments, so i wrote a script that automates it. it's in the repo now and should save us about 5 hours a week. here's how to use it."
why this works for outsourcing:
- visibility: outsourcers are often "out of sight, out of mind." solving expensive pain forces leadership to pay attention to you.
- differentiation: most outsourced devs just want to close the ticket and bill hours. by solving process problems, you signal that you care about the business, making it much harder for them to fire you or swap you for a cheaper option.
the bottom line is this: hard work is the baseline, not the differentiator.
everyone around you works hard. what separates people who grow from people who stagnate is whether they're solving the right problems - the expensive, painful ones that nobody else is tackling.
find the pain. match it to your strengths. solve it. announce it.
that's the formula.