Cambly Scales to Serve Millions of Language Learners on Heroku

Heroku’s flexibility and simplified ops enabled Cambly to launch and grow a global-first business.

It takes practice to learn a foreign language. To become proficient, it takes a lot of practice. However, many language learners don't get enough conversation time during class. To address this gap, English learning platform Cambly connects students with tutors over live video conferencing. Students may opt for a structured learning path, prepare for a standardized test, or simply hone their verbal skills with a fluent speaker.

Today, millions of students from all over the world learn English on Cambly. To keep pace with growing demand, Cambly relies on Heroku’s scalable, low ops platform that helps its developers stay focused on innovating language education.

The Cambly interface, alongside the logo

English skills lead to professional growth

There are lots of reasons why people want to learn English. As the world becomes more and more globalized, many people need the ability to speak English at work in order to excel in their job or grow their career. Although students come to Cambly with a variety of goals, the company was founded to help professional learners by connecting them with tutors who have a similar industry background.

Cambly tutors may or may not be trained teachers, but the majority of them bring real world industry experience to their tutoring sessions. Through live conversation, learners have the opportunity to go beyond the traditional classroom and learn English that is specific to their job, like industry-specific vocabulary and pronunciation, as well as cultural and regional differences. Learn more about the many ways people are using Cambly to improve their English.

Cambly’s founders got started in 2013 and soon joined a Y Combinator program to help them establish a global-first business. Many startups focus on their home market before considering international expansion. However, due to the nature of their business, Cambly needed to be ready to serve any number of students, anywhere in the world, from day one. This meant that those early technology choices were critical to help the business set up for scale.

Heroku paves the way for business growth

When considering app infrastructure, Cambly’s founders first looked to their own past experience. The complexities of running apps on Amazon EC2 infrastructure meant significant time spent on server management via SSH. A PaaS solution could help mitigate these challenges, but Google App Engine was too restrictive and only supported whitelisted libraries.

The founders turned to Heroku, which offered a good middle option for Cambly. Heroku’s managed platform would enable them to build and run their ideal stack with little DevOps effort, but they could also integrate any third-party software or open source technologies needed. So, Cambly’s very first iOS prototype launched with a Heroku backend, and the platform has grown on Heroku ever since.

In the beginning, the team didn’t worry about provisioning and traffic; they just needed a server to handle requests. However, over time, Heroku has proven integral to the growth of the business in a number of ways. The platform not only scales seamlessly, but it also helps Cambly maintain a lean engineering team and a thriving culture that’s focused on innovation.

Heroku’s managed platform helps our product team stay excited about building new product features. We can focus on developing great learning tools without getting bogged down in DevOps. Kevin Law, Co-Founder, Cambly

Often, smaller teams can move more quickly to chase new opportunities or address new challenges. For Cambly, a smaller, more focused team helps them keep the startup agility and mindset alive as the business grows. Each engineer has more ownership and can enjoy the satisfaction of having a greater impact on the overall business.

An example of featured tutors, showing their name, rating, location, and description

Building the ideal Cambly stack

When the founders started building Cambly, Heroku's flexibility gave them the freedom of choice with respect to architecture and technologies. The team found it straightforward to integrate Heroku with an array of third-party cloud services that worked best for their platform. Some services, like their MongoDB database, started out as a Heroku Add-on, and when the platform needed more, Cambly moved to a direct integration with the provider. Other services power core user experiences, such as the Vonage streaming video API, Google Translation API, and a variety of global payment providers.

The Cambly team also appreciates the freedom to experiment on Heroku in order to improve their operations. For example, they are currently using the Papertrail add-on to get visibility into logs from the various applications that make up their platform. However, they'd like to see if a more structured data approach would be more useful to the team. So they've started pushing logs into Elasticsearch on AWS to search log files and set up alerts or aggregate stats. They can also add business logic to the process. For example, if a non-urgent alert fires numerous times to a designated engineer, and it's the middle of the night, then it creates an aggregate report instead of paging the sleeping engineer.

As our business scales, Heroku gives us the flexibility to integrate new third-party services while maintaining the benefits of running our application on a managed platform Kevin Law, Co-Founder, Cambly

Scaling day-to-day, and during unexpected times

On any given day, the Cambly platform experiences predictable peaks in demand. Most traffic occurs during weekdays and each market has its own rhythm; some use the platform throughout the day, and others mostly after work. In China, people tend to use it within the same two-hour window. In the Middle East, it’s common to log on past midnight. Cambly makes tutors available 24/7 to meet the schedules and preferences of its students, wherever they may be in the world.

Sometimes, it’s impossible to predict demand. During the COVID-19 pandemic, Cambly experienced a massive shift in usage patterns as people around the world began working from home or having more free time to practice their English. They saw this new pattern hit first in China at the beginning of the pandemic, and then the pattern spread across their other major markets following the subsequent international response. Not only were more students logging in, but more tutors were available as well, which created an imbalance in their student-to-tutor ratio.

Fortunately, Cambly's application infrastructure was solid on Heroku and kept the business running smoothly. The team uses HireFire to automatically scale Heroku Dynos up to handle surges in traffic, and then back down again during quieter periods. New Relic APM and MongoDB Atlas provided tools to help the team find and rework things that were not scaling well. Their third-party service providers also experienced issues, and the team shifted gears towards making their platform more resilient. In the end, Cambly was able to meet the unprecedented demand on a day-to-day basis and serve a whole new wave of English learners.

Heroku enables us to seamlessly handle scale, whether it’s from predictable patterns or an unexpected surge of traffic like during the COVID-19 pandemic. Kevin Law, Co-Founder, Cambly

An example of Cambly Kids, showing a tablet interface with the app running

Looking towards the future on Heroku Enterprise

Unlike its traffic peaks and valleys, Cambly's overall business growth has been steady. Their biggest markets are the Middle East, China, Japan, Korea, and Latin America. Last year, the company launched in three promising new markets, India, Vietnam, and Russia. Cambly has also recently entered a new global market --- language education for children --- which has also surged during pandemic times. Cambly Kids serves the unique needs of young learners and helps children extend their education while at home.

As the business continues to grow, Cambly moved to a Heroku Enterprise plan to better manage their resources and explore new ones. The team is currently evaluating how Heroku Private Spaces could help them with dedicated resources and network flexibility. Cambly runs MongoDB Atlas on AWS which has a bandwidth cap on external network traffic. During the recent surge, the team had to split their database to avoid running out of network bandwidth. Private Spaces would provide a more robust and long-term solution by enabling internal routing between apps and their database within a dedicated private network. Cambly could put their MongoDB Atlas and Heroku application servers in the same VPC which has a 5x higher network cap than for external traffic. Heroku's enterprise-grade features will help Cambly better prepare for new surges of enthusiastic English learners in future.

Read more about Cambly's story on the Heroku blog: How a Live Tutoring Platform Helps the Working World Get Ahead.

Inside Cambly on Heroku

The Cambly platform started as a monolithic Python app that has since been split into several apps that handle different types of workloads. Their Nginx front-end sits in front of all the services, including a web service and API server. Their database is MongoDB Atlas, and they use the Vonage Video API to stream video. Heroku Add-on Papertrail gives them an overview of all their logs from the various apps, so they can set alerts as needed. They use New Relic APM to monitor app performance, Sentry for error tracking, HireFire for autoscaling, PagerDuty for incident response, and CircleCI for integration testing.