From Developer to Tech Lead: The Hidden Struggles No One Talks About

Copy link

So let's assume you’re a senior developer, mostly backend. You've crushed APIs, optimized databases, refactored messy codebases. 
You're the "go-to" person for hard problems. Naturally, someone says, “Hey, you should lead this new project.” 

You think, Sure, I’m senior. How hard can it be? 
Spoiler alert: it’s hard. 

Revisiting “Stress Relief”: 10 Years, 10 GIFs - Inside The Film Room


And it’s not the same as just writing great code. 

Becoming a tech lead isn't a promotion in the way we usually think. It’s a career pivot — from building things to building people (and processes, and roadmaps, and a million little things no one warned you about). Especially if you're leading a mix of backend, frontend, and maybe even mobile developers... and you’ve only really lived in backend land before. 

 

Estimations: The Great Guessing Game 

As a backend dev, when someone asked for an estimate, maybe you'd say: "Yeah, adding this API endpoint? Give me an hour." 

Now as a tech lead, you’re estimating: 

  • How long it’ll take the frontend dev to design the new flow. 
  • How long QA will need to test the feature. 
  • How many meetings will randomly pop up next week. 
  • How long it’ll take everyone to understand what you even mean. 

      [the list goes on...]

Suddenly it’s not “one hour.”, it’s more like “3-5 days with buffer, assuming the design doesn't change halfway.” 

And if you’re mostly backend and someone asks, "How long for this React form?" you're just sitting there like, Uh... how long is a piece of string? 

So here are some of the lessons I personally learned (painfully): 

  • Always ask the team doing the work to help estimate. 
  • Break things way smaller than you think is necessary. 
  • Always add extra buffer time, because things will break. 
  • Don't let wishful thinking win ("Yeah, they should be able to finish it by Friday!" → famous last words.) 

 

Ownership: It's Not Automatic 

You’d think experienced developers just take initiative, right? 

Nope. 

Sometimes you’ll create a ticket, and it’ll sit there untouched until you ask about it. Or worse - someone will finish something halfway, hand it off, and say, "Well, I didn’t know what to do next.". Especially tricky if you're backend and the frontend team is looking at you like, "Tell us exactly what you want." 

You’re thinking: Use your judgment! 
They’re thinking: You’re the lead. Make the call. 

Here are some of the things that could help (from a personal experience): 

  • Be annoyingly clear about what ownership looks like. ("You own the form, including validation, error handling, and success flow.") 
  • Create space for questions, but also gently push people to think through problems themselves. 
  • Celebrate small wins - when someone solves something without waiting for instructions, shout it out. 

It's slow. But eventually, you get there. 

 

Dealing With Underperformance: When Code Isn’t the Only Problem 

Sometimes, someone on your team just isn’t pulling their weight. 

Maybe the frontend developer is constantly pushing broken UI. 
Or the backend dev keeps missing edge cases. 

And guess what, you’re stuck coaching them up. 

Fun fact: As a tech lead, you now do... performance management. (Yay?) 

When I first faced these kinds of situations, I made all the classic mistakes. At the beginning, I was way too nice - I didn’t want to hurt anyone’s feelings. I could see people trying (or sometimes, not trying) and I gave everyone the benefit of the doubt. Later, after frustration built up, I swung to the opposite extreme - I became way too harsh. I wanted people to feel the disappointment I felt when they didn’t step up.

Neither approach worked. (Shocker )

The key isn’t being nice or being harsh - it’s being clear.

So here are some of the things that helped me: 

  • Give very specific feedback ("The form isn’t accessible" is better than "The form sucks.") 
  • Pair struggling devs with stronger ones 
  • Set measurable goals ("All new API endpoints must have at least one integration test before merging" is a goal, "Be more careful when you code" is not) 
  • Accept that progress might be slow, or sometimes nonexistent - and that’s not always your fault

 

The Mental Load: Leadership Is Heavy 

Nobody talks enough about how much leadership messes with your head. 

You’ll lie awake thinking: 

  • Did I explain that clearly? 
  • Is the team blocked and too shy to say so? 
  • Why does everything take longer than it should? 
  • Am I a bad leader? Should I go back to just writing code?! 

When you’re a dev, you mostly worry about your own work. When you’re a lead, you worry about everyone’s work. You can’t just fix everything yourself. You have to trust people. Coach them. Sometimes let them fail. That’s the real shift - and it’s exhausting if you don't learn to let go a little. 

 

Real Talk: Not Every Senior Dev Should Be a Tech Lead 

Here’s something I wish someone told me earlier: Being an amazing developer doesn't mean you’ll love leadership

Some senior developers thrive deep in code. They build crazy good architectures, solve the hardest problems, and mentor casually without "leading". Others (maybe you) actually enjoy the messy people side — helping teammates grow, setting visions, moving parts around. 

Both are valid career paths. 

You don’t have to “graduate” into management just because you're senior. 

 

10 Things They Don’t Tell You About Becoming a Tech Lead 

  1. You won't write much code anymore (and when you do, it'll usually be during lunch, at night, or when the sprint is already half over)
  2. Clear is kind, vague is cruel
  3. Estimations are always wrong (just make them less wrong). Perfect estimates don’t exist and planning for surprises is part of the job. 
  4. Not everyone wants to lead - and that's okay. 
  5. You’ll have to explain things 10x more than you think. What’s obvious in your head isn’t obvious to your team. Overcommunicate. 
  6. Your success is measured by your team's output, not yours. If they win, you win. If they’re stuck, you’re stuck. 
  7. Feedback should be regular, not just during crises. Waiting until someone messes up badly to give feedback is a leadership fail. 
  8. Some problems aren't fixable immediately. 
  9. Protect your team's focus, meaning push back against random tasks, last-minute scope changes, and unnecessary meetings. Be the shield, not the megaphone. 
  10. You don’t have to have all the answers. It’s okay to say “I don’t know yet, let’s figure it out together.” Your job isn’t being the smartest, on the contrary, it’s guiding the team toward the right solutions. 

 

Final Thoughts 

If you’re stepping into tech lead for the first time, especially from a backend background, just know: 

  • You will mess up estimates
  • You will get frustrated when people don’t take ownership
  • You will doubt yourself 
  • You will grow faster than you ever thought possible

Leading a mixed team (backend, frontend, QA, maybe even UX) is hard. You’ll realize technical skills are just the starting point.  Communication, patience, and clarity are your real tools now. 

And someday, when a newer tech lead asks, “Is this supposed to be this hard?” 
You’ll smile and say, "Yeah. But it’s worth it." 

Avatar

Marija Simonoska

Back-end Engineer

Apr 28, 2025