Project Pals scales to global demand with a small budget

Customer: Project Pals Industry: Education Duration: 4 weeks

jerrysdeals.com

93%

Reduced latency

70%

Reduced churn rate

5

continents

Discovery

Project Pals is a project-based learning platform that allows you to track, assess, and showcase your innovative learning at scale, all in one easy-to-use platform.

Project Pals already had an MVP that they had outsourced overseas. However, they were struggling in many areas. They had users across the globe that needed to collaborate in real-time, but for most users, the slowness of the app made it difficult. They also had customers that liked the app but struggled to use it with students that don’t speak English. On top of all this, the app was filled with bugs due to a high rate of silent errors.

Challenges

  • Achieve sub-second latency for concurrent users all over the globe – with a small monthly budget
  • Automatically translate current and future projects into new languages
  • Reduce error rates across a very large codebase
"Josh was a game changer. We were struggling with an overseas development shop. Josh came in and helped us quickly relaunch with an app that could handle traffic from all over the globe. "

Solution

In a situation like this, the first step is to give yourself a solid foundation that mitigates errors and bugs. To clean things up I wrote (thousands of) automated tests, and a continuous integration (CI) pipeline. The pipeline automates the process of running tests and getting code from developer laptops onto production servers. Now bugs and errors get caught before users can experience them, and there’s no possibility of human error during deployments.

There’s many layers of tech that contribute to latency and response times. Here’s how I achieved extreme performance in 5 different continents:

  1. A global cache prevents re-rendering the full page every time
  2. Code optimizations
  3. Database optimizations
  4. Switching runtimes from Ruby to TruffleRuby
  5. Break up the big server into smaller servers across all regions
  6. Break up the big database into smaller read-replicas across all regions

Finally, I had to translate current and future projects into many languages. To accomplish this, I created an automated system using free (open source) tools that runs translations in a background job every time Project Pals publishes a new project. Supporting a new language is as simple as adding one line to a configuration file!

To read more about how I keep costs down and quality up, check out my development philosophies.

Success

Project Pals was able to re-launch their tech with great success. Application latency was reduced by 93%. No matter what country you’re in, every action felt snappy and smooth. Bugs and errors were drastically reduced. Students speaking any language were able to participate in all projects. Finally, and most importantly, customer churn rate was reduced by 70%. Now people not only love the idea of Project Pals, they love the experience!