You have 1 article left to read this month before you need to register a free LeadDev.com account.
By letting go of writing code, you open yourself up to excelling as a manager.
I am a computer programmer.
I was one of those people who started coding at a young age – in my case, on a TRS-80 Model 1 in my school’s library. I loved the feeling of teaching the computer to do something and then getting to enjoy the results of interacting with what I built. Since I didn’t own a computer, I would fill spiral-bound notebooks with programs that I would write at home. As soon as I could get time on the computer, I would type it in line-by-line. When I learned that I could write software as a job, I couldn’t imagine anything else that I would want to do.
After university, I got my dream job writing 3D graphics code. I was a software engineer! I defined a successful day by the amount of code I wrote, the compiler issues I resolved, and the bugs I closed. There were obvious, objective metrics that I could use to measure my work. Those metrics and my job defined me.
Today, I am a Chief Technology Officer, leading software development organizations. If I am writing code on the product, it is probably a bad thing. I now have to define my success by much fuzzier metrics: building good teams, hiring and training good people, setting multi-year technical strategy and vision for the company, collaborating with other departments, and setting and managing a budget. I may have a good day or a bad day, but I have to measure my success based on quarters or years.
My achievements are now always tied to the successes of others. Getting to this point wasn’t easy, but I wouldn’t have it any other way. It was a journey that took years, and the first challenge was understanding that coding was no longer my job.

The Foundational Value of Coding Skills in Career Trajectory
For many in the tech industry, the journey begins with a profound love for coding. This initial passion isn’t just about writing lines of code; it’s about cultivating a unique way of thinking. From problem-solving and logical reasoning to meticulous attention to detail, the skills honed through coding are incredibly transferable and form the bedrock of a successful career, even as roles evolve.
My own story, starting with a TRS-80 Model 1, mirrors this trajectory. The joy of instructing a computer and witnessing the tangible results was captivating. This early fascination solidified my ambition to pursue software development professionally. The metrics of success were clear and objective: lines of code written, bugs squashed, and compiler errors resolved. This defined my professional identity and aspirations.
However, career development is rarely linear. As I progressed, my role shifted dramatically. Today, as a Chief Technology Officer, my contribution to the codebase is minimal, and that’s a positive sign. My success is now measured by far less tangible yet more impactful metrics: the strength of the teams I build, the talent I nurture, the strategic vision I set, and the collaborations I foster across departments. This evolution wasn’t a sudden change but a gradual realization that my coding skills, while foundational, were now serving a larger purpose.
Why Shifting Gears from Full-Time Coding Becomes Necessary for Career Advancement
The question of “How much do you code?” frequently arises when discussing career progression with engineering leads and managers. There’s often an underlying assumption that continued coding is essential to remain valuable. This perspective stems from a few key factors deeply rooted in the software engineering industry.
The Traditional Approach to Management in Tech
Historically, companies have often promoted their most technically proficient developers into management roles. The logic seemed straightforward: the best coder must be the best leader for other coders. This approach inadvertently created the perception of management as a promotion, rather than a career transition. In reality, the skills that make someone an exceptional developer are not always the same skills needed to excel as a manager.
The most ineffective managers I’ve encountered were often brilliant coders who resented the time spent away from active coding. They viewed management responsibilities as tedious distractions and struggled to hide their frustration.
Fortunately, many organizations now offer dual career paths for technologists. This crucial development allows individuals to choose between advancing as individual contributors or moving into management. This choice is empowering. It means those passionate about coding can continue to refine their craft without hindering their career progression, and those who find fulfillment in leadership and team development can pursue that path.
Addressing the Fear of Becoming ‘Non-Technical’ in Leadership
A significant concern for many transitioning from coding is the fear of losing their ‘technical edge’ and becoming out of touch. The specter of the stereotypical, clueless manager – ridiculed by their team – looms large. While this is a valid concern, it’s not an inevitable outcome. Becoming a ‘pointy-haired boss’ is a choice, not a consequence of moving into management. It only happens if you actively disengage from technology.
As your leadership responsibilities expand, so too must your technological horizons. Moving beyond a narrow specialization is crucial for career advancement in management. I’ve managed teams working across diverse technologies, from backend to frontend, mobile to embedded systems, and encompassing roles from testing and data science to design and product management. Expertise in every domain is impossible, but the foundational knowledge gained from coding provides a lens through which to understand new areas, empathize with your team, and make informed decisions.
The shift isn’t about becoming non-technical; it’s about evolving into a broadly technical leader, capable of understanding and guiding a wide range of technical disciplines.

