Welcome to the ClassDojo
Engineering Blog

How we build and scale ClassDojo.
Follow us at @ClassDojoEng

One of the most effective products we’ve launched is Story. As a part of our mission to connect Parents, Teachers, and Students, we released Story as a way to provide emotionally impactful content and refocus the conversation around the incredible “ah ha!” moments in the classroom. ClassDojo launched Class Story in September 2015, since then we’ve added Student Story, Story for Parents, School Story, and just recently, Story for student accounts. We decided to use Texture to power Story so we can continue to deliver unique experiences to classrooms worldwide.

Read on →

We want ClassDojo to be a delightful product for teachers and parents everywhere, and we’ve found that email is an effective channel to showcase awesome features and to offer help if our users need it. These emails are known as lifecycle emails, and the central idea is to send the right content to the right user at the right time.

Up until last year, we had been using third party services for lifecycle communication, but we grew increasingly frustrated with the limitations they presented, and decided to build our own system. So far, we are really happy with its capabilities, performance, and reliability!

This will be a three part blog series covering how we do lifecycle emails at ClassDojo. We’ll start with an overview of the system and its architecture, move on to our experience using Redshift for this system in Part II, and finally explain some unique advantages our system offers compared off-the-shelf third party solution in Part III.

Read on →

About four months ago, our API tests took about 12-15 minutes to run on a decently powered linux machine. Test runtimes on Macs were slightly slower even with comparable hardware. Today it takes us 1 minute and 55 seconds to run the entire test suite including setup & teardown saving us ~50 hours of development time every week.

The number of tests we run for API has more than doubled (from ~2000) since we last talked about it on our engineering blog

Read on →