Balaji Srinivasan’s Online Course: Startup Engineering at Stanford (2013)

Balaji Srinivasan (@Balaji) mentioned the course he taught at Stanford in 2013 in his recent interview with Tim Ferriss. This was new to me, and I thought we might have stumbled upon a gem.

In short, he says: “This is the class I wish I had at Stanford before starting my first startup.”

Here is how Balaji described his course and the motivation behind the project in the podcast with Tim:

(edited for readability)

Tim: What was the subject matter and the intent behind the MOOC you taught?

Balaji: The title was Startup Engineering, and the concept was to deliver the class I wish I had had before doing my first startup. It's kind of like a time capsule back to somebody who was into math or into just technology in general, but was completely naive about how to actually run a business or anything like that. When doing my first startup actually, this is a rough approximation, but I thought that the primary difficulty would be something like "calculating difficult integrals." I thought okay everything else is kind of basic -- we can knock that out before breakfast, and of course, as often turns out -- this was not the case.

I was a career academic for many years, and in academia, there is a high premium placed on novelty of results or technical difficulty. There's some good aspects of this, you learn how to think rigorously and go premise... premise... premise... conclusion. You learn to really interrogate the results[...] You think rigorously in academia, and then you think, Okay, well that's that's the entirety of the world -- it's just technical difficulty, and it's not.

This course was meant for teaching the philosophy and all the nitty-gritty details to go from a command-line up to a website with payments and JavaScript, etc. You learn computer science in academia but you don't really learn software engineering. There's 1,000 details about how that works which are useful -- like Git. The reason you don't learn those things is because they change fast, you have to keep updating. That's one piece of my course philosophy...

The second piece was the philosophy of startups, meaning, what is the difference between a startup versus small business? or why is this happening now? There are key pieces of recent history.

For example, the NSF AUP. National Science Foundation had this thing called the Acceptable Use Policy in place for many years, and it prevented commercial traffic on the internet. How about that? The dot-coms we know and love were actually not feasible. Until I think about maybe 1991, plus or minus one or two years, until they repeal the AUP. [...] That's something which most people don't know. It really was something where one rule was holding back all this innovation. Things like this made a deep impression on me. Stuff like that I tried to convey in the course, alongside the nitty-gritty details.

I think most of the time, that kind of stuff is not taught the same case by the same person, you know with one idea coloring the other. I think that's part of why the course was popular.

A link to the full interview on YouTube

Though it was created a few years ago, Balaji said it reached some 250,000+ people as a MOOC. After some digging, I couldn't find the course anywhere on Coursera or Stanford... and even my youtube searches weren't finding anything.

But I asked Twitter and as usual... Twitter came through! Many thanks to Ronit Mangnani, Haiyan Alsaiyed, and Marshall Rev for contributing links! Linked below is the playlist of lectures from the course, posted on Youtube.

Notes from Balaji’s Course: Startup Engineering

This course bridges the gap between academic computer science and production software engineering.

“These notes are a combination of 1) The good parts of the lecture notes and assignments. 2) outside resources (e.g. suggested readings not covered in lecture), 3) My own notes.”

@Dideler’s Notes on Startup Engineering at Stanford

Another set of notes is more an archive of the slides and reading materials for Startup Engineering, saved to Github by @ladamalina. A valuable resource for those who are going through the lectures to reconstruct Startup Engineering.

Note: This course was taught in 2013, so some of the “Nitty Gritty” ideas that Balaji teaches may no longer be up to date (AWS, Heroku, etc.) I expect the philosophy around solving problems, moving quickly, and spotting opportunities will still be very relevant.

Testimonials about Balaji Srivivasan’s Course at Stanford

When I posted about this course on Twitter to ask for help finding recordings, notes, etc that you see here a few people replied who have taken this course. Here is what they had to say:

You can access the course contents by clicking the button below.

To read more about Balaji, read his work, and explore his new projects, check out Balajis.com