I remember writing a lot when it was 2006.
I was freshly immigrated to Canada, learning a new language from scratch. Time spent in school felt really, really long. My mind was in constant production of thoughts and emotions in Chinese, but it simply wasn’t possible for me to express them in French, not to mention my English was also quite broken at that time. I was putting myself in own bubble of writing software.
Every day I was just waiting for school to finish at 3 pm, race to my home to turn on my Hisense PC and start a 5-hour marathon in front of it. During that time I was writing my first bot for a multi-player online strategy game called Travian, with 易语言 (EPL) as the programming language. EPL is a VB6 inspired programming language and IDE, localized in Chinese. At the time, its native language made it easy for me to get started, and it was the only good part about that programming language.
I published the bot for free and started advertising it on many BBS’es where players gathered. On each advertising post I would list all the features that the bot provides, some screenshots and the methods to obtain the software. In a matter of weeks, I gained a few hundred users and started to receive praises, bug reports and feature requests.
It was incredibly motivating, and I poured countless more hours into this project. While the bot gained popularity, I also made some good friends. One of them operated 086webgame.cn, which was intended to be a frontend page of web games at that time (always dream big!). With his help, I started a blog under his web server and started using it to publish and communicate updates to the bot. At that time, I was simultaneously working on the bot and writing release logs and feature roadmaps. The content creation in the latter two was sometimes more enjoyable than working on the bot itself.
I continued working on it for about 2.5 years until my interest to Travian and the bot slowly died. The blogging system also saw multiple updates and I lost content in mid transitions. Fortunately, I still have a copy of the last blogging system
Later, dating and keeping a good academic standing took quite a bit of my attentions. I was also comfortable enough at programming that I started taking on freelancing jobs. I was writing software for clients, but I wasn’t doing as much content creation as I used to do when I wrote software for myself.
This continued during my Cegep time. When I finally started at McGill, I discovered that our school of computer science hosted personal webpages. That discovery started the current blog on https://cs.mcgill.ca/~mxia3, where you are likely reading this article from, if not on Medium.
At the time, I was carrying to classes a ThinkPad laptop running a fedora 16. I started learning to use vim and was trying to take live Math notes in markdown and LaTeX math. If anyone tried to take Math notes live from the classroom, you’d know how frustrating it can be. I posted my class notes on my blog and shared the links within my small group of friends. The next year, I also added algorithm and data structure lecture notes. As the difficulties in the topics gradually ramped up, it was becoming increasingly more difficult to understand the subject at the same as taking live notes, so I put a pause to it.
At the last year at McGill, I started doing a different kind content creation, in the form of academic papers. The content within an academic paper is a lot more rigorous than technical blogs. I grew to love the way we write papers - express your conclusion first and then describe your method and logical reasoning in detail to let the readers validate your approach. This unfortunately isn’t a very catchy way to tell a story for average people, and we don’t see this type of writings outside of the scientific community.
I always saw writing blogs as ways to simultaneously share knowledge and interesting stories with others, as well as a way to build a brand for myself. After I graduated from McGill and started my profession, I still kept writing blogs on various tech topics, such as creating Schemats as a way of provide statically typed PostgreSQL queries in Typescript.
But the problem of writing tech articles is that they often become obsolete too fast. Especially in today’s world where software engineering evolves rapidly. Information has its own timeliness in positive proportion to its values.
As time passes by, I write less and less. I can attribute this to a many different reasons: lacking the time, lacking enthusiasm or lacking motivations. But deep down I feel that I’m running away from it because of fears for losses. When I first started my career in tech, I was young (still am 😂), naïve and arrogant. There was little stake involved and a lot to gain from shouting my thoughts at the world. But as I built a career now, there are substantial amount of intangible things at stake, yet the gains from publishing my thoughts are disportitional to the risks.
When I shared this thought with a friend today, he said:
Interesting, how did you get yourself in a situation at a such a young age where you’re in a similar position to say people with family/very very stable career?
So true! I chuckled. Perhaps I’ve achieved the career-wise of what most people have in their 30’s, but yet without a family, making this sounds a lot more childish.
But I don’t have to keep writing disruptive, polar and controversial articles. I can put more effort on discussing nuanced topics, hoping they will stand the test of time.