Photo by Elijah O’Donell on Unsplash (Edited)

Lessons from actually successfully blogging now finally

A short set of notes about what makes this, 5th attempt at a regular blog somewhat more successful

I have attempted to start a blog several times over my software engineering career. There are various reasons that a blog is useful:

  1. Help teach colleagues (and, as a bonus, strangers) a way to solve a given issue
  2. To demonstrate capabilities in a professional capacity
  3. To build a social equity upon the knowledge otherwise built as part of ongoing professional development.

However, writing a blog can be hard. The problems I had in the past are that it takes longer than I imagined possible, the blog posts don’t get read which is super defeating and even when I do manage to write the post in the past I pushed it to a personal service I’d rewrite every 6 months.

In the past ~ 9 months or so, my writing frequency has dramatically improved. I now write ~1–2 posts each week, depending on how inspired I am to write. A bunch of things have changed in the last couple of years that have helped me transition to writing more regularly.

Small changes, stacking up

Write the outline immediately, add over time

The lifecycle of just about all my posts (including this one) works as follows:

  1. Get annoyed by something / need to explain something in depth
  2. Write down in dot point the general outline of the post I’d write in drafts
  3. Leave the post in drafts for an indeterminate period of time. Occasionally add dot points to it when I am thinking about similar topics.
  4. Find some time to write it up in depth
  5. Review, publish

The most important point is the second; write the outline of the point out immediately when inspiration strikes. The idea will never be as fully or coherently formed than when it first occurs, so get it down straight away.

Generally speaking the same line of thinking will occur to me multiple times over a few weeks. I add dot points to each topic as I find new insights on the topic.


As my job role has evolved over time and I have gained significant experience in a number of areas the nature of the role has changed. The most valuable use of my time is no longer to simply express some sort of solution as code, but rather to discuss, help and teach others in my team and the broader community. The logic here is fairly simple; in teaching others I build both redundancy for myself and scale the knowledge and experience I’ve gained across the organisation.

This new role comes with new constraints. Rather than perfecting some piece of technology, it is now more important to find a way to communicate an otherwise complex, difficult to understand issue. Rather than designing an elegant system, it’s better to help colleagues understand the limitations in the systems that we’re designing on an ongoing basis such that we can build more resilient systems in future.

Writing is an extremely efficient mechanism to distribute knowledge. Writing must be:

  • Engaging
  • Coherent
  • In depth

And it has a permanence that’s hard to beat in terms of efficiency.

In terms of advice, write about things in which you have a specialist knowledge or skill. Though these things are simple for you to reason about, they were not always so for you, and aren’t so for others.

Be comfortable with failure

A post I wrote one Friday evening
Post I spent 100 hours thinking, planning, presenting and designing

The last few months have proved to me that I am a poor judge of what people will be interested in. Some writing that I feel terribly about does very well, some writing that I spent many hours in does poorly.

Initially, I attempted to determine what made each piece successful. However, for me at least, this is a part time process and one I do at leisure — I don’t want to be too systematic about it.

Some posts are going to dramatically “fail”. Posts that I put heart, soul, time and effort into. Heartbreaking though I sometimes find it, there’s little I can do, and it’s thus probably fine.

Be on the lookout for opportunities

With the number of posts I have now written I am better able to reflect and find opportunities to write some more. Where I was once at a loss for what people would wish to hear, I now find myself with an abundance of topics I wish I could find the time to convey, even simply to get them out of my system and into the greater community knowledge.

Finding opportunities to write is less difficult than one might imagine. The internet has opened to us a global audience, and there are many who might find themselves in the same situation as we. Though we’re tasked with routinely solving problems as part of our professional lives, others will also be tasked with these problems in future, and we can save them the pain of needing to rediscover what we have if we express that knowledge in a post, wiki, docs or other writing.

So, write something. Anything!

Find reviewers

Just like during development we regularly subject our posts to code review, it’s also good to subject our written works to the same sort of scrutiny. I find writing a more personal act of expression, but others still provide supremely valuable insights either by the questions they pose while giving feedback or by discussions that ensue privately as a result of reading the posts.

Posts first written are perhaps 2/3 done, if I’m lucky. It is only with the help of those who are kind enough to lend me their time and feedback that I am able to write a complete post. In doing this, the post becomes partly their creation and it’s thus important to thank them for their contributions.

Schedule Posts

It is possible to schedule posts ahead of time with many editing tools. I find it extremely useful to schedule a post immediately after I’ve written it. This allows:

  1. Reviewers to read and parse the post at their leisure. If they don’t — hey, it’s published anyway. It can be corrected later.
  2. Me to think about the post before I publish it. Perhaps there is a new insight!
  3. Me to make a determination about how much effort I can put into a post. They are not all of equal quality. Some I write quickly, and schedule ahead. Should I get time to improve them so much the better, but a poor article is better than none.

Write as time allows

I find it most easy (“liquid”) to write in periods of time where I am otherwise idle. The awkward periods — after work waiting for my wife to finish her employment is perhaps the most lucrative time for me.

However, more generally, writing much like software engineering is a discipline that emerges from me in fits and starts. I will have some brilliant days where I write well both in terms of posts and code, and some days where I am essentially sisyphean, and I accomplish nothing.

It’s only in accepting this that I have been able to maintain a regular, non-routine of writing. Writing as it feels good, and as I get time.


Medium is perhaps the largest change in my writing habits. In previous work, being a software engineer, I attempted to run my own blog, infrastructure, hosting, management, scheduling and other tasks.

The return on investment is too low, and the cost of writing a post is too high. Medium managed to bring the costs down dramatically both of planning and writing posts.

Specifically, Medium is superbly simple. I only hope they retain this property in which they do not add redundant features and otherwise seek to expand the platform, but rather retain their singular and beautiful platform. This simplicity is present both in the editor, which appears almost exactly as the post would be written, and in the general design of the site, and in the limited capabilities of the editor. Initially, this simplicity felt like a restriction; I wanted to put more content elements exactly where I want them! But time has proved the wisdom of keeping this limited. Writing here is a pleasure.

Additionally, Medium seems to strike the right statistical balance. It is extremely motivating seeing that the work I put into these posts has affected thousands of people (hopefully for the better). The statistics are simply blended into the design of the site; not overbearing or easily gameable, but also inherently pleasurable to watch writing over any length of time.

Lastly, and perhaps most valuable of all, Medium allow allows (with a steady internet connection) quick drafting and management of posts. As mentioned, I do not write them as a single block, cohesively structured from a mental plan — I plan it out within the post. Medium allows this via it’s Android app.

In Conclusion

I have fairly dramatically increased my writing in the last 9–12 months. It is not for some sort of intent, but rather as a reflection of the changing nature of my role and necessity to share such information. But a series of changes have made this possible, and perhaps these will be useful to others who wish to similarily share their knowledge.



Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store