Writing this blog certainly takes time. To come up with good ideas, do appropriate research, have the right code examples. A single post can easily take hours to write and edit before publishing. And it certainly isn’t making me rich or famous. So why do I do that?

I admit I like the idea of contributing back to the development community. After reading and learning from many other blogs, it’s nice to give back (or pay it forward). However, the main reason I do it is I also benefit directly from writing these articles.

When you explain something to another person it forces you to think about different use cases and areas that you simply did not consider when you implemented the solution for your immediate needs.

There is also a big difference between simply discussing something verbally (or reading about it) and actually writing down your ideas. It forces you to structure them. That’s why before undertaking a big software project it is good to write a technical specification outlining your design.

This blogs helps me achieve these goals. Sometimes I write these posts before designing new features. Sometimes I do it in parallel with coding. And often I write these articles after completing the code when I am summarizing my thoughts / lessons learned. Frequently that leads me to refine my initial approaches and improve the software.

The key is finding the time. When I have an idea I just create a draft and put basic structure and a few links in it. Later when I have time (often evenings or weekends), I add the details to create useful articles. Sometimes posts stay in draft state for weeks or months (currently I have over 10 drafts in various stages of completion).

I also like to periodically re-read my previous posts and often see ways how the original ideas can be improved upon. All this helps make me a better software developer.