I have always been very proud of this blog. So proud that I even put it on my resume. In fact, showcasing this blog on my resume, has proven to be very effective. I managed to secure an internship offer at Datadog two years ago, beating many fourth-year students when I was just a confused sophomore, simply because the interviewer really liked one of my blog posts.

The blog post that impressed the hiring manager at Datadog is still on my resume today, despite it having been written almost three years ago. Recently, a founder of a venture-backed start-up reached out to me and asked if I want to join his 15-person engineering team. During our chat, he told me that he was particularly impressed with my blog. He claimed that he has read all of my blog posts, and he said that he could tell, just from these posts, that I am “one of them”. According to him, I am a builder, someone who is curious and willing to take risks. It also seems that the blog has been circulated within that company. When I was chatting with a few other engineers on the team as part of the interviewing process, many of them also expressed how they liked my blog. The interview went well and I ended up getting an offer, with a very generous package for my experience level.

I have no intention to boast here. In fact, I will probably be doing the opposite in this blog post. I am no longer the person depicted in this blog, the builder, the risk-taker, the self-proclaimed entrepreneur. I changed. Here is a quote from the first post published on this blog, “Hello World”.

I am not satisfied to be just an engineer. I want to bring real revolutionary changes to our society and make it a better place.

I changed. How ironic. It has been more than a year and a half since I wrote my last blog post. It has been, I don’t know how long, since I revisited my first blog post, “Hello World”. When I was reading the quote above just earlier today, I was shocked. It might sound stupid but it almost made me cry. I was no longer the adventurous, risk-taking, and ambitious me.

 

I first got into coding in 2015, purely because I wanted to build things. My high school at the time didn’t offer any Computer Science courses, and I received zero pressure from my parents. I taught myself HTML and CSS just because I wanted to build websites. I built a lot of them, and even launched some of them in the wild. I didn’t care about making any money. I would be satisfied just by watching the total number of users reaching 3 digits on the Google Analytics dashboard.

Another quality that I had, and that fortunately still sticks with me today, is the willingness to dig deep into things. When I learned HTML and CSS in 2015 just because I wanted to build websites, I quickly became aware of the industry-standard tools, thanks to the Internet and a few mentors I met on the way. I learned about the then-popular movement of SPAs (single page application). I learned that people use Vim to edit code, and use Git to “manage” it. I taught myself Angular JS, and then React. I got myself a Twitter account so I could follow Dan Abramov.

I eventually managed to find myself a Web Development internship, earning 20 CAD an hour, in the summer of 2016 right before I started University. I had zero connection then. I just wanted a job, and preferably something that involves coding. So I searched on Craigslist and Indeed, and applied to at least 100 postings. Luckily, two got back to me. One was for an internship position at a local software agency, who turned me down after learning that I was only 18 when I showed up in person. The other was for an QA position at a hip local internet start-up called Plotly. I managed to impress the interviewer with how much I know about NPM and Webpack that he just decided to hire me on the spot and put me on the front-end team.

My story is far less glamorous than the success stories of these teenage outliers———young entrepreneurs who teach themselves coding at 13 and sell their start-ups to Facebook at 17. But I believe my story is truly special. It was about a boy who is passionate about building things that would create value, and make our world a bit better. He learned to code, decided to pursue tech, and went to the University of Waterloo to study Software Engineering. It all started in the summer of 2016. Now, four years later, what is he doing now?

 

I am here behind my four-year old laptop typing up this blog post (I bought this computer with the money I made from the job at Plotly right before I started University in September 2016). In the past four years, I did five other internships at five different companies working on completely different things.

  • Worked with PM and designers to build user-facing features at Universe
  • Contributed to the low-latency time-series ingestion pipeline at Datadog
  • Built tooling to manage PlanGrid’s Kubernetes infrastructure
  • Added features to Twitter’s fault-tolerant stream processing engine
  • Designed API and evolved complex data models at Stripe

I can say that I am a much better engineer than the old me from four years ago. Thanks to these internships, I got to experience pretty much every software engineering role at a typical SaaS company: doing front-end web development at Universe; designing back-end API in Ruby at Stripe; writing and scaling Golang micro-services at Datadog; developing infra tooling and tweaking YAML files at PlanGrid; maintaining a critical but legacy infrastructure system in Java and C++ at Twitter. There is still a lot for me to explore, but I believe that I now have a pretty good sense of what I should expect from a software engineering career. I have also met many extremely intelligent and inspiring people during these internships who still serve as my mentors even to this day.

I also went through the rigorous CS education at the University of Waterloo. They made us write a compiler that could take a subset of Scala to output MIPS machine code. As part of the Operation Systems course’s group project, my friends and I wrote a minimal kernel that could run on an ARM board. I think they just made us write a lot of code, especially C++. We also had to take many math/engineering courses such as Control Systems and Graph Theory, on top of Calculus, Stats, Algebra, and many other first-year courses.

Back home in Montreal, I was pretty much the only kid who was interested in tech. Everyone else wanted to get into med school. However, at Waterloo, everyone seems to be into the same thing as I am. We shared a collective goal, and we motivated each other, implicitly via the impostor syndrome, to keep us on the grind.

 

I am way more capable than what I was four years ago. This is not limited to my technical abilities. I also learned how to break things down logically so I could make better decisions, as well as take responsibility for them. I learned how to think clearly. I have also become more self-aware. I learned how to cook myself nutritious meals. I developed a routine and I have become more fit, both physically and mentally.

However, comparing to the me before University, I found that I have become passive, occupied with things that are not initiated by me. I felt that I was pushed to follow train tracks laid by others. For example, chasing prestigious internships and getting a full-time job offer with the highest possible compensation package.

I don’t regret chasing these prestigious internships———forcing myself to read these technical books (shout out to “Designing Data-Intensive Applications”), grinding Leetcode, and preparing for interviews. Without these efforts, I wouldn’t have such a diverse work experience, and I wouldn’t meet my mentors. However, one thing to note is that I wasn’t being deliberate. I went on this path because everyone else was doing it.

For the past few months, I felt slightly unhappy. I wasn’t satisfied with my current personal development trajectory, even though I was still proud of myself, my discipline, and hard work.

I have been doing a lot of journaling and reflection lately. I believe my discontent was because of the lack of deliberation, that I have been following “train tracks” laid by others. I have still yet to figure out my own “train track”, my next big thing. But I know for sure that it is the time for me to start thinking for myself, and doing things for myself.

I am certainly no longer the same person as four years ago. But one thing that remains is that I am still excited about building things, to make our world a bit better, as what I stated in “Hello World” four years ago:

I am not satisfied to be just an engineer. I want to bring real revolutionary changes to our society and make it a better place.