Everyone has his or her own story. So do I.
I was born and raised in Kuala Lumpur, the Capital of Malaysia, until I decided to head up north to pursue an undergraduate degree in Computer Science at Waterloo. I have a passion for the web and systems, and I love coding. I am also interested in music, travel, and cooking.
So, how did I end up here?
It all started with a game. Neopets, to be exact. It was the year 2002, right after I got my first computer. Neopets is a virtual pet website in which users can have their own virtual pets, and buy items for them. I fell in love with it.
Fast forward to 4 years later in 2006, I went on to a game called MapleStory.
I started “mapling” as a casual gamer, browsing through the different worlds and mingling with the online community.
One day, everything changed. A fellow Mapler introduced me to a deeper, more secretive side of the game — private servers.
I never looked back since.
Private servers are funny. They’re not exactly illegal, but they’re not something you tell your mom about, either. In a nutshell, they are a replica of the official server — except now, YOU get to craft the players’ experience.
I began immersing myself in the elusive world of private servers. It intrigued me how competitive the market was — private servers had to be both uniquely-crafted and up-to-date, otherwise players wouldn’t even use it.
It was only a matter of time before I started learning how to build my own private server. Open-source codes became my constant companion; online forums, my best friends. I spent days trying to hack it all together; sometimes, it would work, and I wouldn’t understand why.
Those small victories kept me going, but the biggest catalyst of all were the online communities. Everyone on the server forums was engaged in healthy competition, trying to ship their code as fast as possible, while maintaining code performance. I was then exposed to Computer Science concepts such as data structures, multithreading, and networking.
After 2 years of breaking, analyzing and piecing code together, I too released my first feature update.
That was just the beginning. Every 2 to 3 months, there would be an update on the official server, and I would try to keep up. Java started growing on me, then C#, then PHP.
Before I realized it, I was waist-deep in the world of web development.
Contrary to popular belief, web development was nothing like building a private server. Once again, I turned to Google for help; through its wealth of resources, I found advice, forums, friends. I realized I learned best from the work of others, so I spent many nights alone; breaking down code, understanding the logic, and transferring it to my own projects.
Before long, I was listing on freelancing websites. I got my first client at age 16.
I was still in high school then, so I would study by day and code by night. Sometimes, I read programming tutorials more than my school textbooks. The money I earned from freelancing projects went right back into fueling my web education; I was buying domains, web hosting, VPS. I was addicted.
After high school, I enrolled in the A-levels program of a local college. My focus changed; instead of coding on my own, I wanted to experience what it was like to actually build something with other people. Being the introvert that I was, finding the right student organization wasn’t the easiest thing. So I did what I do best — I offered my programming expertise to them. As a result, my social network expanded, and I gained tons of exposure.
However, my initial goal still wasn’t met: I haven’t been able to find the right people or projects.
So, I set off on a gap year to find them.
I joined an MNC first. It was early July 2014, and I was on my first tech internship. There, I’d hoped, I would find the collaborative experience I so desired. Instead, I was shuffled around to a number of teams, juggling multiple projects at a time. While I appreciated the chance to work with different people, I still didn’t get the chance to work on a project I could call mine.
The opposite happened when I jumped ship to a non-profit. I finally had the opportunity to take ownership on a data analysis project; however, the collaborative experience was still lacking.
I continued searching.
I guess it was only natural that four months later, I ended up sitting in a 18’ x 9’ room with three other people, hacking away on a startup.
Startups, I’d found, were the exact blend of teamwork and innovation I was looking for. And I owe that all to Code Division (now known as NEXT Academy).
I’d never experienced anything like it before — the environment, the curriculum, the people. It was my first introduction to Malaysia’s tech startup scene, and I loved it.
I initially enrolled because I wanted to pick up a new programming language — Ruby on Rails. But I picked up so much more than that: a win at a regional hackathon, an understanding of the startup ecosystem, and a team to build things with.
Soon, the beginning of summer 2015 marked the end of my gap year and the start of my undergraduate journey. I enrolled myself into Computer Science classes at an Australian-based university because I knew that the content I was learning on my own wasn’t enough. I then took up introductory classes related to Databases, Networking, Object-Oriented Programming, and Operating Systems. I was intrigued by how data are stored in computers, how packets get transferred from one computer to another over the internet, and how programs are executed at the CPU level.
After one term of CS classes, I realized that the education environment in Malaysia wasn’t what I have been looking for. I wanted to focus more on the practical and mathematical side of CS, rather than than the business side (information technology) of CS. Again, I took a break off school and started seeking for other opportunities. I then stumbled across the University of Waterloo, and I began applying to their Computer Science program.
Then, things got a little interesting. In just about 10 months, I…
- won an international hackathon — Masters of Code Grand Prize;
won a regional hackathon — National Supercomputing Centre Singapore (NSCC) Special Prize;
oversaw and planned the execution of the nation’s largest 24-hour hackathon — AngelHack KL 2016;
got a chance to attend a 5-day startup accelerator by MasterCard;
gained startup and life insights from industry experts such as Sebastien Taveau, former Chief Developer Evangelist (VP) — Open API of MasterCard; Tim Kobe, the iconic designer behind the original Apple Stores; and Mark Mathews, an Australian professional Big wave surfer;
picked up a variety of programming languages such as Python, R, TypeScript, C;
explored multiple technologies such as Angular.js, Node.js, Docker, ElasticSearch, Redis, Neo4j, Ionic Framework, and React;
tutored over 120 undergraduate students in various programming workshops;
- explored California, Malaysia, and Singapore; and
- got accepted into the University of Waterloo!
I never expected myself to come this far. Honestly. Looking back at those 10 months, being able to learn new technologies and share them with everyone else is extremely rewarding, at least to me. And I hope that I could continue doing this, and inspire more people to pursue their passions!
So now here I am, learning how to learn, as an undergraduate in Computer Science at the University of Waterloo, Canada.
It will test my limits as a self-taught programmer — but I don’t care.
It’s what I’ve been looking for all along.
Thanks for reading!