How to Scale Engineering Teams from Startup to Corporate

How does an engineering team transition from a scrappy, startup mindset to think in terms of scale? It takes intentionality and strategy. As Coupa has transformed from a small organization to a leader in Business Spend Management, we have grown from a team of two engineers in 2006 to over 900 in the engineering team in 2022. Over the years, our teams have faced growing pains — as Coupa acquired companies, more people and more technologies had to mesh seamlessly together. Below are some of the best practices we have adopted to improve internal communication, improve code quality, and allow our engineers to quickly and efficiently add features.

When a software product is in an early stage and teams are small, design decisions can be made over a quick meeting, code reviews can be done by sitting next to each other, functional testing can be done manually, and deployments can be done at will. As teams grow in size and geographic location and the product matures and expands, communication and strategy on scaling the business becomes of utmost importance to avoid spaghetti code, performance lags, and siloed engineering teams with little integration.
 
9 ways engineering managers can scale their engineering teams

You may be asking yourself how to manage hundreds of developers, working across dozens of functional teams, across several time zones. It’s important to know where checks and balances should be implemented to ensure quality, efficiency, and knowledge transfers without hampering the speed and efficiency at which a startup operates.

1. Design reviews
At Coupa, all changes regardless of size go through a formal review process, focusing on the functional, technical, performance, and security aspects. Analyzing the impact of the change across the entire suite of software products is very important to prevent unwanted outcomes or confusion for our customers or other engineers trying to add a feature that touches unknown parts of the code or application. Subject matter experts review the changes internally first, and when needed these are lined up for a formal review by our principal architects.

2. Code reviews
To ensure that code being committed doesn’t negatively affect the system, all Github commits are required to have a pull request identifying what has changed and why. Depending on what kind of changes are made, the tool identifies various categories of reviewers to be assigned like API, UI, security, or migration. Reviewers don’t generally stop at finding problems, but they also support developers in making required changes. Reviewers are picked after a thorough evaluation process to ensure there are no loose ends.

3. Data table schemas and data migrations
As customer datasets grow, solutions must be built to allow for zero downtime schema changes. For example, engineers at Coupa built an internal tool which alters a table’s structure without blocking reads or writes to it. When data migration on these large sets of rows is required, Coupa uses a robust framework to divide and conquer the problem by distributing smaller chunks of work to multiple processes.
 
4. Performance
Keeping the performance implications of proposed changes in mind throughout the entire design and implementation phase of features will save many headaches near the end of a development phase. Coupa engineers have built a framework for testing pull requests on sanitized production data to get early feedback on performance implications. “Labs'’ simulate production scale load and test features to measure if the performance is affected by increased loads. Automations have been built to check the codebase of any increase in memory usage or app-bootup time at the end of every two-week sprint.
 
5. Reliability
Paired with performance, customers need to expect and trust the software’s reliability throughout each release. Teams at Coupa have KPIs like search response times, page load times, and error rates on calls to third party software that are reviewed regularly so that proper and timely corrections can be made. More importantly, teams should build safeguards around what customers can do with your application. Without these, customers may end up unknowingly exploiting our systems.
 
6. Code styling
Start-ups sometimes may be more focused releasing and short-term wins rather than long-term maintenance and code quality. To enforce the coding guidelines and standards outlined in the community as well as the company, Coupa engineers use static code analyzers like Rubocop or ESLint as well as code formatters. Reference this article on how to set up these tools.

7. Automation testing
Every pull request should pass the suite of existing tests to ensure the new functionality works as well as all previous functionality that is still intact. Not every part of the application can be tested via unit tests, so Coupa supplements the thousands of unit tests with additional test suites for UI / API / migration / end-to-end tests. Developers and reviewers must ensure appropriate coverage is added within the test suite for the new functionality being added.
 
8. Application security
Hands-on labs and annual mandatory compliance training should be put in place to make sure all developers know and understand the OWASP Top 10 Security Vulnerabilities that safeguard the application and customers’ data. Delivering a secure and scalable platform is a top priority and Coupa engineering goes above and beyond to ensure compliance so the entire Coupa community feels secure.
 
9. Release cycles
It’s very important to give customers adequate time to test and plan for upgrades. Coupa Engineering and Documentation teams work together to ensure that all code changes for major releases as well as continuous integration updates for customers are documented well and customers have been properly trained on what they can expect. By having this process in place we keep the channels of communication open and avoid unwanted setbacks.

Growing a global engineering team takes a great balance: productivity vs process. The goal is always to move at the rapid pace of a start-up but have smart (but not cumbersome) processes to keep all engineers informed about architecture and design changes as the team grows. And while Coupa is always #StrivingForExcellence and will never stop improving with that balance, hopefully some of these processes will help with your growing team.
04 Jan, 2024
Coupa's Head of Talent in EMEA discusses how to be successful in interviews with Coupa's Leaders.
04 Jan, 2024
Learn how Coupa Empower's MEvolution program has positively impacted the women of Coupa.
04 Jan, 2024
Learn about Coupa's Veteran program
04 Jan, 2024
Learn more about the vulnerabilities of the OAuth2 Authorization Framework.
04 Jan, 2024
How do we incorporate our three Core Values into our daily projects at Coupa?
04 Jan, 2024
Three considerations that the Coupa dev team uses to design a user-friendly and intuitive search.
04 Jan, 2024
How do Coupanians address challenges in communication and collaboration?
04 Jan, 2024
How is Coupa Engineering tackling more tools and tech stacks w/out tool fatigue?
06 Dec, 2023
Before working at Coupa, I was extremely dissatisfied with my job for nearly a decade. I felt trapped, imprisoned, frustrated to the point of not knowing whether to burst out bawling or laughing (and did both over the years), and nearly desperate. Why did it take me so long to leave and find Coupa? Before Covid and the social norm of using Zoom or Google Meets, I knew there were no other companies nearby my small, Wisconsin town that could provide a similar income without an hour commute, and as the breadwinner of my family with my husband an elementary school teacher along with our two high school girls, I could not justify trading my happiness to diminish theirs. Being a midwesterner as well as a GenXer, I talked myself into “sucking it up” and grinding for the next 20 years until I could retire for them to have stability. Covid, Zoom and then Coupa changed my life. With the global pandemic changing the way business worked, it was like my eyes were opened up to the entire world of possibilities. I made it my second job to read job descriptions and attend virtual interviews, refusing to settle for a company I wasn’t obsessed with. My obsession with Coupa started before even my first conversation with Talent Acquisition, from the very beginning when I read the job description that included Coupa’s Core Values. Not only did I fully embody and believe in all three values from the start, but I was obsessed with a company that would even have values like this! I had no idea how important and embedded these values really were to this company at the time, but it was the first reason I wanted to work here.
Share by: