On Blogging, Writing, and Habits: This Was 2019

  • January 11, 2020
Table Of Contents

There it is. 2019 is gone. 2020 is here. I feel old.

As I did last year, I take this time to reflect on my year 2019 and to set some plans for 2020. This is more for myself than anyone else, but you might enjoy some of the insights to the blogging and habit building I did in 2019.

The Blog

Let’s start with a review of this blog in 2019. The blog has started its life in 2018, so 2019 has been its second year with any noteworthy traffic. And it has been a great year in all regards.

Blog Posts

I have published 27 blog posts in 2019. That’s a little more than last year:

Blog posts per month

The bar chart shows that I’ve been pretty consistent in writing. This is thanks to my habit of writing a bit every day.

Traffic

I had almost 600k users (as Google Analytics counts them) reading the blog over 2019:

Visitors 2019

Those users added up to more than 1 million page views. That’s more than three times the traffic of the previous year.

This increase was thanks to concentrating my writing efforts on comprehensive tutorials around Spring Boot that go deep into a topic. Also, my articles not only explain how to do something, but why. The most successful articles are all of this type:

Page views over the last 90 days

Mailing List

I started the mailing list in the middle of 2018 with Drip, then migrated to MailChimp a couple of months later because Drip was too expensive ($40 a month is just too much when you don’t make any money with your blog).

This year, I migrated the mailing list again, because MailChimp fucked their customers. They changed their prices without announcement, including having to pay not only for the number of subscribers but also paying for subscribers that have unsubscribed from my list. All this while increasing the prices overall. This is not acceptable.

This year, I ended up with MailerLite. They have solid pricing tiers that match the growth of my mailing list, so all is good. I currently have ~1.250 subscribers and pay $15 a month, which is fine.

For some months while working on my book, I gave it away for free for subscribers of the mailing list, which had quite an effect on the subscription rate. I stopped that when the book was finished, though, because it was too much work to give away for free forever. I’ll have to think of another welcome present that provides enough value to make people want to subscribe.

Since July (when I migrated to MailerLite), I sent 10.550 emails in 10 newsletters:

Mailings since July 2019

That’s pretty much one mailing every two weeks, which I had set as a goal.

The mails each contain at least one link to new content on the blog and one more interesting tidbit - either another link to new content or a link to something else that I think the readers might find interesting.

According to the stats, the mails are received well:

Open and click rate

These numbers are much higher than my research about mailing lists would have suggested! Thanks for reading those mails, everybody! Let me know what I should change (if anything).

Making Money with the Blog

I haven’t been making any money with the blog until recently.

As soon as my book was half-finished, I advertised it in the sidebar of the blog. People started buying it even though it wasn’t finished yet. Thanks to those readers! That added to my motivation to finish it because I didn’t want to disappoint readers that have paid real money for the book. That’s a good forcing function and a great benefit of self-publishing.

I’ve played around with other ways to monetize the blog. Amazon affiliate links for my book reviews don’t work because no one reads my book reviews (which is OK, because I write those reviews more for myself than for anyone else). And I don’t want to plaster the page with affiliate ads just so that someone clicks on it.

In October, I was approached by Carbon Ads and asked if I would like to serve their ads. They serve developer-specific ads only, in a very subtle way. I could even filter out ads for MailChimp to get revenge for their pricing stunt.

Currently, I’m earning about $100 per month with those ads, which is great. From that, I grudgingly pay $9 each month to Disqus to remove their filthy ads from the site. I kept getting ads like “Her Belly Keeps Growing, Doctor Sees Scan And Calls Authorities” or “She dips a tea bag in a sink full of dirty dishes… You will too when you see why!”. I don’t know what I did to deserve those ads, but I want to keep them as far away from my audience as possible, so I pay Disqus for it. I wonder if that’s their plan all along….

I’d like to replace Disqus with another comment service, but don’t have a plan for it, yet.

New Layout & Design

In August I decided that I was bored by the visual theme of the blog. I used the Minimal Mistakes Jekyll theme, which I had originally chosen for exactly its plainness. But now I wanted a little more excitement.

I finally chose to base my new design on the webmag HTML theme, which I had to transfer into a Jekyll theme first. It was less work than I would have expected and I learned a lot about Jekyll.

As a person who is notoriously bad in CSS and design in general, I’m proud of the result.

I still take feedback, though. All you designers out there, let me know what I did wrong.

The Book

In April 2019, I self-published my (then unfinished) book on Leanpub. I started with a very low price (I think it was $4.99) and added a Dollar with each chapter that I published. To my surprise, people actually started buying it. This was very rewarding and gave me the motivation to finish it so as not to disappoint the readers.

I finally finished the book in October, just in time for my journey to the other end of the world.

The book has sold more than 750 times since April and, while the book was unfinished, I gave away about the same number of copies for free as an incentive to join my mailing list. Leanpub gives me 80% of the customer price, which is quite a lot compared to the usual 10 to 20 percent old-school publishers pay.

In total, I made about $5.500 with the book in a little more than half a year’s time, not counting the sales from the print version, which is published in the old-school way by Packt. And this old-school way means that I get a royalty statement each quarter for the second-to-last quarter. This means I’ll know how the book sales are going half a year after the fact. A great way for an author to know if they’re on the right track…. I’m glad I took the self-publishing route.

All in all, the book was - and still is - a very rewarding experience. Thanks to all the readers that bought the book and especially to those that have provided feedback to make it better! I’d like to write another one at some point, but I have to find another topic that drives me, yet.

Habits

2019 has been my habit-building year. I’ve read a lot about habits: The Power of Habit, The 7 Habits of Highly Effective People, Deep Work, and Atomic Habits (review pending). I also read Everybody Writes which teaches about writing habits.

