I don’t remember the exact date I started my blog. My first commit was January 17, 2017, but it may be older than that, as I squashed all my commits in 2016 (I know, it’s bad practice). I published my first blog post on January 16, but I’ve been blogging in WordPress long before. So I’ll just take what’s on the record— January 16 was the birth of this blog.

January 16 was the birth of this blog.

Six years! In the greater scheme of things, six years is just peanuts. People I look up to, like Simon Willison and Scott Hanselman, have been blogging for over twenty years. But I’ll pat myself on the back: it is easy to start things, but sticking to it for long periods of time is already an achievement.

I started this blog because I wanted to record my tech journey. At first, I was writing for myself. My initial posts were grad school assignments, notes from online courses, and how-tos on technical problems. Then, when I started working for a consulting firm, I wrote a few industry analyses and opinions. Now that I’m working for an open-source library, I’m diving deep into linguistics and natural language processing (NLP). You can definitely trace my career path through my Notebook!

In this blog post, I want to talk about six lessons I learned from this journey.

1. Writing output is proportional to input

I used to blog sporadically until I decided to publish one blog post per month. I thought that would be an easier cadence, for I have one month to write something. However, by the sixth month, I was running out of ideas! So I was scrambling for something to write, just any output, as long as I had something. Nothing came out. Instead, I took the pressure off writing when I was in between jobs: I focused on reading books, playing games, and immersing myself in different media.

The following month, I was full of zest. Writing came easy, and my drafts flowed like water. At that moment, I learned that if I want to be consistent with my outputs, I need to be consistent with my inputs. The two are directly proportional.

If we think of writing as a way to organize our thoughts, then there should be thoughts to begin with. Writing is thinking. We collate these thoughts from different inputs (books, newsletters, social media, etc.) and transform them into something uniquely our own.

If we think of writing as a way to organize our thoughts, then there should be thoughts to begin with. Writing is thinking.

I also realized that my intake of information should go beyond quantity. Subscribing to everything is easy but can also be counterproductive. So I learned to curate what I consume. This led to practices that I developed over time:

  • Have a backlog of ideas. I use Github Issues to keep track of random ideas I come across from time to time. I’m also liberal in closing issues I don’t find interesting anymore.
  • Use RSS Readers and Twitter Lists. I use Inoreader to curate the content I consume from the internet. The same goes for Twitter and Mastodon. Sometimes, all I need is a chronological feed. Although social media recommendations help with exploration, they are overwhelming.
  • Take notes! I usually have a notebook at hand to process insights and “rehearse” blog posts. My prompt usually goes like this: “If I write a blog post about this topic, what would be the title? What will be the headers?”

These practices instilled the idea that the act of writing happens before I open my text editor. It also shows how integral writing (or blogging) is in my thinking process. The quality of my outputs is proportional to the quality of my inputs.

2. Optimize for readers who skim

One thing I realized as a consumer and producer of information is that, I’m biased towards my writing. I read my blog line by line, slowly digesting the words I wrote. This is not the case for other content. I read voraciously, skimming through text and figures. Perhaps others read my blog the same way. So I learned to optimize for the reader’s time. Every time I finish a blog post, I ask myself: would a reader get what I’m trying to say if they just skimmed through the post?

Every time I finish a blog post, I ask myself: would a reader get what I’m trying to say if they just skimmed through the post?

At an extreme level, I could’ve just written a Twitter thread of bullet points. But I write prose to express myself. So instead, I learned to tell a story through headings. Yes, headings. I got this trick while working in consulting: slide headers shouldn’t just be sterilized scientific paper jargon like Introduction, Methodology, or Conclusion. Instead, headings should at least form a sentence when read from start to end. Someone should be able to learn something just by reading the headers. Of course, I still need to improve this practice, but it helps focus one’s discussion!

The key takeaway is to make a huge blob of text more approachable.

