The $13,000 launch of my code review course

Featured on Hashnode
Featured on daily.dev

Several months ago I launched my first info product, a video course called Master the Code Review. I built it from scratch, on my own, and from my own ideas. So far it's done over $23K in revenue, with $13K in the first month.

products-23K.png

I'm not writing this to flex — there are many launches more successful than this one. Rather, I want to be transparent about how I built it, and reflect on some lessons learned. I know many developers aspire to launch creative projects. Hopefully this will be helpful!

480p-9-seconds-compressed.gif

July 2021 — The idea

I've always been inspired by the creative challenge of building a project that scales with my time. Info products are good candidates — build once, sell many.

I started writing online almost 2 years ago. My pieces on code reviews did well. For example, over 68,000 people have read this Twitter thread:

In July 2021, I left Amazon Web Services to be a freelancer. Freelancing gave me some time and project flexibility. Around this time, I got the idea to build a code review course.

But creative projects can get massive, quickly. At the outset, they can be intimidating.

Then I came across a video course by Daniel Vassallo: Everyone Can Build a Twitter Audience.

Watching this course changed my entire perspective on info products.

The course is a 90 minute, unedited video of Daniel talking about what he did to grow on Twitter. He's using a bad microphone, bad lighting, and slides that don't even have a theme. (Daniel, please forgive me for roasting your course. 😂)

twitter-audience-course.png

Yet the course content was incredibly valuable — it changed the way I approach and leverage social media. It's worth twice the price I paid. I realized that courses don't need to be fancy to be valuable. The content is what really matters.

He'd launched it on Gumroad. In short, Gumroad is a simple website where you can upload files, and put them behind a paywall as a single product.

I was inspired to take a similar approach. I'd focus on high-quality content, without fancy and extravagant extras. (I did decide to edit the videos, though. 🤣)

So I started building — with a horrible blue background, sub-par lighting, and a microphone I barely knew how to use.

paypal-diff-view.jpg

September 2021 — Naming and structure

I've learned that the name of the product should directly communicate its value.

Also, a single sentence or phrase should describe it. Like Apple, when they first launched the iPod: "1,000 songs in your pocket."

For the name, I went with: Master the Code Review

What isn't immediately obvious is that I cover code reviews in all 3 dimensions: (1) the code review process, (2) giving good reviews, and (3) writing good code that'll be reviewed.

I went with: "Forge a better process. Give better reviews. Write better code."

I had a hard time reducing this to a single phrase. So, I went with it. 🤷‍♂️

October 2021 — Announcement and email list

I had no idea if anybody wanted this. To gauge interest, I set up a simple website to collect emails.

I already owned a personal website, built with Jekyll, for freelance and blogging purposes. I decided to repurpose that.

Here's what it looked like:

website-at-launch.png

It was... pretty bare. I didn't know anything about copywriting, so I didn't know what else to put. I improved on this later, which I'll get to.

I used Gumroad for my email list. I wrote a launch announcement thread, explaining why I was building the course. At the end, I linked a call to action to subscribe on my website.

From the launch thread, I gained about 150 email subscribers! 📈

I later realized this announcement was flawed. There were too many hurdles. They'd have to: expand the thread, scroll all the way to the bottom, click the link to the website, and enter their email.

That's asking a lot. In hindsight, probably way too much. But I still got 150 signups — so I took this as a small win.

launch-email-list-growth.png

November 2021 — Stagnation and impostor feelings

After the initial announcement, signups stagnated. Over the next 60 days, I gained about 50 signups — less than one a day.

I had the launch thread pinned to the top of my Twitter profile. I used my biolink as the website in my Twitter profile, and within it, linked the landing page.

Even with 12K Twitter followers, and writing tweets every day, signups were slow.

This caused me to doubt myself, and question what I was doing. I felt like an impostor, undervaluing my own work.

"Will this even be valuable? Should I abandon this project? Was the initial interest a fluke?"

December 2021 — Making adjustments

Rather than abandon the project, I decided to make some tweaks.

I started with the website. There wasn't much information about the product's value. There also wasn't incentive for people to sign up. OK, they can enter their email — but what would they get in return?

So I learned a bit about copywriting. Some key lessons:

  • Show, don't tell. — I included screenshots of the course content. Even if a single slide was out of context, it still showed a preview of the topics.
  • Sell the journey, not the product. — People want to evolve, and improve. I included some personal anecdotes about how code reviews helped me level up.
  • Establish credibility. — I already had a solid body of public writing, in the form of threads and articles. With permission, I embedded Quote Tweets of people who had freely chosen to share my content.

These are general principles — but honestly, I have no idea if my copy was strong or not.

The updated website looked something like this:

whos-the-instructor.png

To reduce hurdles, I removed the biolink from my Twitter profile. I included a direct link to my website.

Now, I needed signup incentive. So I learned about a lead magnet — a small sample of the product; a sneak peek into its value.

At this point, I'd scripted most of the modules. So I prioritized a 20-minute lesson called Writing effective code review comments — I knew it would be a strong one. I filmed and edited it to completion, before filming anything else.

Then I used Gumroad's email workflow feature to automatically send the lesson to new email subscribers after signup.

workflow-writing-effective-code-review-comments.png

Over the next 2 weeks, I gained another 50 subscribers. I was rolling at a faster pace, at about 3.5 new subscribers per day.

The new subscribers were a small win — but something else happened, which gave me a huge confidence boost.

When I posted my slides to the sample video, the tweet was shared by a Principal Software Development Engineer on the AWS EventBridge team. I'd never worked with him during my time at AWS, but we'd interacted several times on Twitter. I can tell he's brilliant, and very strongly opinionated.

