I’ve just finished creating Neural Networks for Hackers, an easily digestible online course in neural networks. It took me around a month of part-time work, or around 150 hours in total. In the past 28 days, it’s grossed around $10k, and I project it will make around $5k a month from now on. This post is kind of a postmortem of what went right and wrong, and how it might be replicated.

Day 1: Idea

Starting a lifestyle business had been at the back of my mind for a long time, mainly because I wanted some passive income so I’d be free to work on creative projects (in my case, VR games). I wasn’t sure exactly what to build, so I thought about what I had at my disposal —

  • online Twitter audience of ~10k people, interested in tech, VR, economics and gaming
  • 100k in free AWS credits
  • computer graphics skills
  • machine learning and neural networks skills

Some other ideas I had were building something like a balancing tool for game developers, or a cloud rendering service. The reason I decided to create a MOOC was that I saw a glaring problem with education in deep learning — the information you needed was buried deep within blog posts somewhere. It was often hard to know where to start, and you’d probably end up wasting a lot of time reading irrelevant or excessively academic information. Online education is in it’s early days, and the MOOCs available didn’t seem to quite match what people wanted.

The MOOC was a good fit with my online audience as well. My Twitter followers are generally tech-savvy curious people who love to learn. And “programmers” is a much larger set than something like “game developers”.

Day 2–7: Draft

I spent the first week or so drafting the text of the course. My original idea was “neural networks through gifs” — I’d create a class where there were no equations, just diagrams explaining what each neural network would do. The reader could just flip through and get a sense for what each network structure did.

I realized this wouldn’t quite work, because most part of the difficulty for programmers today was about how to apply theory to practice. Anyone could read a blog post about how a perceptron works — the hard part was understanding how and where to apply that knowledge. I ended up settling on a series of blog posts plus a series of screencasts.

Day 8: Indiegogo

My original plan was to create the course in full, and then release it to the public — but I was convinced by the online bootstrapping community to do otherwise. They told me I should sell pre-orders whilst I was finishing the product, which was fantastic advice. Mostly, it boosted my morale and confidence I wasn’t wasting my time.

The hardest part of creating an online campaign was creating a video, because I didn’t know what to put in it. My campaign video was not great at all, but my thinking was ‘better done than perfect’ — it was better to have a video rather than no video, and better to not waste time on making a great video that I could have spent on the course.

In retrospect, I wish I had put more effort into it, since I needed to make a second marketing video later on, anyway. However, since I could leverage my online audience for quick sales, it was in some ways better to get something out there to validate the idea. I also published the draft, so people would know what was in the course, without the video needing to be good.

Day 9–11: Audio recording

One of the biggest problems with online courses is completion — many people who start a MOOC will never finish. I had tried to make the writing as clear, readable, and engaging as possible, but I knew that people are busy and it wasn’t ideal for them to have to spend hours staring at a webpage.

I decided audio recordings were essential. That way people could listen to the class whilst coding or whilst in the gym. I originally wanted to hire a voice actor, since my own voice is somewhat quiet and a mix of different accents, but that would have been out of budget. I ended up settling on buying a high-quality mic, doing enunciation exercises, and recording it myself.

Day 12: Diagrams

I tried creating the diagrams myself, but I quickly realized it was not my skill. I hired an up-and-coming design freelancer on Upwork to create the diagrams for me. It worked out pretty well — the diagrams cost around $400, and the quality wasn’t bad either.

Day 13–20: Screencast prep

The hardest part of creating the course was the screencasts. The goal was to have 10 videos at around 10 minutes long where I’d go from theory to practice — taking a paper from arXiv and implementing it into Python. This required me to create a number of varied working examples of machine learning in practice. I relied pretty heavily on open source for this.

Day 21–25: Screencast recording

Actually recording the screencasts was kind of like presenting a cooking show — “here’s one I made earlier,” “I’ll leave this one overnight,” etc. I’d start out just doing screen recordings, then I’d edit out all the repeated actions in iMovie, and finally create an audio recording over the top.

Day 26: Putting it together

By this point, all the pieces were done. The freelancer had created the diagrams, the audio recordings were finished, and the screencasts were uploaded to YouTube. I tried using Contentful to store and present everything, but soon realized that the platform Teachable was much better, since it was made specifically for selling online courses. Unlike other MOOC platforms, Teachable had no specific requirements for video lectures.

Day 27: Marketing

The first task was to send the class to everyone on Indiegogo who had already paid for the course. I had a few different mailing lists I’d gathered over the years to market to, all stored on MailChimp, and offered those people discount codes to sign up. Most of my sales (about 60%) come from Twitter, where I have a pinned tweet advertising the class. The other 40% came from content marketing posts I wrote on Medium.

Very soon, people started emailing me asking for bulk discounts for classes of students they were teaching. This was great for me — sales and credibility both in one! I wanted to encourage this behavior, so I added a note about bulk discounts to the front of the class page.

Day 28: AdWords

The final step was to make this an ‘autonomous’ business. The ultimate goal was for the class to generate revenue without me having to pay much attention to it.

I set up some ads on Google AdWords with a budget of £20 per day, and ran some experiments. I was pleasantly surprised to notice that it would net me around 36 clicks per day, from which ~4 would result in sales. That gave me a customer acquisition cost (CAC) of £5 and a customer lifetime value (LTV) of £60! I increased the ad spend to £50 per day — I’m not sure how far this strategy will scale, but it looks promising.


This is my first ever bootstrapped online business, and it’s been a lot more fun than I expected it to be. It’s kind of like a real life video game that makes money. It’s sort of fun to watch the stats of people starting and completing the class, watch ad spend fluctuate, watch content marketing posts blow up, and of course, watch the sales come in. The hardest part for me, was convincing myself that it would work, and dedicating time to an unproven thing. Nevertheless, I’m surprised at how much demand there is for online education, and it still seems like an area where the perfect product has not quite been figured out yet.

Looking for inspiration? Browse hundreds of profitable online businesses and side projects, see their revenue stats, and learn how they got started.