Lessons Learned from Writing Online


It’s been one year since I published the last issue of my newsletter. At that time I decided to step back from writing in order to spend more time with my family and focus on my growing responsibilities as the Senior Director of Data Science at 2U. Looking back on this last year, I’m very glad I made that choice.

Over the last few months, though, I’ve realized that I miss certain aspects of actively working on MLinProduction. I’ve begun writing regularly again, and I look forward to publishing some of what I’ve written. I consider this the beginning of a new chapter.

But before I start this new chapter, I’d like to share my reflections on MLinProduction. This is partially cathartic release. But I also intend it to serve as advice for anyone, especially technical workers, seeking to support themselves as creators, particularly those who create by writing online.

With that, what exactly did I achieve with MLinProduction? How did the community receive my writing? How many subscribers signed up to read my newsletter? To what extent was I able to generate revenue from the project? And what are my plans for future writing?

Before answering those questions, it’s important to understand what originally motivated me to begin MLinProduction and writing online.

Why I Started MLinProduction and What It Achieved

There were 2 main reasons why I started MLinProduction:

  1. I wanted to start a business that I could grow while keeping my full time job. Towards the end of 2018 I’d been reading about writing online as a path to starting a business. The main idea is to to grow an audience by consistently publishing valuable content. The writer can then monetize the audience in different ways such as building and selling courses or offering sponsorships. By routinely providing valuable content at no cost, the writer builds a trusting relationship with readers. Increased levels of trust and additional subscribers lead to increased revenue, if monetized appropriately. But new writers face the challenge of building a trusting subscriber base from scratch, which can take a significant amount of time (some say 2 years). Creating a niche media business by writing online is a subset of the creator economy/passion economy.
  2. I already spent a significant portion of my free time researching and sharing best practices for building end-to-end machine learning projects because of my full time role as a data scientist. This involved searching the internet for knowledge spread across blogs, newsletters, youtube videos, and academic journals. I consumed a lot of content and shared the best of what I found with friends who worked in data science. As a practitioner, I noticed that the signal-to-noise ratio of online machine learning content was extremely low – most of what I found didn’t help me do my job better. That said, if you spent enough time looking, you could find some very valuable information. Since machine learning was becoming more important in tech, my bet was that other practitioners would benefit from the time I was already devoting to researching best practices.

While I didn’t set explicit revenue or profit targets when I started the blog, I did imagine a future where MLinProduction was my main source of income. I was attracted by the idea of being fully independent.

We’ll return to this vision later, but first I’ll share what I accomplished after 2 years of active work on the blog.

Community Reception

Receiving unsolicited messages from my readers was one of the most satisfying aspects of building MLinProduction. Certain messages were shared in private, either through social media DMs or replies to my email newsletter, while others were shared publicly on Twitter or LinkedIn.

Here are a few notes I received from readers (I’ve hidden the names of anyone who messaged me privately):

This type of feedback was valuable for two reasons.

Early on it allowed me to learn that readers were benefitting from my content. Although I knew the audience wasn’t large enough to support a viable business, I knew I was headed in the right direction. This type of qualitative information is very valuable in the early stages of a growing business.

Second, the feedback was incredibly motivating. As I mentioned earlier, building an audience from scratch is hard work. In the early days, growth is very slow and revenue is non-existent. It’s important necessary to draw motivation from alternative sources. While I try to minimize my desire for external validation, I couldn’t help but crack a smile when I got feedback like this:

Hearing that my writing helped professionals in the field encouraged me to continue writing, researching, and sharing content regularly.

One benefit of writing online that I hadn’t expected was the connections I formed with specific readers. Several months after starting the newsletter, for instance, the cofounders of an ML tool startup reached out to have dinner with me while they were in town for a conference. We discussed the ML tooling space over Peruvian chicken a la brasa) and the founders shared that they and their team were big fans of the newsletter. That was immensely gratifying!

While I really enjoyed our conversation and the chicken, the most hilarious moment of the evening came when the CTO asked to take a selfie with me because one of his engineers was “the number one fan of my blog”. I had my first groupie ✅ 🙌

Subscriber Growth

