Reflecting on twelve months of writing

Dec 30, 2019 • Avik Das

Block letters, used for typesetting, strewn across a desk.

I wrote many words this year. Image by Free-Photos from Pixabay.

Last December, I set myself a goal to start blogging. The idea was to put down my thoughts in a structured manner, then share them with others. The rules were: write one blog post per month. Writing more was encouraged, but multiple posts in one month would not count for other months. This was to ensure I maintained momentum.

I largely succeeded in my goal. There was one month I didn’t publish an article, due to me going on vacation, but otherwise, I wrote at least one post each month.

By the numbers

The numbers don’t really tell the story of my journey, but I’m sure people are interested in them anyway. In the last twelve months:

What I learned

Writing publicly has been a fantastic experience. Some of the lessons I learned:

Top highlights

Many of the interesting experiences I had this year came about because of my writing. Here are some of the highlights.

Taking the first steps

Four weather predictions are shown at three hour intervals. Each prediciton has an icon showing the predicted weather, and a predicted temperature. The temperatures are connected in a line chart.

My personal heads-up display, running on my Raspberry Pi and showing the weather forecast. Teaching myself the tools needed to build this project provided content to share with others.

I started by documenting a project I was working on, a small heads-up display to show the current time and weather using my Raspberry Pi. I had already started writing down notes, such as important online resources and commands, but I knew I would find these notes hard to understand if I didn’t add some context to them. After adding this context, I realized the information would be useful to others, so I published a series of blog posts detailing my progression through the project:

People indeed found this content useful, and I also learned more when readers gave me feedback on more resources to look at. Ultimately, these posts were primarily for me, and sharing them with others was an additional step that got me to start blogging.

At this point, I blogged on Medium, as that allowed me to not worry about setting up a blog, any sort of social functionality (liking, commenting, following), distribution, or analytics. It turned out the best way to distribute my content was still submitting to places like Reddit, which in turn gave me commenting for free. However, the analytics and following functionality was still useful, as I could understand what sources drove the most readership and, I could gain future readers.

A side-step into teaching

The title of my PyData talk, showing three applications of Hidden Markov Models: speech recognition, genome analysis and facial recognition.

The title slide for my talk at PyData Los Angeles 2019. This talk came about because I shared my content with others.

After helping a friend with some computer science concepts, I realized others may be interested in learning about these concepts. In particular, the topic of dynamic programming, a technique used to solve complicated problems in CS, was something I knew many people were confused about. With that in mind, I wrote a series of posts on the theory and application of dynamic programming:

The first post, introducing the topic in a way it’s not typically covered, continues to drive traffic to my blog, both on Medium and on my personal site. It’s clear people are interested in this type of educational content. The third post, talking about a real-world application of dynamic programming, also generated interest, including on Hacker News. As an example of the benefits of sharing with others, a commenter on HN mentioned a follow-up technique, which then inspired the fifth post in the series.

As part of sharing this content on LinkedIn, a former colleague of mine suggested I submit the topic of one of my posts as a talk proposal to PyData. I’ve always loved talking at conferences, so I submitted the proposal, was accepted, and in early December, I presented an introduction to Hidden Markov Models at PyData Los Angeles. I also got to see many wonderful talks by other members of the data science community, and in keeping with the theme of sharing my thoughts with the community, I blogged about what I learned at the conference.

Writing about non-technical topics

Technical topics ended up being what I was most comfortable writing about, but I still wanted to share my thoughts about non-technical topics. This year, when participating in Movember, I wrote about a topic near to my heart: mental health as it affects men.

Out of this period, my proudest moment was having a frank conversation about the topic with one of my mentors, Nash, then sharing the learnings with others.

Moving off of Medium

As I mentioned before, I started off blogging on Medium because it was the easiest way to get started. My advice: no matter what others tell you, don’t let the activation energy of setting up your own blogging platform stop you from blogging. Even if you want your own blog, and even if you’re a developer who understands Github Pages and Jekyll, if it’s easier to start writing without worrying about setting up a repository, do it.

That said, I still wanted to control where I published my content, and that meant moving off Medium onto a format I could host anywhere. I decided to go with Github Pages as it allowed me to have a custom domain with automatically-renewing SSL, a Markdown-based blogging engine, and source control all in one.

I was also able to replace the functionality I used on Medium with functionality elsewhere.

Distribution and discussion

Medium allows you to add your post to a publication, where it can get views from long-time readers. I found that, this year, many publications, like Hacker Noon and freeCodeCamp, moved off Medium. I didn’t want to publish the same content to multiple platforms, so I found my best bet was still to submit links to my posts to Hacker News, LinkedIn and the relevant subreddits on Reddit. This in turn got me discussion, namely comments, for free.

One negative experience I had was adding a post to a new Medium publication. I hoped to get more readers, but all that happened was the publication owner edited my post to include some ads for cryptocurrency. I promptly removed the post from the publication, along with the ads. My recommendation: don’t submit to publications you haven’t vetted carefully, as they don’t necessarily translate to more readers.

I still copy my content to Medium for the sake of my followers, but all my social media submissions point to my own website.


Medium definitely made it easier to gain followers, but I’m fine with followers on LinkedIn and Twitter. I also publish an RSS feed on my website, though I can’t meaningfully track how many unique subscribers I have. It turned out that having the number of followers I have (that is, only a few) does not translate to much readership for future content. For that reason, the follower functionality on Medium turned out to not be very useful anyway.


This one was the hardest to replace, but mostly because of my own stubbornness. I could have added Google Analytics to my blog and called it a day, but if I was moving off Medium, I didn’t want to bring in another tracking-heavy dependency. Instead, I wrote a small analytics server that stores only visit time, visited page and referrer.

I plan to open-source this tool in the future, but for now, it’s just a lightweight solution to the lightweight problem of understanding which distribution channels are the most effective for me.

How to start writing

A chewed up pencil lying on an empty notebook.

Starting to write is always the hardest step. Image by congerdesign from Pixabay.

Based on my year-long journey, I’ve learned what it takes to start writing. If you also want to write and share content, I recommend the following strategies:

Document what you’re learning. Often, information about interesting topics are written by those who already know those topics very well. As a result, they don’t realize what they find obvious may be very confusing for newcomers. When you consolidate these sources of information and write down what you learned, you’ll be 90% of the way to something you can publish.

Write regularly. This is something most people will tell you to do. Find the cadence that makes sense for you, as some people suggest writing daily, whereas I chose to write monthly. The reason monthly writing was the right schedule for me is because I wanted to write long-form, thoroughly-edited content, but daily writing helps if you have never written long-form content before.

Admit you’ll get something wrong. Whether it’s having typos in your writing or being factually incorrect, do enough due diligence to feel comfortable, then publish what you have. Being corrected by your readers is part of the benefit of sharing your writing, so don’t fret about it. Divulging when you’re a newcomer to a topic is also helpful in soliciting the right type of feedback.

Write because you want to, not because of the readership. You should absolutely share your content with the people who would be interested, and promoting your content in this way is a skill to learn. But don’t be discouraged if few people read your content initially. If you’re writing interesting content regularly, and you share it with others, you’ll slowly gain readership over time.

The last twelve months of writing have been an amazing experience. I definitely plan to write more in the future, though maybe not at the same cadence. I also hope to expand into other media, like video or live education. The ultimate goal would be to write a book or have a full-blown course with student-instructor interactions, and I hope my writing can be the first stepping stone in that direction.

Happy writing!