Code, People, Flow: The Reality of the Tech Lead
Code, People, Flow: The Reality of the Tech Lead
By Osman Fikret Ceylan
6 min read
Decode the ambiguous role of the Tech Lead by revealing the critical balance between leadership, architecture, and development. Learn how to optimize software flow and manage complexity using insights from Team Topologies, DORA metrics, and Domain-Driven Design.

- Authors
Code, People, Flow: The Reality of the Tech Lead
You are an experienced senior engineer. You solve problems. You write clean code. You know your stack inside and out. Then, someone promotes you. And, you are a Tech Lead.
The title sounds powerful. But the reality is often confusing.
Are you a manager? An architect? A lead developer?
The industry is not good at defining this role. It creates confusion. It creates stress. But there is a way to navigate this chaos. Based on the insights from a 5-day Technical Leadership learning journey I did with my iO colleagues, I will let you through it to decode what it actually means to lead in technology.
It isn't just about code anymore. It is about the flow of value.
The Three Hats You Must Wear
First, let's banish the ambiguity. A Tech Lead is not a manager who stopped coding. And you are not just a developer who attends more meetings.
A Tech Lead exists at a very specific intersection. You stand in the middle of three worlds: Leadership, Architecture, and Development.
You are a software engineer responsible for leading a team and aligning the technical direction. You cannot drop the code completely. If you do, you lose touch with the reality of the system. But you cannot code 100% of the time, or your team lacks direction.
You have to balance. You must focus on the product, the technology, and the people simultaneously. It is a juggling act. And the balls are made of glass.
Optimizing the Flow
Your primary goal is not just "writing code." It is Flow.
You need to optimize the software delivery flow. Work needs to move from an idea to a customer solution without getting stuck.
To do this, you need to understand how your teams are organized. This brings us to Team Topologies. You need to structure your organization for fast flow.
Most teams should be Stream-aligned teams. These teams own the full lifecycle. They design it, build it, and run it. They focus on customer value.
But they cannot do everything. They have limits. This limit is called Cognitive Load. If a team has to know too much about infrastructure, complex calculations, security protocols, business logic, they slow down. They break.
As a Tech Lead, you must manage this load. You leverage Platform Teams to handle the heavy lifting of infrastructure. You levarage Enabling Teams to teach new skills. You leverage Complicated Subsystem Teams to handle the really hard math or algorithms.
You design the interactions. You reduce the friction. You make the flow smooth.
Measuring What Matters
How do you know if you are succeeding? You measure.
But do not measure lines of code. That is vanity. Measure the Four Key Metrics (DORA metrics):
- Lead Time: How long does it take to go from code committed to code running in production?
- Deployment Frequency: How often do you release?
- Mean Time to Restore: When things break (and they will), how fast can you fix it?
- Change Fail Percentage: How often do your deployments fail?
High performing teams deploy on demand. They restore service in less than an hour. They have low change failure rates. This is your target.
The Hard Part: People and Behavior
Here is the truth. Technology is the easy part. People are the variable.
To be a Tech Lead, you must become an observer of behavior. You need to stop judging and start understanding. "Behavior is what an organism does, or better: what another organism observes it is doing".
When a team member is quiet in a meeting, do not assume they are disengaged. When two developers argue, do not assume they are difficult. Observe the patterns. Why do they do what they do?
You must facilitate collaboration. You need to model problems together.
We use Collaborative Modeling. We get the developers, the testers, and the business experts in one room. We visualize the problem.
One powerful tool for this is EventStorming. You put a massive paper roll on the wall. You use sticky notes. You map out the timeline of domain events.
You will see the hotspots. You will see the bottlenecks. You will see where the communication breaks down. This visualization creates a shared brain for the team. It removes the "us vs. them" mentality.
Taming the Complexity: Domain-Driven Design
Software is complex. If we don't manage that complexity, it turns into a "Big Ball of Mud".
This is where Domain-Driven Design (DDD) comes in. DDD is about tackling complexity in the heart of software.
You cannot just code blindly. You need a Ubiquitous Language. This is a shared language between the developers and the business experts. If the business calls it a "Client" and the code calls it a "User," you have a translation cost. You have bugs waiting to happen. The code must speak the language of the business.
You must define boundaries. We call these Bounded Contexts. Inside a boundary, a specific model applies. Outside, it might mean something different.
As a Tech Lead, you act as a cartographer. You map the relationships between these contexts using Context Mapping. Is it a partnership? Is it a customer - supplier relationship? Or is it a mess?
You distinguish between what is Core (what makes your business to earn money), what is Supporting (necessary but not special), and what is Generic (buy it off the shelf). You invest your best efforts in the Core.
The Conclusion
The Awakening: From Code to People
For years, I’ve focused on writing the cleanest code and solving complex technical problems. But with this workshop, the focus shifted. We didn't just talk about architecture or software design; we talked about people.
The biggest takeaway for me was realizing that my job isn't just to trying to be the "best engineer" in the room anymore. It’s about unblocking my team, making clear decisions when things are ambiguous, and helping others grow.
Closing Words
Being a Tech Lead is not a destination. It is a journey.
You start by writing good code. You end up designing social and technical systems. You move from managing variables to managing cognitive load. You move from debugging servers to debugging team dynamics.
It is challenging. It requires you to constantly shift your perspective. You must be an architect, a mentor, a diplomat, and an engineer.
But when you get it right, you build teams that flow. You build software that matters. And that is a feeling better than any clean compile.
Books Referred
These are the books referred to in the 5-day Tech Lead training by our tutor Kenny Baas-Schwegler:
- Collaborative Software Design by Evelyn van Kelle, Gien Verschatse, and Kenny Baas-Schwegler. The core text on connecting the social and technical aspects of design.
- Domain-Driven Design: Tackling Complexity in the Heart of Software by Eric Evans. The seminal book that established DDD.
- Team Topologies by Matthew Skelton and Manuel Pais. Essential reading for organizing business and technology teams for fast flow.
- Accelerate by Nicole Forsgren, Jez Humble, and Gene Kim. The science behind DevOps and the Four Key Metrics.
- The Goal by Eliyahu M. Goldratt. A business novel about the Theory of Constraints and process improvement.
- Facilitating Software Architecture by Andrew Harmel-Law. Empowering teams to make architectural decisions.
- Patronen by Danielle Braun. Recognizing and changing patterns with an anthropological view.
