Hi, I'm Nick Janetakis, a self-taught full-stack web developer and teacher who focuses more on the DevOps side of things.
I've been writing code for about 20 years and have been doing freelance consulting work for most of that time. A few years ago I wanted to take a shot at teaching online courses, and I now focus my time on writing content, but I still do freelance work and hack away on my own side projects too.
In the past 18 months I've taught over 20,000 people about Docker and other developer-related topics. Throughout that process, my course-related income has been about $165,000 USD. The monthly breakdown is a bit all over the place. Sometimes it's $4,000, and sometimes it's $15,000.
I hit a stretch where consulting income slowed down, and I brainstormed ideas on how I could create another income stream without having to apply for a job. I discovered long ago that I'm not equipped to work as a traditional 9-5 employee, but that's a story for another time.
I validated the online course idea by creating a 30-day, $12,000 Kickstarter campaign to make a Flask course. There was no rhyme or reason on why I picked Flask specifically. I was personally using it for quite some time and I think it's a fantastic web framework.
I had no following or mentors, or any idea what I was doing — especially not when it came to running a marketing campaign for Kickstarter. But I lucked out: an Australian businessman backed nearly the entire project with only a few hours left in the campaign. It was quite the 30-day adventure.
My backup plan was to create the course even if the campaign failed, but achieving success through the campaign invigorated me with confidence that this might really work. If it hadn't been for my newfound Aussie buddy, I'm not sure I'd still be creating courses today.
You can say I was lucky, and I definitely won't contest that, but I like to think that you make your own luck. This opportunity only came about because I put myself on the line and took some form of action. If I had done nothing, there'd have been no chance of this ever happening.
It took a slew of skills to create the course. Here I was, an introverted software developer, suddenly on the hook to make a video course with no teaching experience. Worse still, I had no idea about audio or video editing. But hey, who doesn't love a good challenge?
Honestly, it didn't cost much to get started. I borrowed a microphone from my friend and bought a Camtasia license for $99. I still use that program for recording and editing the screencasts today, but I've since upgraded my microphone a few times. I posted a current list of hardware and software that I use for everything on my site.
While it didn't cost a lot of money to get started, it did take a long time. For a tech course you need to create all of the source code and examples for the course, thoroughly test it on multiple devices, and then create a lesson plan around that content.
It took me around three months of working 70-80 hours a week to make the first course. I put all of my freelance work on hold (except for maintaining existing clients) and worked on it non-stop until it was done. I even made my Kickstarter deadline.
I wrote around 90,000 words of scripts to help me narrate the course, put together a massive 4,000+ line Flask application as the example app, and prepared all of the slides. And that was only half of the job. The other half was recording and editing the videos.
I still do pretty much the same thing for my current courses, but I've optimized the work flow a ton, while drastically improving the production quality. Nowadays, I can make a 5-hour course in about 2 months while working half the number of hours, which frees me up to blog more and take on new freelancing gigs.
I initially launched my first course with no prior audience. All I did was post replies on Reddit and Hacker News when an opportunity came up. I didn't really pitch the course. Instead, I gave high-quality replies to anyone who asked a question and then proposed the course at the end if they wanted to dive deeper.
Honestly, I haven't hit the point where I have my own huge audience. I have fewer than 3,000 people on my email list and a very small social following. Heck, I don't even have a Facebook account.
All I do is put my head down and write blog posts, which is what I've been doing for the last 2 years or so. For the last 6 months I've been posting twice a week. I get about 12,000 unique visitors per month, but my blog has a lot of posts that aren't relevant to my courses.
For example, my latest course, HTTPS with Let's Encrypt, along with Dive Into Docker, doesn't really get that many leads from people looking at a blog post on how to pick a good monitor for software developers.
Lately I've been trying to improve things by making more focused free content, such as a free intro to Docker email course that's on the bottom of any Docker related blog post. It gives something of value for free on a topic that Docker visitors are interested in, and it naturally leads into buying the paid course.
That's only a recent addition, but it's showing promise. It's a 5-day mini-course, and no one has unsubscribed yet. It has also resulted in a few sales.
I haven't tried paid advertising — mainly because I'm a software developer myself and I know how much I despise ads. There's about a 0.00000001% chance I would ever consider buying learning material through a paid ad. Maybe I'm hurting myself in the end from being so biased, but I like to think my mindset is similar to other developers.
All in all, I sell about 90 organic copies per month from all of my courses combined, but that only includes my personal marketing efforts of blogging and posting on forums that are relevant to what my courses are about.
This is a very long-term approach, and if you're just getting into content creation yourself, don't expect immediate results. It will very likely take years before anything materializes. But the bright side is that you can generate income with your courses through other sources from day one.
Currently I sell each course as a one-time purchase, which includes updates and full-time support. (Plot twist: I've answered nearly 4,000 questions since I started doing this.)
An interesting side effect of creating courses is that folks will start contacting you with other paid opportunities, such as freelance and speaking gigs. It's an excellent combination that naturally leads to multiple revenue sources.
Self-promoted organic sales are in the neighborhood of $3,000/month, with spikes when I release a new course. For example, the Dive Into Docker course that I released three months ago has generated $22,000 total so far, with a bulk of that happening in the first month.
Both Dive Into Docker and HTTPS with Let's Encrypt are being hosted and sold using a third-party course hosting back end called Thinkific. For now they get the job done, and it saves me from having to spend months creating my own back end for hosting courses.
I also use third-party marketplaces like Udemy for some of my older courses. In fact, this is how I initially started. I have a love/hate relationship with them. On one hand, they provide a decent chunk of my course income, but on the other hand, one of my goals is to build my own audience and decouple my dependency on Udemy. That's why my latest and upcoming courses will not be sold there (most likely :)).
The issue with Udemy is that they constantly sell your courses for $10 and then take 50%. Plus, as with any other marketplace, they have crazy search algorithms that punish older content, and instructors are left in the dark for a lot of things. The biggest downside is they don't give you access to your own students' information, such as email addresses, which essentially locks you into their walled garden.
Also, as competition increases in your niche, you can suddenly wake up and notice a course that was making $150/day drops to $20/day, and there's nothing you can do about it other than to make a new course.
Here's my lifetime earnings on Udemy:
The takeaway from this graph is that in March 2017 I started to lose a lot of revenue on Udemy, but it's not a total loss in the end. That lost income is now coming from my own self-promoted sales outside of Udemy.
In terms of expenses, I currently pay $99/month for Thinkific and $10/month to host my personal site and course landing pages on DigitalOcean. Udemy doesn't charge a monthly fee, but they do take 50% of your revenue.
The biggest lesson I've learned here is that using marketplaces can give you a substantial amount of income early on, but you're pretty much signing your soul to the devil. If you can afford to do things on your own from day one, you'll likely be better off in the long run. Just understand that the risk is much higher, because the turnaround time before you make anything could be years (or never).
It took me a long time to figure out that I genuinely enjoy creating content, and if we lived in a world where money didn't matter I'm certain I would be doing this for free.
In the end, I just want to be able to travel the world without any financial pressure or dependence on a single location. If I can do that while making other developers' lives easier by sharing everything I've learned, it puts a big smile on my face. To me that's living the dream.
I'm not in this solely for the money, but I'll admit, I do fantasize about roaming the Earth while making $45,000+/month and never having to worry about income for myself or future family.
If we're talking about personal goals, I want to explore all sorts of caves around the world while listening to death metal. Of course I'd take breaks throughout the day to answer any questions people had about my courses (obviously!).
Moving forward I'm going to continue creating content and hope something sticks.
I know it won't be an easy path, and I foresee there being two roadblocks that I'll need to get past first:
The biggest challenge was underestimating how much effort goes into creating and selling a video course. Even if you ignore all of the new skills you need to learn to create the course, there's the whole marketing aspect of it.
For example, I spent at least 100 hours just on researching microphones, but that doesn't compare to the amount of time I spent learning how to sell a product. I have no mentors or friends who started their own business, so I had to learn everything from books. I'm constantly researching and trying things out to improve. It's a never-ending process, but I enjoy it.
The worst decision I made was getting lazy. There was a 6-month period where I didn't make a new course because my previous courses were doing really well on Udemy, but as tech courses on Udemy age, they tend to get worse ratings and rankings over a long period of time.
I got blindsided by that big time, because I woke up one day and realized one of my courses dropped from a 4.7 rating and a #1 course ranking for a specific niche to a 4.2 rating and a middle-of-the-page rank. Nothing changed other than time, but today that course makes 5x less per day than it used to. It didn't happen over night, but I didn't pay enough attention to it.
There's also an ongoing struggle where I wonder, "Should I put my newer courses on Udemy?" which really takes its toll. It's very stressful to be in a constant state of indecision and uncertainty.
If I were starting over from day one with the same financial circumstances, I would take the same path I did originally, except I would spend a lot more time learning how to speak in an engaging and non-robotic way. It took me a few courses to get to the point where I didn't sound a bit monotone.
No one ever told me straight up that my old courses were poorly delivered, but when I look back at them, it makes me cringe really hard. Even harder than when I tried singing in my latest "congrats you finished the course" video for HTTPS with Let's Encrypt.
I try to create products that would capture my own interest. For example, in the courses I record, I avoid narrating documentation and going over toy examples.
It's "production ready" or nothing in my book, so I aim to either solve real world problems or make the content very hands-on, where you're following along instead of passively watching.
I usually introduce "just enough" theory, followed by lots of doing. Out of hundreds upon hundreds of reviews, one common trend I've found is that nearly everyone likes this style of learning.
Lastly, a habit that I've been sticking with for a few months now has been to post something new on a regular schedule. Every Tuesday and Friday I post a new article. Sometimes it's a detailed tutorial, and other times it's a smaller tip. Whatever the case, it's something.
Don't take anything personally, and always spend your time and energy on things that you can control.
For example, if someone leaves a bad review on your course, such as "your course is the worst thing ever, you suck!" but then 150 other people say it was an amazing experience and that they loved it, you need to be able to brush off the single negative comment and double down on what is working for you.
Train yourself to think of more than one "right answer", because when it comes to running a business or creating anything, there is no single right answer. You can do things a dozen different ways and they might all work or fail. Just keep testing and use facts to guide your decisions.
Be on a constant lookout for opportunities, and don't be afraid to spend time brainstorming ideas. For example, as I write this answer, I'm literally thinking "having just answered all of these questions, I believe any motivated developer could start profiting from their first online course in 60 days without any prior audience or paid advertising."
I didn't hold anything back in this interview, but we've barely scratched the surface (due to time constraints). If you're interested in a step-by-step course on how to repeat the process while learning everything I've learned in the past 2 years then please let me know by filling out this two-question Google form. If there's enough interest, it may very well be my next course. (By the way, this is a real world example of pre-validating an idea — and it came out of nowhere!)
In the meantime, here are two books I've read in the last year that drastically changed how I think and live my life for the better:
My personal site contains a bunch of free articles and guides on general software development/DevOps topics, along with a list of courses that I've released.
You can also find me at @nickjanetakis on Twitter. Drop by and say hello.
Lastly, if anyone has any questions, please post them in the comments below and I'll do my best to answer everyone.
P.S., special thanks to Courtland and Channing. They've done an amazing job at building up Indie Hackers, and I really appreciate being a part of this community.