Another practice I learned early on is to include a lot of illustrations deliberately. There are many tools for drawing simple charts. Over the years, I jumped from LaTeX/TikZ, Inkscape, Excalidraw, and TLDraw. This 2023, I plan to be more consistent with my design and use Figma with custom components. For example, if you look at this blog post, the style looks like it was drawn from Tikz, but it’s all Figma. Excalidraw and TLDraw do not fit the “look” of my blog, whereas Tikz and Inkscape are hard to use. The key takeaway is to make a huge blob of text more approachable. It can be through formatting, content structure, or illustrations.

3. Views are nice, but they’re not everything

I used to enjoy writing introductory articles. I get to exercise my teaching muscles and they tend to draw many readers! Numbers going up gives a surge of dopamine. It makes your writing feel valued. However, I find it unsatisfying. I realized early on that I didn’t want my blog to stay in beginner purgatory. It doesn’t reflect why I started my blog in the first place, that is, to trace my tech journey. I want to see myself grow. Views do not measure that.

So I started writing fewer beginner blog posts. I noticed that the number of views dropped significantly. It seems that the two are inversely correlated.1 However, I get more quality hits: I receive the occasional thank you e-mail and insightful comment. Knowing that one person resonates with your niche feels satisfying!

I think it is hypocritical to say that I don’t care about views. Of course, it feels good to be read. So over the years, I tried to maintain a ratio of writing “two for me and one for them.”

… over the years, I tried to maintain a ratio of writing “two [blog posts] for me and one for them [the audience].”

This rule means that for every two posts I write for myself, I can write another introductory blog post. Writing for myself feels satisfying, doubly so when it gets folks reading. On the other hand, writing beginner blog posts is a slog, and there’s an off-chance that no one reads them. So probability-wise, writing for myself most of the time has a higher expected value.

I make it a point to endow my perspective when writing beginner blog posts. There could be a hundred blog posts about X, but my view and take on it are unique.

Lastly, I make it a point to endow my perspective when writing beginner blog posts. For example, there could be a fitting analogy for a particular concept or a compelling project for a specific library. There could be a hundred blog posts about X, but my view and take on it are unique. It also makes the writing process more exciting!

4. Blogging is half marketing

For blog posts that I write for others (see “two for me, one for them”), writing is just half of the process. The other half involves sharing my work with the public. Marketing. SEO. I used to scoff unfairly at those words. It reminds me of a sleazy salesman ripped straight out of The Wolf of Wall Street. It seems manipulative, superficial even. “Build it, and they will come” was the motto of the day. Well, I learned that no one will come if you don’t talk about what you’ve built.

“Build it, and they will come” was the motto of the day. Well, I learned that no one will come if you don’t talk about what you’ve built.

I’m slowly learning how to integrate marketing into my blogging workflow. However, I still err on the side of not sharing and keeping my blog posts to myself. There’s inertia on putting myself out there. Six years passed, and I still feel the same fear and reservation.

Nevertheless, I learned that marketing starts even before writing. For example, during pre-writing, I learned to use tools like Moz to search for keywords that I can use to title a blog post. Then after writing, I check Plausible to know which communities read my posts so I can share there next time. My hard and fast rule is that when I labor over a problem or a concept, and the resources on the internet are scarce, it’s a good sign that it may be a good blog post topic. I then use the abovementioned tools to verify if my intuition is correct.

I still find the whole thing overwhelming. And through the years, I’ve only taken baby steps in this side of blogging. Sometimes I do these practices above, and no one bats an eye to a post; sometimes, I write for myself, and it gets shared around. So, perhaps, I’m not too bullish on the marketing aspect of blogging (even if I acknowledge that it’s a part of it) because writing for myself works! But I’m open to learning, and I plan to develop this skill in the next six years.

5. Write a first draft when I’m inspired

This lesson goes against the usual adage that one should not wait for inspiration to start writing. However, inspiration is a huge factor in my blogging enjoyment. It also ties into my first lesson: to get consistent ideas, I need to draw from many sources of inspiration. The converse is also true: I must drop everything and write a first draft when I’m suddenly inspired by something.

