When I started my career, I thought my value was tied to how clean my code was or how fast I could fix a bug.
A few years in, I’ve realized that the most exhausting days aren't spent debugging complex algorithms. They are spent explaining to product managers why a "simple feature" requires a database migration, or negotiating deadlines with stakeholders who don't understand technical debt.
How do you manage non-technical stakeholders? What's your framework for pushing back on unrealistic deadlines without sounding uncooperative?
Portfolio: ahmershah.dev
GitHub: ahmershahdev
A great manager once told me: "Product managers don't care about technical debt; they care about feature velocity." If you want to justify fixing technical debt or doing a complex migration, you have to tie it back to how it impacts their roadmap. "Doing this now means future features will take two days instead of two weeks." Speak their language, and the alignment happens naturally.
The most exhausting days are definitely the communication heavy ones. I’ve found that building trust early makes a massive difference. If you only ever talk to stakeholders when things are broken or when you're saying "no," they start to see engineering as a bottleneck. Sharing small, proactive updates and involving them in the technical wins helps build a partnership, so they trust your judgment when you eventually do have to push back.
My go-to framework for pushing back is the "Yes, and..." approach combined with trade-offs. Instead of saying a deadline is impossible, I say, "We can absolutely hit that date, but to do so safely, we will need to cut scope on these two items, or accept that we will need a dedicated two-week sprint afterward to clean up the technical debt." Giving them ownership of the trade-off removes the friction and makes it a collaborative decision.
This is the ultimate transition from a junior to a senior engineer. The mindset shift happens when you stop communicating in technical limitations and start communicating in business risk. Instead of explaining the mechanics of a database migration, I frame it around data integrity and system downtime. When stakeholders understand that rushing a feature might cause a outage that affects users, the timeline conversation changes completely.
Sagar Kumar
It really comes down to visibility. Non-technical stakeholders often think features are just toggles you turn on and off because they can't see the underlying architecture. I’ve started using simple visual analogies or high-level flowcharts during planning sessions. Once they see how many connected systems a "simple change" actually touches, the unrealistic deadlines usually dissolve on their own.