One of the most important metrics for an online media business is the number of email list subscribers. The MLinProduction email list is composed of individuals who shared their email address in order to receive the weekly newsletter, free downloadable blog content, or both. As of 1/29/2022 (exactly 3 years since I started building the email list), MLinProduction has 4,116 email subscribers.

Here’s a plot of the total subscriber count over the last 3 years, along with snapshots at 6 month intervals. I’ve also included other important email metrics including a 45.55% avg open rate and a 10.62% click rate (computed over all historical data):


The plot provides a very interesting perspective on the dynamics of growing an audience from scratch. (It’s important to note that this subscriber growth was completely organic, meaning that it came from subscribers finding my content through search, social media, friends, etc, and then manually signing up. At no point did I purchase email addresses from other organizations or use paid search advertising to grow the list.)

In 2019, my first year of sharing content, 700 individuals subscribed to the blog – roughly 1.9 subscribers per day. For context, in 2019 I wrote and published 44 newsletter issues, 19 blog posts, and 1 free ebook (a roundup of the most popular newsletter content from that year).

It wasn’t until my second year of writing that subscriber growth began to accelerate. Over the first 6 months of 2020, the list grew by about 1390 subscribers – about 2x the number of subscribers from the first 12 months but in half the time. Over 2020 the list grew by over 2550 subscribers total – about 7.07 subscribers per day, roughly 3.7x the 2019 rate.

This accelerated growth reflects the compounding effects of consistently publishing. Additional blog posts increase organic search traffic to the site. A larger subscriber base increases the probability that weekly newsletters will be forwarded by recipients to their friends, who in turn might subscribe. Subscribers beget subscribers. Of course this is predicated on the assumption that readers find the content valuable. (According to the previous section, my readers did.)

The 2021 numbers present an interesting case study in this compounding effect. I didn’t published any new writing in 2021 – my last newsletter was sent out on 12/1/2020. I did send 5 emails total in 2021, but these were only to share podcast interviews I took part in (which I’ve compiled into this YouTube playlist). Yet the email list grew by 843 subscribers, which is more than in 2019 when I was actively writing. This is the power of compounding at work.


While total number of subscribers is a valuable metric, it’s not the most important measure of business performance.

I’m really proud to share that I developed 6 different income streams from the project. I list these below, as well as the percentage of total revenue generated through each income stream:

  1. Sponsored Blog Posts – I collaborated with several companies in the ML tooling space to write and publish blog posts. Rather than pitch their products, I worked with these companies to maximize the value of these posts for my audience. Here’s the comprehensive set of sponsored posts.
  2. Newsletter Sponsorships – Certain issue of the newsletter were sponsored by companies. These slots were available for a fixed fee, but I also developed a pay-per-click model intended to drive traffic to the companies’ sites.
  3. Affiliate Advertising – Some of my content featured links to Amazon products and I would receive a small portion of sales if any products were purchased.
  4. Consulting Engagements – My blog indirectly served as an inbound marketing channel for companies seeking ML consulting. These companies paid me directly to advise them on a range of different problems.
  5. Live Digital Workshop – I ran a live 3-day virtual workshop where I taught ML engineers, data scientists, and software engineers how to use the Amazon SageMaker platform.
  6. Digital Course – After teaching the live workshop, I improved the content and developed an online digital course Build, Deploy, and Monitor Machine Learning Models with Amazon SageMaker. More on that in the next section.
Product Type Pct of Revenue
Consulting 61%
Course 23%
Blog 8%
Newsletter 5%
Workshop 3%
Affiliate <1%
Total 100.00%

When I started the blog, I only planned to monetize through building and selling digital courses. But as MLinProduction grew, two things happened.

One was that I read more about digital business and learned about additional paths to monetization.

But the more important thing was that serendipity began to open up new opportunities I didn’t previously imagine. For instance, my first consulting engagement appeared out of nowhere. A newsletter subscriber (who I happened to have met at a conference before starting MLinProduction), reached out and asked if I would teach a course at his company. Similarly the blog and newsletter sponsorships were a result of subscribers reaching out and asking if I could feature their companies in my content.