I find that inspiration has a half-life. It is a function of time. As time passes, I get less inspired. Perhaps this is but a symptom of shiny object syndrome: I get bored and start looking for other exciting things to do. Moreover, once I see my blog post taking shape, the last 10% becomes harder to do. Weird!

I find that inspiration has a half-life. It is a function of time. Throughout my blogging experience, I learned to manage my inspiration.

Throughout my blogging experience, I learned to manage my inspiration. I think I’m getting better at it. When inspiration starts decaying, I switch things up and pour my effort into editing. Usually, I take a day or two not thinking about the blog post, and then go into editing mode. This cadence and variety help keep the momentum and add a forcing function to stall that half-life. Pre-writing also helps. Having the materials and references ready hastens the process. I workshop a title, draft my headings, and then write the key takeaways. The process of writing is then a matter of expanding these bullet points into prose.

Lastly, I learned to be indiscriminate in discarding drafts that do not spark joy. It happens when my inspiration reaches the end of its half-life. Sure, there is a sunk cost, but I can always reuse paragraphs or analogies in a future blog post. I don’t permanently delete drafts; I keep them in a _drafts folder or Obsidian.

6. Keep a changelog for every blog post

Sometimes, you’ll notice that I append a changelog at the end of my blog posts. I record the date, a short one-liner about how the post has changed (à la git commit message), and links where the post got significant traction. Keeping a changelog informs readers on how the blog post evolved, with all its corrections and feedback.

Treating my blog post as a live document keeps me sane. Sometimes, I stall publishing for too long so I can scan for errors and oversights. But, as a live document, I grant myself the mindset that it’s alright to hit publish (of course, after a few rounds of corrections) because I can refine the blog post later. It’s not final, and it’s not permanent. But I also understand that I need to be responsible. Write, then give a few rounds of edits, and then publish.

[By keeping a changelog] I grant myself the mindset that it’s alright to hit publish because I can refine the blog post later.

Overall, I see my blog not only as a chronological timeline of things I wrote but also as a record of my thoughts, past and present. It’s both good and bad. It’s nice to see myself evolve, but it’s scary to think of old blog posts haunting me. Keeping a changelog allows me to say: “yeah, I thought of this before, but I changed my mind about it now.” I like Shawn Wang’s analogy of this process as annealing: like metal, we apply heat in the form of feedback, etc., on a blog post to shape it in a better form. Keeping a changelog enables me to track this refinement process.

Final thoughts: the next six years

Six years! I was supposed to write a post like this last year during my blog’s fifth year—multiples of five seem complete—but I lost track of time, and now we’re here. Perhaps six years is a good cadence: it’s like an extra mile after finishing a 5-mi run.

I plan to stick to this system for the next six years. I don’t aspire to any specific outcomes. For things I do during my spare time, I instead measure myself by leading indicators: write a blog post per month, write more about this topic, etc. I feel more relaxed that way.

I hope to write more technical blog posts and veer away from industry analyses and “thought leadership.” I like Eugene Yan’s latest articles; they’re like study notes but are more in-depth and easier to read. I also like Lilian Weng and Sebastian Ruder’s blogs: I’m playing with the idea that writing literature reviews are an excellent output when studying a topic. They require a lot of research though, but I think a month and a half should suffice.

Overall, I’m excited about the next six years! I hope I never stop writing. It’s a weird thing to say because I love doing it. If you’ve been following my blog since the beginning, thank you, and say hi! If you’ve stumbled into this blog post from my other works, please say hi as well! Thank you for reading, and I wish you well for the year!

Changelog

  • 2023-01-12: Fix grammar and spelling

Footnotes

  1. Of course, there’s also the possibility that I’m not sharing with the right audience. Occasionally when my blog post shows up in Hacker News, I get an immense amount of hits and feedback. But those are rare occurrences, and I don’t want to count on that.