The Transition Phase: Balancing Coding with New Managerial Duties
Often, the first step into management involves leading a team you were previously a part of. This transition can blur the lines, as new managers are frequently expected to maintain some coding responsibilities. This dual role can provide a sense of comfort and familiarity during the initial phase. However, it can also become a hindrance, preventing full immersion into the managerial role as responsibilities grow.
The Trap of the ‘Savior Coder’ in Management
As a manager, accountability for team deliverables rests squarely on your shoulders. When deadlines loom and the team struggles, the urge to jump back into the code to ‘save the day’ can be strong. While intervention is sometimes necessary, consistently resorting to coding can be counterproductive. It pulls you away from critical leadership responsibilities – strategic oversight, resource allocation, and cross-team coordination – ultimately hindering the team’s long-term effectiveness.
The Inevitable Shift: Prioritizing Leadership Over Code
The point isn’t that coding should cease entirely, but that its role must diminish as leadership responsibilities expand. For those aspiring to lead larger teams and broaden their scope of influence, coding needs to become a secondary activity.
My experience at Adobe vividly illustrated this. Leading a team of fourteen, with additional dotted-line reports, my management duties were rapidly eclipsing my coding time. Despite being a primary developer on a project and taking pride in contributing features to each release, my features were consistently late and became bottlenecks.
A pivotal moment arrived during a company-wide shutdown. Seeking permission to work through it to complete my overdue features, I was confronted by my VP with a blunt question: “Who is the worst developer on your team?” My hesitation was met with the answer: “You are! Your features are always late, holding up the team. If you were just a developer, you’d be on a performance improvement plan.” This stark realization was a turning point. My insistence on coding was no longer an asset but a liability to the team.
Stepping into leadership necessitates a shift in priorities. Coding, while valuable, becomes secondary to leadership responsibilities. Your team has other developers, but you are the sole leader. Neglecting your leadership role leaves a void that no one else can fill. Consequently, your professional development must now focus on honing leadership skills, not just coding expertise. This is a career evolution, and neglecting to adapt will lead to stagnation.
Delegating development responsibilities to your team is not just about freeing up your time; it’s about fostering growth within your team. Effective delegation is a cornerstone of strong leadership.
Staying Technically Grounded as a Leader: Beyond Daily Coding
Maintaining technical credibility as a leader, even without daily coding, is a conscious choice. For most in tech, a genuine interest in technology is the driving force behind their career path, making this transition natural.
As you evolve into a technology leader, your focus broadens, and your scope widens. The key to remaining technically credible lies in actively engaging with your team and their work. Show genuine interest in their projects, the technologies they employ, and the challenges they face. When unfamiliar technologies arise in discussions, make a point of researching them. Dedicate time each week to learn, forming your own informed opinions. This practice allows you to engage in meaningful conversations, ask pertinent questions, and connect their work to the broader organizational context and your own experience.
This approach not only keeps you technically grounded but also deepens your empathy for your team. You gain a richer understanding of their work, enabling you to provide more effective support and guidance. While you might not be stepping in to write code, your team recognizes that you understand and value their technical contributions.

Redefining Success: From Individual Code to Team Impact
The satisfaction derived from completing a complex user story, deploying a new service, or resolving a challenging bug is undeniable. This sense of accomplishment provides a dopamine rush, making it difficult to relinquish.
While leading a productive team meeting or having a meaningful one-on-one might not offer the same immediate gratification, the fulfillment is profound. As a leader, you learn to find success in the achievements of others. The timeline for this success is longer, measured in quarters and years, but the reward is far more significant and lasting.
Witnessing your team’s collective success resonate with customers, advocating for a well-deserved promotion for a mentee, or welcoming a talented new hire to your team – these are deeply rewarding experiences. In the day-to-day, observing stories progress, facilitating problem-solving, and seeing your team’s enthusiasm for the direction you set provides a profound sense of satisfaction.
Embracing Technical Leadership Beyond Daily Coding
As you advance in your leadership career, your focus shifts towards mentoring, developing, and guiding your team. While the code editor becomes less central to your daily routine, new challenges and tools emerge – strategic planning, process optimization, HR systems, presentations, and spreadsheets. You’ll spend less time immersed in the intricacies of specific languages or toolchains and more time understanding system interactions, making build-versus-buy decisions, and exploring entirely new technological landscapes.
Coding can remain a part of your toolkit, but ensure it doesn’t overshadow your primary role: leading and empowering your team. The skills honed through coding – problem-solving, logical thinking, and attention to detail – become invaluable assets in navigating the complexities of leadership and driving your team’s and your own career development forward.
Get articles like this in your inbox
Choose your LeadDev newsletters to subscribe to.
LeadDev New York is back this fall! Register your interest to get the lowest prices.
Register