Heady is a digital product consultancy that provides full-service strategy, design, full-stack development, and growth marketing services for the most innovative brands. We build industry-leading apps and websites and the systems that support them, managing the entire digital product lifecycle to ensure long-term stability and growth.
Our engineering team makes up 75% of the organization and is mostly based out of Mumbai, India.
As of 2020, Heady’s Engineering team had a fairly simple and flat structure. We had five domains or disciplines — iOS, Android, Frontend, Backend, QA — and one lead who was responsible for overseeing the team and their day-to-day contributions, as well as their career growth. This lead employee was also responsible for a full coding workload on specific projects.
This structure served us well for years, and Heady successfully delivered mobile apps and digital products for major brands across North America (check out some of our work in action here).
Then, the unimaginable happened: a pandemic.
During the pandemic, everyday folks struggled with disruptions to their lifestyle as they adjusted to new health guidelines and regulations in the hopes of maintaining a safe and semi-normal way of life.
Meanwhile, businesses had to adapt to new consumer demands — and fast. The pandemic put a pause on face-to-face business interactions, and many turned to digital platforms to provide new services like curbside pickup and direct-to-consumer delivery.
The spike in demand for online services and new features meant businesses had to push updates to their digital properties and consumer-facing applications. New features, information, and workflows were necessary to accommodate the rapid shifts in how business was conducted in this new way of life. This kept us safe and ensured businesses were in compliance with pandemic-era regulations.
The pressure for brands to expedite their digital transformation gained unprecedented momentum during the COVID-19 crisis, with companies worldwide undergoing seven years' worth of digital transformation in just 18 months, according to a 2022 study by GHD Digital. As businesses sought to keep up with the “new normal,” they turned to Heady to assist with their digital needs. As we helped our existing clients and brought on new partners to navigate this dynamic new digital landscape, we underwent a transformation of our own, entering a period of significant team growth.
This period of rapid growth identified some structural issues within Heady’s team that needed to be addressed in order for us to continue to provide the highest quality deliverables for our clients and partners. More importantly, we needed to continue to provide the right level of leadership to facilitate the success and growth of our team members, both day-to-day and long-term.
Here’s a brief overview of the challenges we identified at Heady and believed we could solve for by restructuring our Engineering team:
Supporting Growth: Our engineering team grew 80% at Heady, and this created some challenges with scaling our current structure. What worked for a smaller organization must be reinvented and expanded to be successful and scalable for the future.
Strengthening Leadership: Heady needed more leadership across projects. Our leadership team was focused 100% on coding projects, which didn't give them much time to oversee a team and help them with day-to-day duties, or provide guidance on their career growth.
Establishing Best Practices & Processes: We needed to establish best practices and processes for our engineering teams across all of our disciplines and ensure responsibility and accountability to those practices.
Supporting More Complex Projects: During the pandemic, our project complexity increased significantly. We went from managing a single mobile application to building full platforms that contained multiple apps, middleware, hosting, websites, databases, etc., and this required more dedicated leadership for the team.
Considering Operational Risk: The pandemic multiplied our need to deliver quality products while we increased our team size, number of deliverables, and a shortened timeline. Heady had to consider the risks of operating under pressure to deliver on schedule and on budget while continuing to meet our rigorous quality standards.
Providing Clear Career Paths: With a flat hierarchy, we noticed that our team members had concerns about their long-term growth at Heady, and providing a clear career path for our technical and managerial engineers was essential.
Establishing & Promoting Team Values: What does it mean to be an engineer at Heady? How can we use these values and best practices to define us while growing our engineers internally and attracting the best talent?
Keeping Culture at the Forefront: It was crucial that we didn’t lose sight of our internal best practices as a team. We wanted to continue to build on our foundation of engineering culture at Heady while promoting teamwork, learning and collaboration and ensuring that success in the short-term would lead to long-term growth and retention.
Rewarding & Committing to Key Team Members: In the absence of leadership, there were several employees who rose to the occasion and played an expanded role. Rewarding and demonstrating our commitment to these employees was important to us as a part of continuing to support hard work and dedication.
As mentioned earlier, we believe finding the best structure for your team is a highly individualized process that will be different for every organization. That being said, our research turned up some clear themes that we set out to incorporate as we restructured.
Self-Sustainment: Each team should be a group of employees dedicated to a particular mission while also being guided by an overall strategy.
High Alignment & High Autonomy: Leaders should identify what needs to be solved but give teams autonomy in how to solve them. Put simply, we don't want micro-managers.
“Aligned Autonomy”: Finding the right balance between flexibility and consistency is needed in order to make progress. Engineers should be given the autonomy to find creative solutions, but not so much freedom that they overthink and fail to move forward.
Squads: Product teams should be made up of different disciplines, similar to squads of independent employees working collaboratively on a specific project or product. (Note: This concept isn’t new to Heady; our project teams are mostly self-sufficient.)
Release Often & Make It Easy: If it’s difficult we’ll be hesitant to release often, which forces more changes for each release. Establish a cadence for deploying code and align these best practices across all project teams.
Trust > Control: Establish trust across teams and disciplines; if you are trusted, you won’t need to be controlled. At Heady, we believe in our team and we trust them to work together to make the right decisions while upholding our core values as a team and as an organization.
No Fear of Failure: Fail fast, recover fast. Mistakes happen; let's learn from them and move forward.
Redefine Leadership Roles: We needed to redefine the Domain Lead role, again keeping in mind that what worked for a smaller organization needed to be reinvented and expanded to be successful.
Multiple Levels of Leadership: We needed to provide a structure that had multiple levels of leadership with a clear hierarchy to provide checks and balances while giving the team a path to success.
Scalability: Our new team structure had to be scalable. Would the same approach work once we have 100 or 250 engineers?
Roles & Responsibilities: We needed to define clear responsibilities for each new role. This meant creating new job descriptions and ensuring sure all team members understand what is required of them.
Managerial vs. Technical: We needed to provide different career paths for engineers who wished to remain technical and individual contributors, and engineers who wanted to focus on mentoring and leading and become managers.
Best Practices: We needed to remain focused on adhering to engineering best practices including code quality, security, testing, and internal methodologies, and ensure those best practices were followed both internally and externally.
Promotions & Filing From Within: We didn’t want to hire outside managers, but rather promote the team members who had been contributing to the leadership of the organization and hadn’t yet been recognized.
Get Feedback: Possibly one of the most important steps in the process, we had several conversations with leadership across Heady to get their thoughts on our approach. This included the folks that work with engineers everyday and the engineering leadership team. We wanted to ensure this was a constructive change that would have a positive impact on our organization moving forward. In other words, we didn’t assume that we knew best and sought constructive criticism (kind of like user testing a new product).
Make Adjustments: We decided from the outset it was okay to make changes to our strategy if it wasn’t working as intended, but we also knew that we needed to first give it some time to work — then adjust if needed.
At Heady, we have an engineering manual that defines how engineers progress within the organization, including what skills they must perform to achieve the different levels of Software Development Engineer (SDE), from level 1 to level 6. We realized that there was no managerial aspect to this manual, so engineers were always solely focused on technical excellence. How would one become a manager or leader?
Part of our restructuring was introducing a dual career path that will help our engineers choose their path within the organization:
technical or managerial.
Ensure products are built correctly
Focus on technical excellence and innovation
Oversee tech mentoring, adoption, and alignment
Evaluate technical spikes and experiments
Conduct code reviews and give feedback
Prepare system design presentations
Handle production issues escalation
Review platform direction, patterns and practices
Spend 50-100% of their time doing hands-on coding
Have the ability to act managerial if required
Ensure products are built on time and on budget
Focus on career planning, promotions, and coaching
Oversee team planning and delivery
Evaluate objectives, performance, and feedback
Participate in technical decisions
Handle team-building activities and culture
Review team productivity and metrics
Spend 0-50% of their time doing hands-on coding
Have the ability to act technical if required
As previously mentioned, we wanted to introduce multiple layers of leadership and establish a clear hierarchy across our disciplines. This meant that Heady needed day-to-day technical leadership on a project by project basis, as well as higher-level leadership to focus on career growth and high-level decision making.
We chose to split these functions and introduce three new leadership roles for our engineers:
Managerial Track, Senior Engineer SDM
Technical Track, Senior Engineer SDE 5-6
Technical Track, Senior Engineer SDE 5-6
How exactly would this all be implemented, and at what point does an engineer begin transitioning into these new roles? Would this apply to all team members? These are all questions we asked ourselves as we looked ahead to implementing the new Engineering team structure.
When setting out to reorganize our team, one of the most important goals was scalability. Meaning, if we put a structure in place that was unable to scale, we’d end up restructuring our team every few years, an undertaking that requires an intensive amount of both time and resources.
More importantly, we needed to understand how to recognize when we might need to make changes. At what point does an engineer take on too much that they begin falling behind with their coding responsibilities?
With all this in mind, we put together the following guidelines and diagrams to guide us.
Adding additional engineers will require scaling horizontally
Additional staff and Principal Engineers
Additional Engineering Managers, Principal & Staff Engineers; Introduce Director of Engineering
In 2023, we announced our new Engineering team structure to the Heady team in an all-staff meeting. So far, the leadership team has been full steam ahead and the adjustments have been well-received by the team. Our disciplines have more structure and mentorship while our project teams have more dedicated leadership across the board.
We’ve introduced new initiatives to ensure our leadership team is on the same page while also focusing on some internal housekeeping items. Here’s what we’re working on now that our new team structure is in place:
Distributing Job Descriptions & Roles and Responsibilities
As mentioned, it was essential for our team to understand their day-to-day, as well as long-term, responsibilities in their new leadership roles. We crafted detailed job descriptions and distributed them to the team so they were aware of what was expected.
Organizing Sub-Teams & Touching Base Regularly
Our Engineering team was assigned to Staff Engineers and each team was grouped into teams of six to eight based on the defined project. These teams meet regularly to address issues and also focus on future advancement.
Setting Engineering Goals
The leadership team has outlined a full set of goals for the engineering team. These ladder up to our company goals at Heady to ensure we’re aligned and contributing to the overall success of the organization.
Internal Audit of Best Practices & Tools
We’ve begun documenting and auditing our internal processes and best practices across all disciplines. This ensures we’re staying up to date on the latest technologies and allows us to clearly define the Heady way of doing things. Once defined and refined, our leadership team will be responsible for enforcing these best practices.
Focusing on Security Policies & Access
As always, we continue to focus on internal security and access management for all systems, software, and third-party platforms, ensuring the highest level of security both internally and externally.
Looking back on this initiative, it’s clear that these changes were necessary for Heady in order to facilitate our continued growth and success. Of course, what works for one organization won’t necessarily work for others, but we wanted to share our story and our approach to potentially help others, particularly since looking at what other organizations were doing was so inspirational to us in the research phase.
Pay attention to the details and remember: The decisions you make will affect the lives and the work of your team. Make sure to seek feedback at every phase, including and especially from those outside your department, and remain flexible, as adjustments may (and most likely, will) be needed.
We hope this blog can serve as a helpful guide for those embarking on similar initiatives. As for us:
We’re excited to move forward with our new Engineering team structure in place and support the continued growth of both our individual team members and our organization as a whole — and we believe the outlook is Heady.