After having read all these books, and having successfully established some habits, I’m convinced that every one of us can do pretty much everything if we build the habits to support it.

Let’s look at the two habits I have been very consistent about during the last year.

Write a Bit Every Day

I have a full-time developer job to pay the bills. The writing I’m doing on my blog and in my book is a hobby. I do it because I like the feeling of having created something helpful to others. Of course, it’s also fun to earn some money with it, but this hasn’t been the case at the start of last year.

I also have a wife and two kids that I like to spend some time with now and then.

You can imagine that it’s hard to get any writing done in these circumstances.

You can also imagine that my reward for writing (the feeling of having created something helpful) only sets in after I have actually finished writing something. This is a vicious cycle because If I don’t get anything done, I’m not motivated to write more, and vice versa.

So, I concluded that I need to write a little every day to create a feeling of progress that gets me going. And this works best if it’s at a fixed time and place.

In the evenings after work, I’m too mentally exhausted to do any good writing. I can get something done, but it’s hard and I get distracted very easily. This was hard to keep up, so I didn’t regularly do it.

This left the mornings before work. I can’t concentrate, though, with my family up and about in the house, so I decided to rise at 5.30 each morning to get some “deep work” time before my family gets up. This was hard in the beginning, but my sleep cycle has automatically adjusted after a couple of weeks and now I usually go to bed at 10 pm most days so I still get the 7 hours of sleep I need.

These 1.5 hours each morning make all the difference! I’m still a painfully slow writer in my opinion (I guess that I get done 300-500 words in a morning, and that’s not counting researching and example code). But I get a bit done every day. I feel progress. I get regular rewards for finishing a blog post, or a chapter. This habit allowed me to work on my book and my blog in parallel: a chapter in the book in one week, a new blog post the next week, and so on.

After a year of rising early to write (or sometimes do other productive things) each morning - with only the odd day in between where I didn’t do it - this habit is so ingrained that I experience a feeling of loss when I skip my morning session. This feeling is enough motivation to get me up early the next morning.

Meaningful Reading

Reading nonfiction books is very inspiring. I get new ideas for my writing, for my work as a software developer and my life in general.

I’ve read a nonfiction book every once in a while before, but I wanted to read more, get done faster, and better retain the material of the books I’ve read.

So, another habit I committed to last year is what I call “meaningful reading”. I maintain a list of books I’d like to read at some point. I add to this list when I learn about a book in a talk, podcast, or another book. From that list, I make sure that I have a stack of books ready to read on my desk. Each time I’m done with a book I immediately choose the next one from that stack.

I take notes while reading to make the topic stick in my useless memory and I use those notes to write up a summary of the book on my blog to make it stick even better (and to be able to look it up when my useless memory finally deserts me).

All book reviews together make up perhaps 1% of the blog’s traffic, so no one reads them. But that’s OK because I do it for myself. It’s all about the process of taking notes and then transforming those notes into a summary. The process is what keeps me going.

And the paper notebook I use to take my notes in. In a weird way, this notebook motivates be to read more because my completionist self wants me to fill it up with my illegible notes.

So, the idea of taking notes and writing up a summary alone gives me the motivation to start and finish a book. But still, I need a regular time and place to read.

So I started reading in the lunch break at work every day for about 30 minutes. Since I moved to Australia and traded my commute by car with a commute by bus, I’m reading each morning on the bus, and sometimes in the afternoon on the way back, but I’m usually too spent after a day’s worth of knowledge work. Taking notes on the bus is hard, by the way, because all Australian bus drivers seem to brake hard at the last possible moment just to spite me.

I got through 11 nonfiction books this way over the last year. I’m reading more than before, and I retain more of the material in memory than before. It’s a big win!

A New Job at the End of the World

As if all of the above wasn’t enough change for 2019, I accepted a job offer with Atlassian in Sydney. So, my family and I moved from Germany to Australia in October and everyone is starting a new life here.

So far, everything works out nicely (except for the bush fires). The job is great. My family seems to get along. I have more time for my family since I’m usually home earlier.

We don’t know how long we’re going to stay Down Under. For now, we’re here to stay.

Plans For 2020

Let’s look at the New Year’s resolutions for 2020. Most importantly, I want to stick to the habits I described above. But there’s more I want to achieve this year:

  • I want to read (at least) 15 nonfiction books from cover to cover
  • I want to prepare a fun talk connecting psychology and habits with software development
  • I want to start (and perhaps even finish?), another writing project (perhaps on the same topic?)
  • I want to speak at 3 or more conferences or meetups
  • I want to double the visitors to my blog by working together with other authors and editing their work
  • I want to build a habit of working out to get my neglected body into shape
  • I definitely need to take surfing lessons while I’m in Sydney!

So, What are your goals for the year? I found that sharing my goals with the world helps me to stick to my word.

Have a great 2020!

Written By:

Tom Hombergs

Written By:

Tom Hombergs

As a professional software engineer, consultant, architect, general problem solver, I've been practicing the software craft for more than fifteen years and I'm still learning something new every day. I love sharing the things I learned, so you (and future me) can get a head start. That's why I founded reflectoring.io.

Recent Posts

Understanding Null Safety in Kotlin

One of the standout features that sets Kotlin apart is its robust approach to null safety. Null safety is a critical aspect of programming languages, aiming to eliminate the notorious null pointer exceptions that often plague developers.

Read more

Merge Sort in Kotlin

Sorting is a fundamental operation that plays a crucial role in various applications. Among the many sorting algorithms, merge sort stands out for its efficiency and simplicity.

Read more

Extension Functions in Kotlin

One of Kotlin’s standout features is extension functions, a mechanism that empowers developers to enhance existing classes without modifying their source code.

Read more