There are many different ways to grow and develop as a software engineer. One misconception is that the only way to grow is to become a people manager. However, there are many growth paths in software engineering for people who want to remain individual contributors. One of the paths for growth at Asana is Tech Leadership.
The Tech Lead (TL) role at Asana is a formal leadership position on the Engineering team for individual contributors (ICs). Similar to a technical lead at other companies, TLs are responsible for project delivery and technical execution of their team. They take on complex projects and lead the work of the other ICs their team, oftentimes acting as a mentor to the team and facilitating team bonding. TLs partner with their Engineering Manager, Product Managers, Designers, User Experience Researchers, and Data Scientists to establish the high-level technical vision for their product pillar and drive initiatives forward.
We spoke with some of the TLs on our team to learn about their career journeys, the features they’ve launched, and what their day-to-day looks like in this unique role.
“I’ve been in Software Engineering for about 5 years, and I became a TL about 6 months after I joined Asana. My role as a TL has helped me to grow a lot as an engineer, as a mentor, and as a cross-functional collaborator. As a mentor I am responsible for ironing out our execution plan every sprint and figuring out who is going to be responsible for what. I am constantly looking to see how I can find pieces of work that can help individuals on the team to grow. I love these opportunities because they allow the team to stay engaged and curious as they learn new skills and pick up new responsibilities. This has allowed me to grow as a mentor as I try to help my team expand their scope and skillset.
As a cross-functional collaborator, I am responsible for being the voice of Engineering in the discussions around the team’s direction and the features we are going to build. Oftentimes, these data points can be super helpful to the PM and Designer that I partner with, so I try to bring the engineering perspective into these conversations.”
Yacob: I rely on Asana heavily in my day-to-day role as a TL. We plan all our sprints as Asana projects, with sections for the different work streams we are tackling and custom fields for the estimated “cost” of each task. This allows everyone to stay on the same page of the priority and focus for the team over the course of the sprint.
At the end of every sprint, we run a sprint retro where everyone collaborates in an Asana Board to drop in cards to share the things that went well and that could be improved upon for future sprints. It is awesome to collaborate in real time and then spend the time in retro walking through all the cards and thinking about how we can improve team processes and flow.
We have a “Meeting notes” project that I use a lot to keep all intra-team and cross-team communications in one place. It allows everyone to easily get notifications about the meeting notes and have a single place to look when trying to think back to an old meeting and leverage the takeaways or discussions from it.
Yacob: This varies a lot from sprint to sprint depending on the phase that the project is in. Sometimes we are in product-planning mode and it is best for me to focus my time collaborating with product and design to iron out what the team should work on next. During these times, I’m not coding much at all. Other times we are in sprint-mode trying to race towards a launch and it is best for me to put my head down and write some code myself. I’d say that I definitely spend less time coding now than before I became a TL, but I still seek out opportunities to stay close to the code as much as possible.
Yacob: In my role as TL, partnering with cross-functional partners is one of my favorite parts of the job. I collaborate with my PM and Designer multiple times a week. This could be to align on what the team’s next focus should be, or maybe to have a deep brainstorm on features we could build in the future. I love the “jam” sessions I have with my PM and Designer because everyone comes in with an open mind and brings their own ideas to help us co-create the best direction and plan for the team.
“I’ve been in engineering for 8 years and became a TL in 2019, about a year after joining Asana. Being a TL has helped me grow as an engineer in a variety of ways. As a team lead, I mentor and help grow the rest of the team, which drives me to keep learning and scale my mentorship. My responsibility to drive fast project delivery while maintaining technical quality has allowed me to become more efficient in technical investigations, implementation planning, project sequencing and parallelization. Additionally, being a TL allows me to think strategically about technical priorities and be an advocate for them, while collaborating with PMs, Design, and the Business team to come up with solutions that are most impactful.”
Aigerim: The core responsibility of my team is the user signup flow. This year, we did a major redesign of this part of the product, running sequenced tests and iteratively optimizing user experience. The new version of the flow provides more clarity, introduces users to key Asana features, and sets them up for long-term adoption.
Aigerim: As a TL of a large team, I rely heavily on custom fields and Automation rules to simplify processes and provide visibility into many projects the team juggles (all kept in a program Portfolio). We use Status updates to keep stakeholders in the loop, Milestones with due dates to stay accountable, and Boards to collaborate during various team meetings.
Aigerim: I have a large team with multiple concurrent work streams, so I don’t get to do a ton of hands-on coding myself. I focus on code reviews, pairing, implementation planning, brainstorms, and design docs instead, which allows me to stay updated and ensure technical quality of the work the team does.
Aigerim: My team’s dedicated PMs, Designer, Data Scientists, Engineering Manager, and I meet up each week to plan ahead and discuss tactical and strategic topics related to team health and processes. Every 3 months, we work together to summarize our achievements and establish the team roadmap 3, 6, and 12 months ahead. I also work closely with cross-functional partners throughout the product process. We do feature jams and brainstorms early during product exploration to come up with solutions to specific user pains. When a feature spec and designs are in the works, I provide technical context, surface limitations, come up with rough costs, and help PM and Design determine the scope of the project. During the implementation phase, we stay in close contact via Asana tasks, video calls, and Slack to stay aligned and drive the project to launch.
“I’ve been in engineering for six years and became a TL in August 2019. Being a TL has given me visibility into what success looks like while collaborating with other functions and teams. It has also explicitly shown me the value of delivering user value quickly, while maintaining technical quality and creating alignment.
Before I became a TL, I found myself having a bias toward technical quality, but I quickly learned the importance of maintaining a balance. I transitioned from being an advocate to being someone driving for a solution holistically, keeping all the priorities and nuance in mind. This is a skill I will get to leverage not just as a TL, but in any kind of engineering role in the future.”
Anirudh: I recently led my team to launch our Goals feature, which was shared at our Future of Asana vision event. Goals provides the ability for users to create and track organizational and team goals close to where their work lives. This allows teams to see how goals cascade, and creates clarity on the purpose of everyone’s work. It has been exciting to witness how many of our customers felt the need for something that exists in the overlap of work and goals.
From an engineering perspective, we had the big task of introducing a new, independent concept into the product. This opened the door for a lot of future-vision thinking, along with deep analyses of how this new concept fits in with the existing concepts that build Asana.
Typically, this launch would be followed by a celebration for all the hard work, but given today’s need to work from home, we pivoted and shipped shirts, cookies, and a soccer ball (you know, for “Goals”) to every person who helped us toward our launch. We scheduled a video call with everyone who received it for a virtual celebration, packed with toasts, stories, and a live DJ!
Anirudh: We heavily rely on custom fields and Automation to help categorize and track tasks. One instance of this is our sprint project. It creates alignment on what is required to move the task forward, tracks the progress of multiple workstreams, and helps ensure that everyone is aligned and up-to-date on the state of work, so stakeholders are aligned on our pace, our wins, and our upcoming risks.
Anirudh: Over the last few months, I have transitioned away from coding. I have focused time on pairing with our Product team, balancing work streams in my team, managing stakeholders, and reviewing technical design docs. The balance of priorities for me is not constant, and it shifts based on the requirements of the program and my interests.
Anirudh: I meet with my Product Manager, Product Designer, and User Experience Researcher multiple times a week to discuss various aspects of team management and future roadmap. We also discuss insights from feedback and what it means for short term and long term vision. My Product Manager and I met to pair on tasks regarding team processes, team health, and capacity planning. Before every sprint, I meet with my Product Manager and Product Designer to discuss sprint goals, and to ensure that engineers are unblocked by other functions. I also collaborate with them to brainstorm and finalize our product spec and design solutions.
We’re looking for TLs in San Francisco and New York to lead complex projects at Asana. Come work with us!