By Bhawna Singh, SVP Engineering, Auth0
Everyone talks about scaling. And that’s because every high growth company needs to scale more than ever, more reliably, and at sustainable cost. But what does it take to get it right?
For scaling to be successful, you need to think about your people and culture, the technology being used, and the process and practices underpinning everything. Achieving high growth has two fundamental requirements: continuously leveling up your technology stack and your people stack.
I’m writing to share some of the strategies I’ve learned throughout my career, and most recently through the high growth of Auth0, to efficiently scale a high growth organization.
It all starts with scaling your people and culture
There’s a lot being written about people and culture, but that’s because they’re so important to making everything work. They’re the heart of everything you do — and need to do — so invest the time needed to help them succeed and collaborate.
Take new hires, which can often be hundreds of new faces being brought in every quarter. They need to be able to successfully integrate into your culture, while also contributing towards growth efforts quickly. So, make sure you have an onboarding program that delivers this, as otherwise you’ll have to spend more time training them — which adds overhead, slows down your progress, and can even bring an existing employee out of their groove as they train someone new. (We’re also looking to hire some amazing people to join the engineering team, so if you like the sound of life here, take a look).
When looking at the types of personalities you want to bring in to help you scale, you need to keep an open mind. It’s not just about finding someone who exactly matches your existing culture, but someone who can help you evolve it. You need people who are going to collaborate and bring their own ideas to the table, who will help grow your culture. Find someone who’s comfortable brainstorming with others and holding their ground when it comes to problem-solving (even if you don’t agree…actually…especially if you don’t agree with them).
And an investment in the mentoring and upskilling of your existing team cannot be overlooked as you make your growth plans.
Oversharing is a good thing
One of the things I love most about Auth0 is the blogging and documentation culture. We write down and share technical decision records, solicit input on architectural changes with RFC’s, and review incident postmortems with detailed action items to avoid repeat issues. Fundamentally, writing things down is an ingrained cultural trait of our company that helps us collaborate as our organization scales. There’s a very active approach to sharing with other teams and external audiences, which helps create an asynchronous collaborative environment — something that’s essential when attempting to scale. While not everyone can be involved in every decision, you can ensure you take group inputs seriously, and share the final decision/result transparently. This all goes a long way in building trust in the process, which is key to a team’s async engagement.
Equally important is to implement meeting times that cross time zones between dispersed teams, to allow people to collaborate in real time as well. A cadence of all-hands and team level town halls ensure we can bring the whole team along.
Communication channels only work when the teams are vocal about their state of affairs. They need to be able to share their pain without hesitation, otherwise as a leader you won’t hear it. Having an open communication channel for — the good, the bad, and everything in between — is the key to healthy organization.
It’s also absolutely critical that we have close relationships with our customer success team. I personally take customer calls all the time, to better understand what’s top of their mind and how their business is changing. We work actively to build cross-org relationships, as this helps everyone grow together and align roadmaps.
Ultimately, over communication is key; in a fast growing environment, the more everyone understands what is going on and where we are headed, the better we can rally behind our goals. It also helps us identify gaps and needs early in the process, so we can work to fix them quickly before they become bigger problems down the road.
Which brings us onto scaling the technology.
Think about systems, not just components
It’s easy to get distracted trying to worry about every single piece of technology in your stack, but then lose sight of the overall system. The resiliency of a system is not the sum of the resiliencies of its components. When you’re in high growth the focus goes to releasing more features, taking attention away from improving the tech stack. This mounting tech debt can then lead to outages. We’ve invested in two concepts to address this — balanced portfolio and engineering radar.
Our goal with introducing balanced portfolio building as part of roadmap planning was to minimize repeat questions such as “Is resolving tech debt more important versus rolling another product feature out?”. By allocating appropriate time for teams to invest in product, engineering and unplanned initiatives, we’re able to minimize future tech debt. Because being forced to pay that debt in the middle of a high growth journey can be a major setback.
To continue to support growing teams and system scale, while ensuring our technology and best practices are up-to-date, we’ve compiled our engineering principles, and technology guidelines in our engineering radar. The document serves as a north star for us to ensure our technology decisions are aligned and based on cohesive principles for our tech stack. Our engineering radar also lists technology and practices that we’re experimenting with, using in production, and that we need to retire or not invest further in as we grow.
Investing in good release practices is a key part for an effective growth and scale plan. To ensure our teams can innovate, test and release while we are growing teams and adding new engineers to the teams, investment in building a robust release process and pipeline is a must-have. Some of the specific features we have invested in include:
- A CI/CD pipeline with a full suite of testing, including load and performance testing, security/privacy/ compliance checks, and the ability to reject a release candidate if the checks are not met.
- Use of feature flags or quick rollback procedures to be in place with every release.
- An adaptable release pipeline that moves fast for security patches and can be slowed down with higher soak time when needed with end-to-end automation.
Another aspect of tech infrastructure that helps teams scale is automation — the more you can do with automation, the more efficiently you can function across teams regardless of size or resources.
Lastly, always be mindful of what technology is core to your business to make sure you’re making the right decisions between build v/s buy. When growing fast and scaling, the more your resources are focussed on your core business, the faster you can move. You can always bring an external piece of technology in-house once you have a strong business setup.
So now go and scale your way
The common theme of every playbook for successful scaling is continuous learning and improvement. Ultimately YOUR recipe for success needs to be built by your leaders and teams, but this isn’t a one and done effort, so no matter where you are on your growth journey, look for incremental improvements.
And through the journey, celebrate the calm and quiet of every successful release. Good luck!