Category Archives: Writing

It’s worth writing, even if someone else covered the topic already

It’s worth writing, even if someone else on the internet has covered the topic already, because:

  1. Writing helps you understand the topic better
  2. Your tone, communication style, or perspective might appeal more to some readers than the original source
  3. It helps build your public body of work, which makes you luckier

And writing is just an example โ€” replace it with whatever form of self-expression you’d like.

Writing is like exercise

Sometimes I struggle to justify why I spend time writing for my blog. Here’s the argument I keep coming back to:

A regular writing habit is just like a regular exercise habit for your brain. Yes, it takes time, energy, and money, but it’s also good for you, and well worth it.

Writing and especially publishing it is just like going to the gym for your brain. Plus it increases your luck surface area and helps keep you young. So, well worth the investment.

To have good ideas, stop auto-rejecting your ideas

Half of having good ideas is not immediately rejecting the ideas you do have, but rather allowing yourself to respect them, give them the chance, and even consider them as worth sharing.


This is just an observation of my own shift in mental state over the last few years. I don’t consider myself particularly smart or insightful, compared to all those “wise” people with “famous quotes”.

But I’ve found that releasing myself from this automatic “self-doubt instinct” has led to a more nurturing mental space where weak, fledgling ideas have the space to potentially grow into stronger ones. And that is what eventually leads to genuinely amazing, novel ideas.

At least, I hope. We’ll see if I have one one day.

It’s not enough to have good ideas

You also need to present them well.

This is one of the things I’ve learned on Twitter in my decade using it. On Twitter, the slightest change of phrasing can make or break a tweet. Part of learning the game is learning how to express information in a way that’s more likely to be received well. Usually that means being a combination of: valuable, concise, and punchy.

The general lesson is that you need to be aware of the venue, and its communication norms. What is the communication style is common, and commonly successful?

This applies not only to online platforms, but also real life communities you may be a part of, such as your work.

So if your ideas aren’t landing how you’d like them to, or you believe a great idea you have is being unfairly overlooked by others, take a moment to pause. How do the successful people in the venue communicate? And are there any ways you could restructure your presentation to better fit the venue? You might be surprised at how little it takes.

Be your most authentic self (and write about whatever you want)

I love writing about computers, but I also love writing about other topics like creativity, art, and productivity. However, many programmers out there strictly blog about technical topics, which made me feel a bit weird for posting random stuff like poems or my experience with GTD.

This led me to a dilemma: Do I blog all in one place, or do do I perhaps create a separate blog for non-technical content?

My answer is to apply my “golden piece of advice”: Do what feels most authentic to you.

For me, writing about all of my interests is the most authentic expression of myself, so when in doubt, I do this. Curbing this instinct, and making a strictly technical blog just to be like “all the other programmers” wouldn’t be.

It’s totally possible that “all the other programmers” simply don’t feel a desire to write about anything else. So making a strictly technical blog is their maximally authentic expression of themselves โ€” which is great for them! Let’s all do what feels most authentic to us.

Hiding in this case study is a profound lesson about life. The situation applies equally to any other life situation where you feel some pull to act in one way, but feel some hesitation upon observing “everyone around you” seems to act.1

When in doubt, apply the “golden advice”: Do what feels most authentic to you.


I’m very happy with this decision. It feels great to have a single place which all of my thinking, which also has the practical benefit of making it easier for potential followers to submerge themselves in all my content.

I also believe this will win in the long run as it’s more likely to resonate with like-minded people that can respect having a myriad of interests โ€” the kind of people I’m looking to connect with!

Lastly, there’s the non-trivial but subtle benefit that simplicity of infrastructure & accounts actually matters and translated into a lot of time saved.

Advice for learning the dark arts

I loved this episode of “My First Million”:

https://www.mfmpod.com/become-a-better-writer-in-60-minutes-masterclass/

It’s about how to communicate effectively for persuasion, which is very useful in business and life.

But I wanted to explicitly state an underlying assumption of their conversation: These techniques are a “dark art”.

These are not general principles for all kinds of writing. It would be mistaken to assume that one must apply these principles in any kind of writing โ€” ie.g. academic, creative, formal. These are techniques to deploy when you have specific goals for your writing, and are writing within specific contexts.

They come with tradeoffs and sacrifices, such as making your writing more “sales-y” or “clickbait-y”, which can decrease credibility or compromise an artistic vision. The exact tradeoffs depend on the context and community, but they exist. That’s why I call them a dark art.

Creativity is like gardening

I see a strong parallel between creativity and gardening. Like a fruit, growing from seed to ripe, ideas do the same.


Idea seeds are those vague, half-formed thoughts that quietly appear in your mental space. They occupy a strange state where you are aware of them, but would struggle to write them down or explain to someone else coherently. That is the defining characteristic of an idea which is not mature yet.

Slightly more mature ideas are in the growth phase. They form of the idea has started to emerge, and you can half-express it, but there might be logical errors as you still haven’t fully thought it through yet.