Daniel Vassallo talks about the impact of exposing yourself to randomness when building an online business:

In fact, one of the topics of his newest course (which I haven’t taken but am highly considering) is Recognizing luck:

Exposing yourself to randomness. Making randomness your friend, not your enemy. The cocktail party approach to serendipity. Being able to recognize good luck when it happens. And how your best ideas are often the ones you can’t even imagine yet.

Leveraging these other channels to provide readers value in exchange for dollars was one of the most intellectually satisfying parts of my experience.

Building an Online Course

My goal of creating and selling a digital course was stemmed from both of my motivations for starting the blog, as well as my passion for education.

  • Building a digital course is a great way to package information for a content creator’s audience. Student can really benefit from the structure of a well designed course focused on a specific topic. This is one of the main advantages of a course compared to sharing information through a series of blog posts or youtube videos.
  • In theory, selling digital courses should be an honest and valuable way to monetize an audience. The honesty derives from incentive-alignment between the course creator and students. A course creator that has built up trust with his audience by publishing free content over an extended period of time is incentivized to maintain and increase that trust. This means building the highest-quality course possible, pricing it fairly, offering customer support, etc. If these things are done well, the student gets a valuable educational experience, the course creator generates revenue, and both sides develop a deeper relationship.
  • Prior to teaching online, I had designed and taught graduate courses in big data engineering and data analysis. And my day job is managing the data science team at 2U, one of the largest EdTech companies in the world.

Building an online course was more than just a checklist item for me. It was the culmination of 2 years of effort towards cultivating an audience and a lifelong passion for education and learning.

That’s why I was so proud to publish my course Build, Deploy, and Monitor Machine Learning Models with Amazon SageMaker. Besides offering the prerecorded self-paced course, I was fortunate to partner with the folks at twiml to offer a live cohort-style course that met weekly for 6 weeks.

Course Performance

Students who completed the course were asked to fill out this short questionnaire. Although the sample size is fairly small, I learned that students generally enjoyed the course and content, but that there’s certainly room for improvement.

Most importantly, the vast majority of students who filled out the questionnaire remarked that they would purchase another course from me in the future.

What’s Next

Earlier I mentioned that when I started MLinProduction, I imagined a future where I worked full time on the blog. After 2 years of active work on the site, I realized that such a future is a viable option, but not one that I desire.

I could certainly focus on growing the audience, doing more sponsorships, building and selling more courses, etc. But I’ve realized that those aren’t the things I find most interesting.

I much prefer building data science products, teams, and processes that have real world business impact. And I really love doing that as part of a team of motivated and ambitious individuals.

Besides that, I believe that the value I offer readers is sharing my real world experiences from the proverbial trenches of the data science world. But the dichotomy of my blog is that the more time I spend building courses or doing sponsorships, the less time I have to build data science products and gaining the experience I’d like to share through my writing. It’s a catch-22.

But I do miss writing.

So rather than focus on short term revenue opportunities, I’m choosing to return to writing online, albeit in a slightly different way.

First, I will increase the scope of my writing. Rather than focussing exclusively on production machine learning, I’ll write more about data science in general. This includes writing about topics like:

  • Experimentation
  • Data engineering
  • Analytics/Business Intelligence
  • Building data-driven products
  • The intersection of data science and business

Second, I plan to write from the perspective of a data science team leader. I was an individual contributor when I started the blog, but my interest in some topics has waned over my last few years as a manager. Now I’m much more focused on the intersection of data science and business strategy. What levers can data scientists pull positively impact business results? That said, I will continue to write technical posts from time-to-time. Following my interests in this way will keep me motivated to continue writing regularly.

And third, I also plan to write and publish off-data-science-topic content on my personal domain at lpatruno.com. I haven’t finished setting that up yet, but if you’re an MLinProduction subscriber, I’ll let you know when it’s up and running.

I’m excited to share what I’ve learned and to use writing as a tool to learn even more. If you’d like to come for the ride, sign up below to receive my next post.

Thanks to Louie Bacaj and Jordan Buffalo for providing feedback on this post.


Source link


Leave a Reply

Your email address will not be published. Required fields are marked *