How I Balance Writing Code and Leading a Team at the Same Time

by Eric Hanson, Backend Developer at Clean Systems Consulting

Staying technical as a tech lead is not about protecting your identity as a developer — it's about being a credible, useful leader. But doing it well requires real boundaries and deliberate choices.

The Tech Lead Who Stopped Coding

I've seen it happen. A capable developer gets promoted to tech lead. In the first month, they're still writing code. By month three, the meetings have expanded to fill the day, code review takes most of the remaining time, and actual implementation has become something they do on evenings. By month six, they've mostly stopped.

This is sometimes the right outcome — some lead roles genuinely require full-time coordination. But often it's not a choice; it's a drift. And the drift has real costs: the lead loses their sense of what the codebase actually looks like to work in, loses credibility with the team, and becomes a manager who talks about engineering instead of practicing it.

Why Staying Technical Matters

The most important reason isn't about status or identity. It's about information quality.

A tech lead who codes understands the real cost of decisions. When you say "this should be straightforward," you know from recent experience what "straightforward" actually means in this codebase. When you estimate effort, your estimate is grounded. When you're in an architectural discussion, your opinions about what's feasible and what's expensive are calibrated against reality.

A tech lead who doesn't code is making decisions based on increasingly stale intuitions. That gap between mental model and reality tends to show up in bad directions: underestimating complexity, overcommitting the team, designing systems that look clean on a diagram but are painful to implement.

Staying technical is a form of staying honest.

What I Actually Take On

The mistake I see tech leads make when trying to stay technical: taking on work that has hard deadlines or sits on the critical path.

If the team is blocked on something I'm implementing, I've made myself a bottleneck. My availability is less predictable than a developer's because my schedule fills with things I can't always control — urgent stakeholder conversations, impromptu decisions, someone needing to talk through a problem.

I deliberately choose work that:

  • Is not blocking anyone else
  • Can be interrupted and resumed without major cost
  • I can hand off cleanly if something urgent comes up
  • Gives me useful exposure to areas of the codebase I don't see in code review

This often looks like: exploratory technical investigations, internal tooling improvements, documentation with real code in it, or picking up a well-scoped low-priority ticket that's been sitting in the backlog.

Protect the Time Actually

The good intention without the structural protection is meaningless. I block time for coding on my calendar, the same way I block time for one-on-ones or planning sessions. Unblocked time fills with meetings by default in most engineering organizations.

The block doesn't have to be large — two to three hours twice a week can be enough to stay connected. The key is protecting it from the accumulation of thirty-minute requests that individually feel reasonable and collectively consume everything.

I communicate this to the people I work with: "I have deep work blocked from 9–12 on Tuesdays and Thursdays — for non-urgent things, after noon works better." Most people respect this. The ones who don't usually have genuinely urgent things.

Know When the Balance Needs to Shift

There are phases in a project where leadership demands outweigh technical contribution. A difficult planning cycle, an organizational change, an incident that requires sustained stakeholder management — these eat the calendar, and trying to hold on to coding time during them often means doing both things poorly.

The mistake is letting a temporary shift become permanent. I re-evaluate every few months: am I still writing code in a meaningful sense, or am I doing enough to tell myself I am while the reality is that I've mostly transitioned to management?

If the honest answer is the latter, that's worth examining deliberately. Maybe it's the right direction. Maybe the role has changed and the title should reflect that. Maybe the team has grown to the point where there's a real management need. But it should be a choice, not a drift.

The Benefit to the Team

A tech lead who stays technical has one advantage that's easy to underestimate: they model what engaged, practical engineering looks like.

When the lead is in the code, making choices, running into problems, updating their understanding — the team sees that this is something worth continuing to do at any level. That technical craft doesn't get abandoned as you get more senior; it evolves.

A lead who's fully out of the code sends a different implicit signal: that coding is something you graduate from. That leadership means leaving the actual work behind. In teams trying to maintain a culture of technical excellence, that signal is quietly corrosive.


The goal isn't to be both a full-time developer and a full-time lead — it's to stay close enough to the work that you're leading from inside it, not above it.

Scale Your Backend - Need an Experienced Backend Developer?

We provide backend engineers who join your team as contractors to help build, improve, and scale your backend systems.

We focus on clean backend design, clear documentation, and systems that remain reliable as products grow. Our goal is to strengthen your team and deliver backend systems that are easy to operate and maintain.

We work from our own development environments and support teams across US, EU, and APAC timezones. Our workflow emphasizes documentation and asynchronous collaboration to keep development efficient and focused.

  • Production Backend Experience. Experience building and maintaining backend systems, APIs, and databases used in production.
  • Scalable Architecture. Design backend systems that stay reliable as your product and traffic grow.
  • Contractor Friendly. Flexible engagement for short projects, long-term support, or extra help during releases.
  • Focus on Backend Reliability. Improve API performance, database stability, and overall backend reliability.
  • Documentation-Driven Development. Development guided by clear documentation so teams stay aligned and work efficiently.
  • Domain-Driven Design. Design backend systems around real business processes and product needs.

Tell us about your project

Our offices

  • Copenhagen
    1 Carlsberg Gate
    1260, København, Denmark
  • Magelang
    12 Jalan Bligo
    56485, Magelang, Indonesia

More articles

How I Think About Technical Debt as a Contractor

Technical debt means something different when you're a contractor. The time horizon is shorter, the ownership is different, and the right approach isn't always the one you'd take with your own codebase.

Read more

Why Denver Startups Are Turning to Async Remote Backend Contractors to Stay Cost-Competitive

Denver's backend hiring market has gotten expensive fast. The startups staying lean without slowing down have changed how they think about getting work done.

Read more

Why Clients Hire Contractors and What They Are Actually Looking For

Clients do not hire contractors because they ran out of full-time employees. They hire contractors to solve a specific problem fast — and understanding that changes how you pitch yourself.

Read more

The Follow Up Message That Does Not Feel Desperate

The difference between a follow-up that works and one that damages your position is tone, timing, and whether you are adding something or just asking for something.

Read more