Why Khan Academy has so much code

A question that comes up frequently when our engineering blog posts circulate: Why does Khan Academy have so much code? The latest iteration of this came up when I wrote up the engineering team’s reflections on having written 500,000 lines of Go. Here’s my response to this question:

People start by looking at Khan Academy and thinking “it’s just a collection of videos, and even those are hosted on YouTube.” But we’ve also got exercises and articles. Mostly created in-house, in a CMS that can handle the needs of creating math and science content. Translated into dozens of languages mostly by volunteers. Organized into courses based on, in some cases, regional curriculum.

We need to keep track of which content a learner has worked with and which skills they’ve mastered so that we can help them keep improving.

We connect with The College Board to help with specific SAT prep based on test results you’ve had.

Accounts can be logged into using Clever, which is common in school districts. They can be connected to Google Classroom, and teachers can assign content and manage classes on the site.

We offer higher-level reporting for school districts, plus special tooling to get all of the district’s students loaded into Khan Academy.

Around all of these features are the inevitable tricky edges. All of this needs to be able to handle millions of users every month.

Beneath almost every successful and long-lived product, there are a huge number of features hidden away from many users.

Also shared in tweet thread form.