He quote tweeted the sample:

I'd been building the course with junior and mid-level developers in mind. But this anecdote gave me an important realization: software engineers at all levels could benefit from the content.

Some of the impostor feelings melted away. It started to become a project I could be proud of, one that I'd be willing to share with companies and teams globally.

Even though I used Google slides, and was awful at video editing.

January 2022 — Creating momentum

I was about 90% done with filming, with only editing left. As I finished video lessons, I sent them out to email subscribers every few weeks.

I wrote more Twitter threads:

Leading up to the launch, I wanted to experiment with more platforms.

I started posting on LinkedIn. It was a HUGE game changer.

I didn't have any audience on LinkedIn. My "following" count was mostly real-life connections. About 1/10th of my Twitter following.

The response from the first post was incredible. I gained 100 email subscribers in a day. After posting a few times a week for a month, my email subscribers nearly tripled. 🤯

Early February 2022 — Pre-order

I finally felt confident enough for a pre-order release.

There were 684 people on the email list. But I still had no idea if I'd make a single sale.

Before sending the announcement, I was very nervous.

"Did I price it too high? Too low? Should I have added more testimonials? Does this solve a real problem? Is what I'm saying valuable? Why would anybody listen to me?"

What kept me grounded was remembering why I'd built the course in the first place.

I reminded myself, in writing, that I built it for the me of the past. The developer who struggled addressing 50+ comments on code reviews. The developer who stared at a code review and didn't know what to look for, or how to comment.

My criteria for success: If this course helps at least one developer out there, it's a job well done.

I finally worked up the courage to click send on the email announcement. This is what happened:

480p-9-seconds-compressed.gif

In 48 hours, I made $1,980. And remember, this was for pre-order sales — the product wasn't even launched yet!

I was ecstatic. "This project may actually work!"

Late February 2022 — LAUNCH 🚀

The successful pre-order gave me the motivational push to finish the course.

I gave my Twitter friends a heads up about what I was launching, and when. I'd been sharing everything I know for a year and a half, so I was hopeful that other creators and friends would help spread the word.

They helped. I'm incredibly grateful. 🙏

The actual launch tweet was quite easy. A simple blurb about the course's value, and a link to it.

March and April 2022 — lessons learned

Some numbers, after the first 2 months:

  • ⭐️ 783 sales to individual students
  • ⭐️ 27 sales of the team license to organizations
  • ⭐️ 100% 5-star ratings (46 total)
  • ⭐️ Praise from CTOs, company founders, FAANG principal engineers, senior engineering managers across big tech
  • ⭐️ 1 company integrating it directly into their new hire training

Feedback through tweets, messages and blog posts has been positive.

I've had some time to reflect on the lessons learned.

Here are a few things I would've told myself, at the start of the journey:

Scope it small.

You're going to want to add more details. Especially on a topic you know inside and out. Those details will accumulate.

My course ended up being 4+ hours of video, even with lots of editing and elimination. This could've easily been 3 separate courses.

Prune challenging details.

There are some details that require a massive effort to produce. For example: visuals, graphs and samples. Reflect realistically on how much value these would actually provide, and eliminate them accordingly.

Share the content as early as possible.

By writing tweets and posts, the internet (sometimes brutal) held me accountable for ambiguities and inaccuracies. This helped me refine my ideas.

By sharing videos with my email list, people told me what I was doing wrong. In my first video, I wasn't looking at the camera, my microphone was too far from my face, and my audio was overly compressed. I had no idea at the time.

Small encouragements go a long way.

Creating something from nothing is a daunting journey, and can get quite lonely. It's difficult to see who's resonating with your ideas.

Now, when I see people creating, I give them a bit of encouragement. Small words made a big difference for me, and can make a big difference for others.

Don't be afraid to experiment.

I always thought LinkedIn was cringe. And I was initially worried about what my former co-workers would think about my posts.

But my course launch wouldn't have done half as well, if I didn't start posting there.

Plus, I've gotten very positive responses from people who know me in real life. When I tell people, "I created a code review course!" most of the time, the reaction is "Wow, that's awesome — our industry needs that!"

Experiment, and stick with what works.

Create for your younger self.

Think about a challenge you've overcome. Think about how you've helped others overcome similar challenges.

Build with the mindset of helping these people. It'll ground you in reality, and motivate you to launch.

May 2022 — Was it worth it?

As with most info products, the launch saw a huge spike in sales, and leveled off over time.

sales-graph-all-time.png

It's easy to look at the numbers, compare them to a FAANG salary, and conclude that the project was worth peanuts. 🥜

But that's a bit short-sighted. To me, it was absolutely worth it.

Over 800 students have taken the course — that's 800+ people I've helped with something I struggled with.

In addition, this journey taught me many skills: marketing, copywriting, sales, accounting, pricing, among others. These are things I likely wouldn't have learned, had I stayed inside my technical comfort zone.

It's given me some credibility, and a growing customer/following base for which I can build upon.

I've also met some prolific technical creatives and friends along the journey. People like Gergely Orosz, Alex Xu, Louie Bacaj and Alex DeBrie have been extremely kind and helpful.

Plus, word of mouth is a nice surprise:

June 2022 — What's next?

I'm not finished sharing what I know. I may go deeper into code reviews, or expand to other software engineering topics.

In general, there's a saturation of content for beginners, teaching a specific framework.

There's a scarcity of content for mid-level developers, teaching framework agnostic principles. And this type of content is my bread and butter.

The success of Master the Code Review shows that there's demand here.

Let's see what I create next! 🔹

Like this article?

Check out the product which inspired it — Master the Code Review! License available for individuals and teams.

master-cr-title.png