Over a year of weekly blogging
My blog post on Python 3.10 on October 6th marked a full year of weekly blogging on this blog. It was a huge personal milestone for me and this blog post is the retrospective of this experiment.
I've written quite a bit about blogging during this experiment. I wrote about why I think blogging is beneficial to everyone, gamifying my own blog with achievements, the importance of providing an RSS feed and how blogging has become a great refactoring tool for myself. I may repeat some bits from these but won't go in-depth into those topics here. I recommend reading them through as well if you're interested in blogging as a developer.
At the end of this post, I also share posts and articles I've found insightful from other people so you can get different ideas and perspectives from different people.
The experiment and hypotheses
Every good experiment needs some hypothesis that it's testing so we can learn from them. Some learnings come unexpected regardless of our hypotheses but if we have none, we risk not finding out things.
Experiment duration
I set a goal of blogging weekly for 1 year, or 52 consecutive weeks. Now that I've reached it, doesn't mean I'm gonna stop blogging or even reducing my pace but I wanted to set an ambitious goal that was long enough to make the experiment impactful to learn from.
Giving an experiment an end date also helps me mentally: it allows me to approach it as a project that I can finish one day and not a never-ending thing. I was always merciful enough to myself that if I felt like I start hating writing, I'd stop anyway but for me, these kind of hard goals really help me push over the minor inconveniences.
Hypothesis #1: Writing regularly helps to write regularly
My first hypothesis for this experiment was something I already knew to be true from my previous experience. In 2014, I published over 70 blog posts and articles (+ a lot of unpublished stuff in my notebook) in a year.
From that experience, I had learned from that writing on a constistent pace makes writing easier. I wanted to reassess that experience with this experiment. If you've ever created something (writing, painting, drawing, etc), you might have encountered how difficult it is to get started when all you have is an empty page/canvas. That's how I often feel too.
As I kept writing and publishing weekly, I started to notice two things:
- It's easier to write when I write consistently. I found that weekly rhythm is something that works well for me. It keeps me in a writing-thinking mode all the time and when I open the editor, I have something to say but it doesn't consume all of my time and energy like writing daily would.
- I come up with ideas for what to write much easier. This used to be a huge challenge for me. "I don't have anything to write about" turned out to be just a struggle with an empty canvas. As a blogger, I started to see things through the lense of writing so I encountered a lot of things and immediately thought, "This would make a great blog post". A bit more about this later.
So hypothesis #1 was absolutely confirmed. A routine and momentum are so crucial for getting many things in this life done.
Hypothesis #2: Consistency is king
A bit less important hypothesis that I wanted to test out was about gaining readers and following on social media. I'm not great at social media, I barely have any following and sometimes when working in developer relations, I feel like I should be a bit better at it so I could have an larger positive impact with the work I do.
October 2020, I had 1414 Twitter followers. Now at the time of writing this in October 2021, after a year of weekly blogging and somewhat active participation in Twitter, I have 1582. I gained roughly a hundred followers in a year.
There are many reasons probably for this but I did kind of expect the regular blogging to have a bit more of an effect in the growth. I could analyze the reasons deeper but social media clout isn't really the motivation for me writing so I don't care to do that here.
I don't have detailed analytics for my website visitors. I only use Netlify's built-in server log analytics that gives me the last 30 days and I usually use that to check if a conference / meetup talk or something that went "micro-viral" in social media had any real effect – so far it hasn't. In general, I don't have a lot of readers or visitors to my website or blog. Way less than 10k monthly visitors.
A good side in having a smaller audience is that I know a huge part of my audience personally. They are friends, colleagues and people from the different communities I do things with. And it also means I get to experience the new ideas, inspiration or growth they gain by learning from my writing.
How did the experiment go?
Here are things I did, learned or experienced during the past year. I have not analysed them enough to confirm any kind of causation so take these as anecdotal experiences and not as a silver bullet to any situation.
Planning in advance helps
One question I get a lot is how hard is it to come up with ideas for writing. And I wouldn't say it's easy per se but I have some (very light) "processes" in place that helps with it. I already mentioned earlier that the momentum helps a lot and I come up with a lot of ideas because I'm constantly writing.
One interesting aspect that's completely hidden from the readers is that I don't publish the blog posts in the same order as I write them. There are multiple reasons for why this is: I have some recurring series (like Learning Rust on the first week of the month), the blog post is topical for a future date (like Python 3.10 on the Wednesday after the release) or because something more urgent came up after I had written something.
A really good benefit of this is that if I have some time to write something lighter (mostly meaning less research demanding) when I'm waiting for the train, I can write those whenever and they provide me a lot of buffer for inspiration or for posts that require multiple weeks worth of research.
If I'd always publish a post when it's done, I would end up in a situation where I always have max one week of prepare time and there would be zero buffer ever for bad weeks.
Next thing that helps a lot is something I started around mid-way through when I realized that I'm able to publish every week. I wrote all the week numbers of 2021 into a notebook page (I use Notion for my digital notebooking), filled in the previous posts I had already published and started to plan using it. I often have most of the weeks 2-3 months ahead planned on a topic level.
For example now, there's only one empty slot for the rest of the year. It's not set to stone though: I often move things around, scrap ideas and bring in new ones but it does give me a peace of mind when I know I have something coming up.
Visualizing it also helps me plan for the balance of topics. Since my aimed audience is mainly developers, I aim to have at least 50% of my blog posts technical in nature and of the others, many are related to being a developer even if not directly technical. I use color coding for this: orange background for technical, blue for personal, pink for community and green for other stuff.
This balance also helps because technical blog posts almost always take more time: researching, learning more, writing examples, testing and so on is more time consuming than writing about my lived experience.
In addition to my weekly list which is mostly for blog posts that I have decided to write and fleshed out a bit, I have a different page on my notebook for ideas. Right now, I have roughly 40-50 ideas that I have thought about but haven't decided to write yet.
On any given day, I might think about 2-3 topics that I've planned so even when I'm not writing or taking notes, in the back of my head, I process ideas related to what's on my plans.
Monthly series bring stability and interest
A good segway from planning is towards my monthly series. Since January, I've dedicated the first week of the month for my Learning Rust series. I didn't plan it to be like that but the first few ones ended up being at the beginning of the month so I retrofitted the entire series to be like that.
It's helped me because I can fill in the blog planner from the previous section: for each month, first week of the month is "Learning Rust #N: ???" until I come up with a topic. It's not set to stone though. For example this month I didn't have a Learning Rust post because I hadn't had time to code anything in Rust recently.
Another reason for having a regular series on a topic is that it can help build habits for your readers. Over time, as people learn every first Wednesday is Learning Rust Wednesday, they are more likely to remember to check it out and read it. Maybe they even start to wait for it.
I learned this trick from my meetup organizing: since the beginning, we've focused on having our Turku <3 Frontend meetup on the last Wednesday of the month because it helps people plan even before we can set up event marketing and in its own way, does big part of the marketing for us as people can put it into their calendars early on.
Another series that has been much less consistent is my recaps of codebase shows. When I had those streams, I would write a follow-up / recap of it for few weeks later to provide an extra information piece for the show itself. That way I had the livestream once a month + a blog post about it once a month and being on audience's radar every two weeks.
Weekly schedule is tough
Regardless of all these helping functions I've built over time, it's still tough to write and publish every week, for multiple reasons. It's been even more tough during the pandemic because for years, my habit was to go to a local pub to write. That was my creative zone and being stuck at home made it super difficult to get into the creative mood.
And then there's work and life and all the other things that take time and focus away. I'm a single guy so I don't have a family to take care of, which increases my available time a lot compared to some other people who have families. The lesson there is not to compare your output on anything with someone else who lives a different life from yours.
For some people, setting up a dedicated time for writing is what works for them. I don't do that because I'm not very good at that. I'm much more inspiration-driven writer so I write when I feel like writing and that's also why I need so many extra things like planners and idea banks to make sure I have material for writing all the time. If you want to try regular blogging, try out what works for you.
When I lived in San Francisco in 2014 and I was writing a blog about my experience there, I always wrote for an hour before work in the morning. That worked back then but right now, it doesn't fit my life so I've taken a different approach.
Sometimes this inspiration-driven approach means it's Tuesday night and I have nothing done and then I just push through, pick an idea from my list and write about it.
A great benefit of my way is that when I do feel inspired, I may write 3-4 blog posts on one sitting and that provides me enough buffer to meet my weekly quota even when some weeks I struggle with inspiration, time available or other reasons.
It was around week 30 or 35 when I felt comfortable enough to add "New blog post every Wednesday!" text to my blog's index page.
Sidenote: Building a buffer
This blog post is mostly about what I experienced but I do want to make one sidenote as a piece of advice for new bloggers.
You've probably seen a lot of blogs that have one (usually about the setup for their blog and what they plan to write about) or two blog posts and then it's abandoned. That happens quite easily and in all honestly, it's not a bad thing. If you feel like blogging wasn't for you, it's okay to stop.
But if you want to write more but struggle a bit to maintain a consistent pace in the beginning, I recommend writing things in a buffer and then publishing them on an interval (weekly, bi-weekly, monthly, whatever works for you). That way you can still publish things to keep the blog going even when you feel like not writing.
For a lot of people, seeing and hearing people read your blog is a big motivator but it takes time for people to find your blog and often when they read one post, they check what else is there. I'd even advice writing 2-3 blog posts before you publish your blog and then adding them all there (maybe even back-dating them) so people can read multiple pieces when they find you.
My blog is my platform
One discussion I had with myself a lot (and have had for years) is what I should blog about. This is especially in relation to the fact that having a tight focus and niche topic makes it easier to build readership as your readers will most likely find every post relevant and interesting. With tight focus, you'll also have an easier time in marketing your blog because there's a well-defined audience.
However, I write my blog mostly as an outlet for ideas that live in my head. I write because I love writing and because it helps me make more sense of those ideas. A very helpful blog post I read was Rach Smith's To be whole is the goal (btw, love the title of it) that gave me the required confidence that I don't need to build an audience with any means necessary.
One of the greatest parts of having your own website and your own blog that you control, is that nobody's gonna come and tell you (or atleast they don't have any authority to affect it) what you can write about. If I'd publish my posts on someone else's platform, they might only be interested in my Javascript posts and not my posts about fun board games.
Building a body of work
I've talked about writing and public speaking a lot with my buddy James over the years we've known each other and one huge idea that I learned from James is the concept of building a body of work.
The more I write, the more posts I have in my blog. And even if they don't catch an audience immediately when I publish them, I can use all of those in the future – and I do that a lot.
If I'm mentoring a junior developer and they ask me about a topic that I have written about, I can send them a link as extra material for the discussion. If I'm applying to speak in a conference, I can accompany that proposal with links to relevant blog posts and talks. If I apply for a job, I can do the same.
Month after month, my most read blog post is How to scrape a website with BeautifulSoup from May 2020. I don't share it all the time but people find it and read it way more than any other posts I have. And that's 1.5 years after I wrote it. I refer to that blog post every time I forget how to do some part of it.
Very importantly, if I forget how to do something that I've documented in my blog, I can check it.
And the only thing that makes it possible to do that, is to build the body of work over time. It takes a long time to write and publish, say 200 posts. That's why starting now is the best time to start.
Where do my ideas come from?
I've talked about how it becomes easier for me to come up with ideas for these blog posts the more I blog but where do those ideas then come from?
I teach programming and mentor students and junior developers a lot. Both locally in in-person workshops like codebar or via student organizations and online on discussion forums and developer communities. Pretty much regardless of the programming languages people are learning, I see the same questions pop up over and over again. So I've started to write those down into the blog so I can refer to them and also so I can check that I'm not forgetting to explain something.
I even wrote a blog post for guidance for people on how to ask great technical questions.
Another source is being active in developer communities at work and at my hobbies. My colleagues at Futurice, Finnish-speaking developer community Koodiklinikka and our local frontend community Turku <3 Frontend are just some groups I hang out at and get to talk shop with awesome developers day in and day out. A lot of great topics spark from those. I also run a newsletter called Dev Breakfast at work and interacting with developers through that is a great source for seeing what's happening in the developer world.
I also write about projects that I've built and small things I've learned. I helped a colleague debug a problem with Joi and wrote down what I learned. I participated in Advent of Code and wrote a weekly journal. I open-sourced a CSS mini-library for printing game card prototypes so I wrote about that. And so on and so on. You get the picture.
I speak regularly in meetups, conferences and other events and those talks translate nicely to blog posts. I usually write the blog posts after I'm "done" with the talk (might be 3-6 months or even 1+ years) as the ideas have marinated and been revised based on comments.
Finally, a huge source of topics is my mind. I have a lot of opinions on a lot of things and then I tend to write about them if they feel appropriate for a blog.
Even before I did this weekly blogging thing, I encountered these same things on a similar regularity but I didn't spot them as potential blog post topics in a same way as I do now.
Blogging-driven development
One really cool benefit that I've seen from keeping myself accountable for an audience is that it drives me to do more. Learning Rust series has definitely encouraged me to keep learning Rust and keep building things so that I have something to write about. Without that series of posts and my desire to continue the series every month, I probably would have written less Rust.
While my motivation for learning Rust is not so that I can write blog posts, writing those posts helps me stay on the topic when I would otherwise wander to other things.
The Great Posts are born from momentum
Are all my posts great masterpieces? Definitely not. The internal pressure that the weekly schedule creates is a great way to silence the inner critic.
The incredible side effect of this is worth some blog posts being less magnificient. The momentum helps me write the good ones. If I ever want, I can just one day hide all the ones I don't like that much and keep a collection of the good ones. But I don't really have a need for that either.
One thing I know for sure: without writing the less great ones and keeping up with my weekly schedule, I wouldn't have had the momentum and writing mood to get the good ones done. I would have ran into the struggle of the empty page and never written anything.
Documenting for myself
Tech blogging is often framed in a "write to teach others" which often leads to questions like "am I good enough to write about this topic". I like to frame it as "write about things you've learned". Learning it, then doing bit of research to write a post helps you learn more.
For example, Learning Rust series is not an educational series. It's a journal for me to document my experience of learning a new language. Had I thought I need to be a Rust expert to write about Rust, I would have never done this much about Rust and I hope my posts have inspired others to pick up Rust as well.
It's great to write to help others learn. But it also puts a burden on many people, who as a result won't blog at all because they feel that they are not good enough.
How to scrape a website with Python & BeautifulSoup didn't start as a "let me teach you how to use this library" but as a "I always have to check these things from docs so it's easier to find them from my blog written by me". And I've used that blog post a lot and it's been super helpful for me. Another example of this is my post on parsing command line arguments in Python. Same motive, same approach and both seem to have been helpful for many others as well.
What kind of content do I write about?
I'm a software developer and community builder so most of my interests are within that context. I did some math on the blog posts I've published between October 18th 2020 and October 6th 2021. I was surprised that 65% of them were directly technical (and many others less technical but related to being a developer). I always felt that my blog wasn't "that technical" but I stand corrected.
I categorized all the posts loosely to different categories (many overlap with each other so I just put them into some)
Category | Amount |
---|---|
Technical posts | 34 |
Personal | 8 |
Blogging | 4 |
Worklife | 3 |
Board Gaming | 2 |
Community | 1 |
Total | 52 |
Love getting positive feedback
I can let you in on a secret: people like positive feedback and saying thanks. I'm not an exception to that (even though I'm not very good at taking positive feedback). When someone sends an email or a tweet saying "Hey, I read this blog post of yours and it was good/entertaining/helpful", it feels awesome.
I've started to do that more with blog posts that I read but even then I don't do it enough. Social media is conditioning us into staring likes and retweets and follower numbers as the source of truth but what those miss is the times when people read your blog posts and enjoy them. I know from my own experience that I don't always like/retweet everything I see in social media even if I enjoy them. So I try to remind myself that others can enjoy my writing too even if it doesn't show up in those metrics.
So if you've read something this week that was interesting, captivating, entertaining, funny or educational, consider sending the writer a message.
Perspectives on developer blogging from other people
If you're interested in anything monetization related (picking up your topics based on what brings audience, making money with blog, SEO, etc), I recommend checking out Monica Lent's Blogging for Devs course and community. Stephanie Morillo also has incredible content for you, including The Developer's Guide to Content Creation.
Sara Soueidan's Just write. article is a good source of inspiration and reminder for writing when you have something to share, even if it's not the biggest and most researched article.
Morten Rand-Hendriksen's Blogging is Dead. Long live ephemerality. is one of those pieces that I refer to constantly. It's a great commentary on how platforms like Instagram and TikTok has changed the scene and also why blogging is a great format for content that can live for a long time and be accessed and referred to easily.
Two blog posts that have helped me during my internal struggles about my topics and audience this year are Rach Smith's To be whole is the goal and Nat Eliason's Be Yourself, Not a Niche. They both talk about how we are more than just the niche content we might aim to create and why it's perfectly reasonable and great to have a personal blog that explores different aspects and interests of your life.
Leticia Portella's Why you should have a blog (and write in it) is another good article about motivations and benefits for blogging and also ideas for what to write about.
However, blogging isn't always just sunshine and flowers. Eeva-Jonna Panula wrote a good blog post about The Dark Side of Blogging where she brings up topics like self-pressure and the negative response you might get from your writing.
And not a blog post about blogging but an example of very different style, I always want to bring up Ruksi Laine's /notes page that is more of a collection of notes than a prose-style blog. It's a brilliant example of how you can reach the benefits of blogging without having to write long posts.
And as Seth Godin says in his post The most important blog post: "And the most important post? The one you’ll write tomorrow."