Navigating the Nuances of Technical Leadership: Beyond Code and Concepts
Unpacking the essence of technical leadership, bridging expertise with team evolution.
Back in 2021, I became an Engineering Manager at QuintoAndar, a well-known real estate tech-company in Brazil. That was an exciting opportunity for me to explore a new career path in management and further develop my leadership skills. Since then, I have also worked as a manager at Rei do Pitaco and Inventa Shop, both early-stage Brazilian startups. All of these experiences taught me valuable lessons about managing, but specially leading tech teams.
Each of those companies had a different approach to software engineering and product development. This allowed me to grow as a manager by exposing myself to various organizational scenarios and expectations for the role. Therefore, before delving into the specifics of this post, it's important to recognize that every organization you work for will have its own perspectives on leadership roles. I have learned that many of these perspectives are deeply connected to the company's values and culture. The journey will be much simpler if your perspectives are aligned with those of the company.
After two-intensive years in the management path, I felt a strong pull back to the hands-on tech side of things, where my true passion lies. Looking back, all of these career and job moves have been a journey of self-discovery, during which I have been able to explore what truly inspires me professionally — the technical aspects of engineering software.
In the software industry, making continuous impact over time goes beyond the realm of code, algorithms, design patterns, and software architecture. As an experienced engineer, you will eventually need to transition from being a software contributor to overseeing not just projects, but also people, processes, and overarching visions. Developing such skills is essential whether you want to stay on a technical track or move into the management path. From what I have seen and experienced, the impact of a Senior Engineer will invariably depend on how they can lead the way through projects, while also helping people and evolving processes. That means ascending to an engineering leadership level which is not solely about mastering the tech craft, but rather a blend of technical prowess, strategic foresight, and nurturing team growth.
Now, deeply immersed in the technical intricacies and drawing from my varied leadership roles, I want to share some of the key attributes and actions that I believe can distinguish ordinary technical leadership from effective technical leadership.
The Realm of Technical Proficiency & Business Acumen
A team invariably looks to its leader for solutions and clarity. It is paramount for technical leaders to serve as a reference for their teams. Regardless of their functional requirements, projects will require well-formed technical decisions that can ensure the basis for supporting expected functionalities of the software.
Two tactics have helped me acquire technical proficiency along the way: first, understanding well-known solutions for common problems; and second, staying up-to-date with the latest approaches in technology, tools, and methodologies from other practitioners in the software industry.
Many day-to-day problems have already been solved using various software design and architecture patterns. As a technical leader, it's crucial to analyze problems effectively, and then choose technical solutions that fit them, rather than the other way around. As you encounter more specific problems, you'll need to specialize your knowledge accordingly and eventually expand your map of solutions to the cutting edge of innovation. In other words, stay tuned about the hypes and embrace the state-of-the-art of the industry.
Furthermore, being deeply involved in the business domain ensures that every decision made is both technically sound and pragmatic. Understanding the big picture of the business and correlating it with technical challenges will ensure dominance in both technology and business. Every decision and line of code should cater to the broader business narrative. As a leader, understanding and aligning with the company's goals ensures that you are not just coding but orchestrating solutions that resonate with real problems in the organization and its products.
Foresight & Continuous Improvement
The journey of a leader often involves envisioning the future. This vision should not only address known challenges but also anticipate the "known unknowns". A "known unknown" refers to something that we are aware we don't know yet. It's a gap in our knowledge that we can identify. In the context of decision-making or problem-solving, "known unknowns" represent factors or variables that we recognize as uncertain or missing but understand that they play a certain role in the situation and have to be addressed at some point.
For example, a software development team is aware that they might face spikes in traffic but doesn't know when these spikes will occur. This is a "known unknown". In such cases, the team needs to come up with proper mechanisms to proactively foresee perspectives for addressing "known unknowns" when they arise (metrics for service monitoring and alerts can help in this case). Properly handling "known unknowns" can prevent chaotic firefighting and ensure the smooth execution of big, challenging projects.
As we move forward, we should avoid complacency. Just as software is ever-evolving, our processes should evolve as well. Regular iteration, identifying inefficiencies, and ensuring that the team's modus operandi evolves with time can make the difference between a good team and a great, effective one. Recurring retrospective rituals, writing postmortems for projects, and using collaborative decision-making processes (like RFCs) can help guide teams to improve their technical quality over time.
Team Empowerment & Growth
Our code, in many ways, is a reflection of our craft, our passion. As technical leaders, standing up for best engineering practices ensures that this reflection shines bright. It’s about ensuring robustness in the product and longevity in the team's efforts. And while processes and code are crucial, the true essence of leadership lies in recognizing and nurturing potential of the individuals in the team. An empowered team is one that's on a continuous learning curve. Engineering leaders must be both catalysts and multipliers of such curve.
As catalysts, engineering leaders can always be seeking opportunities for the other engineers in the team to expand their horizons, be it through new projects, challenging tasks, or tailored training sessions. As multipliers, engineering leaders should always strive to find ways to transfer technical knowledge within the organization. By doing so, their accumulated expertise can be applied by others in similar circumstances.
Technical leadership plays a crucial mentorship role in any organization. It involves not only leading projects, but also boosting soft skills and providing career guidance. These responsibilities are not solely the jobs of management. Ensuring team growth and development is an integral part of the technical leadership position as well.
Technical leadership is not just a title; it's a journey. Like any journey, it may encounter many nuances especially when it comes to the company's culture and values. However, it is ultimately a combination of technical expertise, strategic vision, and genuine care for the team. As we progress in our careers, we should remember that our personal growth is not enough; we must also ensure that our teams grow with us. The growth, epiphanies, and hurdles we face all shape the narrative, along with the code we write.