Ripe ideas are fully developed and can be coherently expressed with the fewest words necessary.


Ideas can grow along this path explicitly or implicitly. You can explicitly grow ideas by sitting down and trying to write them. Or they can grow implicitly in the background as you live your life and expose yourself to experiences and other ideas.

Sitting down to write an idea is like trying to harvest it. It’s easiest and works best when the idea is ripe โ€” the idea will almost pour out of your brain onto the page in this case. If you try to harvest an idea before it’s ripe, it will be harder.

The analogy might break down slightly here. With ideas, the act of trying to harvest them actually accelerates their journey towards ripeness. Trying to express an idea forces you to understand it better and clarify it. This is one way of growing an idea: the explicit way.

Ideas can also grow implicitly. They can quietly sit on your mental back burner as you live your life and expose yourself to experiences and other ideas. Maybe another idea acts as a bee that pollinates the first idea and together they form a complete, ripe idea. But in order for them to be able to safely sit on the back burner as long as it takes, they should be still captured in some kind of way, or else you’ll probably forget them.


Note that an idea’s state of being written down vs in head, and public vs private are each orthogonal qualities. Ripe ideas aren’t the only ones that can be written down and published. Idea seeds can still be attempted to be written down (although it will be hard), and also published.

Reflections on learning to write

For the last three years, I’ve invested into learning to write. The main reason: strong writing skill is generally a shared quality among all the greatest thinkers, leaders and generally wise people of history.

How has it gone?

Really well. It’s paying off in many ways, and I only feel more inspired to keep doing it. I find that it gets more fun then more you do โ€” the more ideas you have and the easier and faster it is to express them.

It’s paid off in my personal life with my offlinemark project. My writing (and general public creative efforts) has reached some unexpected places and put me in touch with some very interesting people. My most prized accomplishment is being cited in the Linux Kernel security mailing list.

It’s paid off in many ways at work. As a software engineer, I do a lot of writing at work, and I pride myself in having great written communication there. I write a lot of documentation, hold it up to a high standard, and people notice. I get points for this because most engineers don’t like writing docs, but I’ve trained myself to enjoy it.

Beyond these, modern life generally involves a good amount of written communication. I’ve found that putting in these reps has simply made this part of life a bit easier.


P.S. Something else I’ve observed is that I find myself having more ideas and being more aware of them. Whether they’re good or insightful is a different matter, but I’d like to believe that over time they’ll get there.

Software engineers must learn to write

There is an immense amount of written communication involved in a programming job:

  • Commit messages
  • Bug reports & debugging discussions
  • Design documents
  • User documentation
  • Project documentation, READMEs, internal dev documentation
  • Project announcements
  • Comments & in-code documentation
  • Making complex situations simple for stakeholders
  • Handling support tickets
  • Mailing list discussions

Software engineers must learn to write well in the same way that they should also learn how to stay organized โ€” they avoid doing so to their own detriment.

What cured my writer’s/publisher’s block

I’ve managed to make writing fun again and have been publishing a lot on my blog lately.

It’s due to three reasons:

1 – Having explicit content categories creates the freedom to post things that aren’t highly effort intensive deep dives.

By introducing explicit post categories (i.e. Micropost, Lab Notes, Essay, Deep Dive, etc) I feel much more free to post without the expectation that every post needs to be a time consuming, deeply researched technical post (which are the kind of posts that are popular).

I don’t have time for those lately, but that doesn’t mean I can’t write or post anything! Explicitly tagging something as a micropost or lab notes takes a lot of the pressure off, and makes me much more willing to write and publish.

2 – I stopped sharing on Twitter.

The curse of growing an audience is that posting to that audience has increasing weight as the audience grows, which creates stress and friction about posting. What if I post something that people don’t like and I lose a bunch of followers? What if I’m straight up wrong? What if I want to share something but don’t have time to fully polish it and people judge me? What if I post too often?

It’s also distracting to share on Twitter, and very difficult to not monitor notifications afterwards.

Furthermore, writing on Twitter was actually difficult in that it took extra energy to abide by the character limits, or fit things into threads otherwise. Writing freeform of my own blog is easier in this regard.

Not posting on Twitter removes a nontrivial amount of friction and stress that used to prevent me from sharing.

3 – Using WordPress (i.e. not a static site generator) removes a ton of friction.

The fact that I can click buttons in a web interface, write and post as easily as sending a tweet makes all the difference.

It’s so nice being able to change the website without coding. For instance, I just added a “Popular posts” feature in the sidebar in the last 5 minutes. Turns out Jetpack already has the feature included and I just had to enable it. I don’t even want to imagine what it would have taken to implement that by hand or with a static site generator.

Though not as fast a static site, the blog loads fast enough and I’m more than happy to take the performance hit.

It’s also awesome that I can quickly edit posts to fix typos, even from my phone with the WordPress app. I do this very often.

(bonus reason: It’s also due to the realization that posts don’t have to be long, can be written in one sitting, and don’t have to be absolutely perfect!)