7 Years at Khan Academy

Last Friday (the 13th, it turns out) was my last day at Khan Academy after seven years of a wonderful experience. I’ll write separately about my new job, but I wanted to write a little something about my experience at Khan, where I have worked longer than any other place in my nearly 30-year career.

I joined Khan Academy in 2015, attracted by its remarkable non-profit mission of a “free world-class education for anyone, anywhere”. As you can imagine, this mission attracts a lot of great people, and I’ve enjoyed working with so many passionate and talented folks through the years. As I’ll write in my next post, I’m only leaving Khan Academy because of what I specifically want to work on next, and whole-heartedly recommend it as a place to work.

I joined as a senior frontend engineer, where I had a chance to work a bit on content tools before joining LearnStorm (a classroom-based math challenge). LearnStorm 2016 was a lot of fun, because it was run in only four cities and included in-person events set up by Khan. LearnStorm is still quite cool, but it’s bigger and different than the 2016 version was.

One of my favorite parts of working at Khan was the “healthy hackathons”. These usually weeklong events included lots of hacking on projects of all sorts (not just code), with fun side events and enforced out-of-office time so that people would sleep (wouldn’t be healthy otherwise). The demos at the end of the week were fun and always inspiring.

I spent some time as a frontend manager before deciding (again — I had managed people three other times in my career) that I wanted to go back to being an individual contributor, eventually becoming a principal architect focused on the backend and processes.

For most of that time, my manager was Marta Kosarchyn, our VP of Engineering and CTO. She had a mission to significantly grow the engineering team, while at the same time bringing the team to a point where it was ready to deliver more features for classrooms and school districts. Marta gave me a lot of support and leeway to work on quite a few things to help the org run more smoothly.

For the last two-and-a-half years, I’ve been working on a really unique sort of project: Goliath (about which we wrote six blog posts). If you follow that link, you’ll see why we had to make a massive change to our monolithic Python 2 backend and opted to change to a services architecture with Go. Goliath has been an odd duck of a project, because it’s essentially fixed scope, unlike new feature work. I helped with the planning and tracking of the massive first phase of the project, which included dozens of engineers working over 18 months. Getting that to come in on a predictable schedule was challenging, but gratifying when it worked out.

My days over the past few years included a number of fun odds-and-ends. I helped merge multiple blogs into blog.khanacademy.org and launch the podcast version of Homeroom with Sal (both during one hackathon). I managed the engineering blog and edited more than 50 episodes of the podcast. I compiled more than 80 issues of an internal “interesting things in tech” newsletter, curated to topics related to our work at Khan. I was the main administrator for our Jira and Confluence services, which was not quite as fun, but important for helping people work together.

I also did a lot of technical work. Some of that work was code, but a lot of my work in recent years was helping at a higher level through architecture decision-making and connecting the dots between people whose work overlapped.

Khan Academy isn’t a huge organization, but it’s large enough that there are many tasks like those described above that don’t neatly fit as anyone’s job. I am truly grateful to have had this work recognized as valuable, because this kind of work is often invisible.

Ironically (since I’ve just left), this is actually a great time to join Khan’s engineering team. The vast majority of the backend code is now in Go-based services connected up to the frontends via GraphQL. The web frontend Is almost entirely a React-based single page app. No code is perfect, but most systems don’t get the chance at modernization that Khan Academy’s have had.

That modernization will be helpful in the coming years, because there’s still a lot of work to go in providing a free world-class education to anyone, anywhere.

I wanted to send a big “thank you!” to everyone I’ve worked with at Khan for being so great to work with and for continuing to pursue that mission.