The Independence

A tribute to my 7-term in Waterloo that ended with a 7-course struggle. 

“Merdeka!” exactly the phrase Malaysians love to call it when we are freed from our responsibilities. You can hear me introducing the notion of “achieving independence” to people in Waterloo after their midterms, or better still, the finals.

But for me, the notion of independence has a deeper meaning: it symbolizes my “breaking away” from Waterloo after being stuck for 7 terms (a.k.a. 2 years and 4 months in a row). It also marks my experimentation into an industry internship (though still doing a research in some kind) after staying faithful to academia for two internship terms.

Part 1: “Like a New Beginning”

(Reusing my first personal portrait)

It’s a new start. A new life. A new academic career. The undergraduate journey. There I went, trying to adapt the academic competitiveness in Computer Science and Mathematics, the ruthless winter that I would never imagine during my days in Malaysia, and the poignant homesick feeling that keep disturbing me intermittently. As the end of first year drew near, however, we were scheduled to start our first internship at various places, prompting me to be prepared to embark on yet another new adventure. The difficulty on finding the first internship added another layer on uncertainty on my next step: whether to stay in Waterloo for another study term, or be ready to accept whichever job that I would land on? In the end, I was awarded the research position on graph theory in the Waterloo’s Computer Science department itself, and I was beyond delight to begin another local adventure on this field.

The research term was a spring/summer term, so I got to enjoy the Waterloo neighbourhood under the climate that’s somewhat-like-home. Experimenting around the Waterloo park and taking a brief jog around the Waterloo-Kitchener area opened my eye on the somewhat rustic side of the Waterloo neighbourhood that shifts away from the academic intensity of the campus. Maybe that’s also the reason why I could focus on my research–it’s in my ‘home’ city, eh?

Part 2: Continuation

Fall 2017 came. Heart rooted deeply into academia, I decided to apply for the Combinatorics and Optimization research in December due to the perceived prestige this research program it gave me (and yes, I do agree that it’s prestigious even after my completion of this program). Learning that I was paired with Prof. David Jao whose research interest resonates with mine, I swiftly accepted.

Wait…this means another consecutive terms at Waterloo, isn’t it? Regardless, I was glad that this research offer spared me from the toil of job search, allowing me to focus on my academics (particularly the time-consuming Objected-Oriented programming course).

Come May 1, I happily hopped onboard to research about the post-quantum cryptography. I began my subconscious hailing around the corridor of the mathematical building as I was thinking about the solutions to my current problem I was working on, or simply giving myself some interval for digesting the arcane mathematical fundamentals I needed to succeed in this research project. Being a part of this domestic mathematical environment made me proud of what I was working on. Surrounded by friends around the Waterloo area with activities together (especially cooking) enhanced my summer experience even further.

But the demure voice of prompting me to leave Waterloo for my next co-op intensified as I kept listening about people’s experiences regarding a out-of-Loo co-op. The attractions. The entertainment district. The eateries. Am I supposed to be carried away by the thoughts?

Part 3: The Change

I decided that it was time for me to experiment something new for the next co-op: a new city, a new field. This somehow explained my penchant for developing technical side projects like the C++ Big Integer, and for attending two hackathons in the beginning of the Fall 2018 term despite the extreme workload ahead.

As the recruitment season started on WaterlooWorks, I went resolute on my desire to change, and filtered out almost all job postings that were located in Waterloo. This left me with about half of the mix in Toronto with the rest in the States. Subsequently, interviews from these applications came tide by tide, sometimes at the magnitude that’s capable of engulfing a human. But thankfully (and finally) I was getting these interviews.  Eventually on the Ranking Day (a.k.a. Results Day), “pop!”, 3 offers blinked in front of me. Mans going to Toronto, finally. 

2 months left in Waterloo, and that was really the grand finale of my consecutive streak in this university town. A temporary farewell–to the university, and the school life. “It’s going to be over soon”, I told myself as I was faced with the ongoing battle with the assignments and the exam preparation for the 7 courses. I am glad that I performed the very last bar of this grand finale well–the final exam.

“Merdeka!!!” I can’t stop screaming to my family and close friends after my last paper.

Screen Shot 2018-12-20 at 2.07.55 PM
The “independence” influence I like to spread among my friends


It’s official. I’ve moved in to Toronto now, and got to taste the first bite on the life in this new city. While fascinated by the dynamic lifestyle of the people here, I sometimes cringe as I think of the convoluted geographical distributions of the entertainment spots and eateries that I have always longed for all the while. Making things even more challenging was the initial challenge in locating a suitable residence during my internship, and the process of moving to a new city.

After all, Waterloo isn’t as ‘terrible’. I would still be proud of this city that produces the top performers in the ACM-ICPC programming competition and the Putnam competition every year. Perhaps, I just need a break from the university town and from studies, and I would be happy to embrace Waterloo, again. 🙂

Merry Christmas and “Happy Independence”! (as how I joked to friends) — taken at Eaton Centre, Toronto


It’s Fall 2018—nearly to the end. The long absence of me from this writing space suggests that something must have happened rather usually — and yes it did. I had never imagined myself of being that busy as this term with extra course load and internship application periods. Here’s some quotes from close friends, if I still recall them well.

“Wow 7 courses! How do you even handle it?”

“4 interviews in a day? Might as well spend your nights at the Career Centre jk.” (modified :P)

“ACM-ICPC Regionals and Putnam competition in the same term?”

(Along with some most contrived “Anzo you genius/god/master” and some more encouraging “don’t worry you got this” or anything similar).

At the end of the term, however, I am glad that everything has (almost) come to an end (just two more final exam papers to go!), and I will be starting my new subchapter of life in January (stay tuned…assuming I am disciplined enough to revisit this site!)

Maybe adrenaline just rushed into my head capriciously to prompt me here. 🙂 Also to tell all my readers (thanks for still being here 😛 ) that I am okay (just overwhelmed with work but it’s almost done!)

The Short Math Getaway

It’s July again: the month where the brightest mathematical minds all over the world celebrates their talent on the International Mathematical Olympiad again. As a retired contestant, I could hardly break the habit to read the problems, take a deep breath, appreciate the ingenuity of the problem author and the magnificent result embedded in the problems, before finally tackling them by working my mind hard. Yet the depression from the 2017 IMO disillusioned me from the vanity of wanting to sit the paper live and hoping (against hope as of the 2017 case) to vanquish them as quickly as possible.

On Monday and Tuesday mornings, I read the paper and decided to casually squeeze some free time in the week to do it (I managed to get 5 problems under the time-relaxed condition, perhaps 4 under the typical competition pressure), so here’s it:

Day 1

Problem 1 is Geometry, the area that I took pride of because it’s the most attractive for practice. Yet the surprise came in as I couldn’t find a way to get around it except to resort to my forte: trigonometric computation. The only happiness in disguise was the 3 likes on the Art of Problem Solving forum due to the unique approach 😉

Screen Shot 2018-07-23 at 9.25.45 PM

The first impression on Problem 2 looked daunting, perhaps due to my diffidence on sequence-like Algebra problems (especially when there were just too many constraint to follow). Yet the problem couldn’t have been made more vulnerable when the first step I needed to do was to play with the signs of the sequences. Two consecutive positive terms, one term zero: these are quickly eliminated. The only tricky case to consider was one negative term in between two positive terms. The +1 makes the terms following them pretty uncertain, but thanks to the cyclic structure of the sequence we can do some ‘backtracking’: it turns out that the sequence must have alternating positive and negative terms throughout, and the negative terms will only go increasingly negative down the line – hence the contradiction B) The only remaining possibility is – – + – – + repeat, which means 3 divides n. What about n = 3? It took a while, but I found that -1, -1, 2 works.

Problem 3 was the only problem I haven’t attempted — my fear for combinatorics stayed me away…but…isn’t this the exact problem I got on Google Games (use a computer to solve for a triangle with 5 rows). It turned out that this problem has been discussed in a few contexts before, and it’s therefore interesting to think how did the problem end up on the IMO…

Day 2

The first impression on Problem 4 was…just…difficult (come on are you killing students by disguising this as something ‘easy’?) The first thing I understood: no two red stones are associated by a knight’s move on the chessboard, which are of grids of different colours. So putting it on all white squares on the chessboard should be good: there are 200 of them and Amy can occupy at least half (100) of them. But how does Ben prevent her from progressing any further? “Knight-like bijection, maybe”, I conjectured, but, easier said than done. I swiftly drew myself a 4 x 4 chessboard and see if I could get much from it, only to end with uncertainty. The required mapping only crystallized only after more than 5 times drawing and erasing the 4 x 4 chessboard, shown as below:

Screen Shot 2018-07-23 at 10.39.02 PM

TL;DR whenever Alice moves, Ben put a blue stone on a spot of the same colour as Alice’s previous move such that the other two spots of the same colour are no longer accessible by Alice.

Problem 5 won my heart instantly: how on earth can one discover the identity behind this simple problem formulation that would render everyone hands-down? The first (and classical) approach was simply to expand the sequence by 1, and work from there. Find feasible a_1 based on a_n and a_(n+1)? Sure but this wouldn’t get us far since some funny combinations can work (e.g. a_1=18, a_n=77, a_(n+1)=99). Solving for a_(n+1) based on a_1 and a_n? Oh well…no thanks since there is quadratic equation involved. In view of the feasibility of a_(n+1) := a_1 or a_n there needs to be a bit of change. How about fixing a_1? Things now became interesting: the denominator of a_n/a_(n+1) in reduced form cannot exceed a1 (!) That’s a big step, and what about the extreme where a_(n+1) = a_1 * a_n? This seems fishy since we would need (a_n)-1 to be divisible by a_1. Here comes the conjecture: the gcd(a_(n+1), a_1) must be divisible by gcd(a_n, a_1), and it’s true – so at one point this gcd must remain constant as n increases. Things got easy henceforth, when we must have a_n divisible by a_(n+1) so the sequence must be non increasing from that point, and hence eventually constant.

Problem 6 was another reason to be happy of, since there are finally two geometry problems on this IMO (after its rarity for two years). The angle condition gives rise of two circles on which the point X must lie on, so it’s the intersection of the two circles. A couple more angle conditions arose, but they seemed to lead me deeper into the black hole without me noticing any way out. Anxious. Lost. I couldn’t help but to whine about the inability of my trigonometry magic to defeat it. Then I realized…wouldn’t it be great to investigate any alchemy arising from the length condition? Apollonius circle seemed to be the panacea to problems of this type, but the key never came to me until more than two hours have elapsed where I noticed the ultimate clue arising after I took the second intersection (named Y) of the circles ABX and CDX: Y lies on BD with angles related linearly to those formed with X! Now that Y, A, C and the centre of the Apollonius circle of ABD are on the same circle, more equal angles emerged and that comes to the end of my three-hour battle with it. 😀

Screen Shot 2018-07-23 at 10.35.43 PM

Post-IMO Thoughts

The abnormally high medal threshold this time round took me into disbelief, especially when I was certain of the difficulty of problem 4, convinced by the non-triviality of problem 6 and unsure of that of problems 2 and 5 (which turned out to be quite ‘easy’ as medium problems). On a positive side, the return of a double geometry assured me that my previous paranoia (and despair) that “geometry has been officially de-emphasized” was false. Perhaps on a more unbiased viewpoint (even as a fan of Euclidean geometry), I hope that problems on the IMO shortlist are not discriminated for (or against) just because of their topics (beyond the requirement of distinct topics must appear in the sets (1, 2, 4, 5), (1, 2, 3), (4, 5, 6), (3, 6) ). Beauty of a problem comes first, shouldn’t it?

Finally, here comes the second round of work!


May and Spring

“It’s the time of the year again”-I told myself after finishing my Complex Analysis final exam. I wanted a “mellow as the month of May” feeling as presented by Carole King (and Olivia One), but it never happened. And time proved that having a somewhat busy life is a blessing, not even in disguise.

Succeeding that was the interim period whereby I travelled to-and-fro Toronto twice: first for a Chopin concert and second purely for vacation. Adding to the holiday joy was the Google Games especially when we won the second place too (that was the only coding competition that I won thus far, and that’s because of the algorithmic nature of many of the puzzles. 🙂 )

The Research Life

It’s May 1. I refreshed my Quest Mobile of “Winter 2018 Unofficial Grades” for the final time to see all my marks in, and felt somewhat relieved that everything turned out well despite the perceived disaster during the exams themselves. Then I walked into the research office, officially starting my second chapter as a research assistant.

It didn’t take me long to notice the stark difficulty of this project compared to the last one: even with more research experience in hand. I knew I would enjoy this research about cryptography and number theory: the latter being a topic I have deep feelings for since I was still an IMO kid. This, however, explains my expectation towards myself: despite the commendation from my supervisors that I am having a good start, I still couldn’t help but to benchmark myself against my last research, where in the third week itself I could already improve the quick-union algorithm from something practically infeasible within few hours to something doable within seconds. That’s when I came to accept that the lack of my prior knowledge in cryptography made this project difficult — especially when the post-quantum cryptography requires understanding on esoteric mathematical topics (like class groups, elliptic curves isogeny, etc). Nevertheless, my interest never diminishes to the slightest extent even with the difficulty posed: the immense knowledge and results in cryptography simply prompted me to gain more from it.

Screen Shot 2018-05-31 at 11.30.54 PM
Sneak peek on my project 😛

Data After Data

Two of my weekends were dedicated for data analysis contests: the Datafest and Citadel’s Data Open. Despite my enjoyment on similar contests, I had to admit being challenged by it upon every participation–more so when I am still new to data analysis and haven’t taken many sophisticated Statistics course. As I thought things would become better as I gain experience each time, different challenges struck me every contest: one of them involving encoding modifying that exposes the lack of flexibility of Python in handling this manner. Nevertheless, there’s one and the only one thing that made my attempt worthwhile: learning new things every time. Now I finally understood how to manipulate data using Python’s Panda’s groupby function.

The Fun Time

May was hectic: not just because of the research, but also because of the social life I had with friends. We started off this fun time real quick with the Paintball activity that served as the perfect opportunity for post-separation meeting up (or rather, a legal vengeance of shooting our peers hard before needing to be nice to them again?). Then, was the (yet another) getaway during the Victoria Day weekend. It was also the sessions we had dinner together as a big group at different kitchens: a culinary skill exchange! Rounding up were the miscellaneous like attending the performance of Beethoven’s 9th Ode To Joy symphony, which enhanced my experience of this first month of summer ‘break’.

Screen Shot 2018-05-31 at 11.55.11 PM.png
Malaysian cuisine (thanks to housemates) + dinner squad
Screen Shot 2018-05-31 at 8.28.41 PM
The Toronto getaway!
Beethoven’s Ode To Joy Symphony that awestruck me with the choral force and the enthusiastic instrumental performance!

Story of the Piano

It was 10pm on May 3rd, and I met up my two friends in a piano room. For one good hour I struggled between avoiding the glitches on Chopin’s Fantaise Impromptu and showcasing my amateurish sight-playing skills to respond to song requests of pieces that I have hardly played before. Thankfully there was also room for me to play pieces like Hebe’s A Little Happiness, which I have posted on YouTube back then.

One friend on the scene could play some pieces well too, so I gave way to her at one point. I started relishing in her “Canon in D” and “River Flows in You”, simply wishing that I could actually play them too. Out of nowhere, the latter turned into “Happy Birthday” with few other close friends storming into the room with a cake — just like what happened three years ago but on a more private scale (surprise!).

There’s one more hour to go, and I was too elated to even think of my own playlist. It then became an alternating sequence between me continue fulfilling the Wishlist of my ‘audience’, having them to play a bit (remember Taeyang’s Wedding Dress?), and me continuing with a piece from everyone’s favourite artist. The clock eventually struck 12, and another chorus of “Happy Birthday” arose (with me accompany through the piano)–this time with me being entertain to the maximum extent with 6 languages (English, Mandarin, Malay, Cantonese, French, Korean).

Screen Shot 2018-05-31 at 11.02.37 PM
My Birthday Summed Up

Of course, the fun didn’t end here. Wishes from everywhere around the world, with a few gifts this time. It’s a celebration not just my birthday, but also the friendship that I have been deeming precious all the time (not forgetting the love from my family from the other side of the globe!)

“It’s the time of the year again”

It’s May, and it’s another year of me orbiting around the sun again. However much I wanted to avoid it, it’s yet another wake up call for me to think, act, behave, and interact like an adult beyond simply giving people the impression of my maturity. It’s May, and we are finally off the days of snow and get to enjoy the sunny scenery with longer daylight. Why not keep pictures of the beautiful sunset that tinges the sky with various colours then?

Screen Shot 2018-05-31 at 11.40.00 PM
Sunset view, collaged 😛


Screen Shot 2018-06-01 at 12.02.33 AM
Views from Spring / Summer

And finally, May has come to an end. Heads up to a more meaningful research and social live ahead!


Ps: this is a 4-month throwback, no thanks to the hectic schedule that extended beyond the winter 2018 school term.

As usual, the notion of getaway seemed to luxurious during our Fall 2017 school term. The term “school” and “school-related responsibilities” often hit us so hard as if time and thought of getting a vacation got suppressed. In particular, the chat topic I had with my partner-in-crime (Jay) were all about academics, internships, life, and nothing else.

That night, during a home-dinner session, Jay suddenly suggested, “how about going to Montreal?” After a short discussion on that, he vowed “let’s make this happen.”


December 26 was the day on which we departed, and we settled down ourselves when the outside temperature was -14C. The majority of the time was spent roaming through the Old Port and Downtown, repeatedly being awestruck by the magnificent architecture of the design of cathedral and the art masterpieces in the museums. An extreme part of the trip was to hike the Mont Royal when the temperature went to its lowest at -23C, getting all of us to curse hard on the brutal weather but rewarded us with a bird-eye city view of Montreal, nevertheless. These few days was also the period when I attempted skating for the first time, being so paranoid on all the mishap that could happen on me but things turned out just…fine (besides the very fact that pathetically clumsy movements and gesture made it obvious to everyone that this was my first skating).

We then travelled to Ottawa, hoping to enjoy the fireworks for the countdown purposes. The selling out of tickets into Parliament hill tour and the Mint (coin museum), as well as eatery closures, were a little underwhelming. Nevertheless, we still enjoyed ourselves by the random walking through the Byward Market, and the firework exhibition at the countdown moment.

Looking back, the insurmountable cold weather was definitely the biggest hurdle of the vacation. The formidable numbers and the “low temperature” flag on temperature forecast made me reconsidered a few times on the viability of this getaway. Betting on the fact that indoor attractions abound, I chose to go with it, nevertheless. Eventually, the winter scenery we took on the streets and the bird-eye view taken from St. Joseph Oratory and Mont Royal made our persistence worthwhile. Although it’s publicly accepted that the best time for visit is summer, a getaway at this time at the absence of workload just made the winter experience meaningful.

It’s also the vacation that allowed us to put everything (work, ambitions, projects) on halt and have a look on things that we have not thought of doing all the while (chatting, food hunting). In the short three-day period in Montreal itself, my travel partners and I have exchanged perspectives over a few meals, with topics like “describe the things you like”, “what’s your ambition”, “how to define well-being”, etc. Mesmerizing ourselves in the thoughts of our passion and the relevance to our lives under the ambience of a steakhouse was an experience that I’ve been looking for all the while, and I simply appreciate the presence of people who can speak about this with me.

Finally, here comes the main purpose of this post: to show the token of appreciation to my two travel partners: Sofia and Jay. As cliched as the phrase “couldn’t have done it without you” goes, it’s nevertheless the exact feeling I have for them because traveling is arduous without having companions around. Special thanks to the tour guide Sofia for her enthusiasm when bringing us around the different attractions around her hometown, and helping us to overcome the language barrier in Montreal. Also thanks to the partner-in-crime Jay for convincing me to make things happen all the while. Great friendship with you two, and hoping for more trips to come. 🙂

WhatsApp Image 2017-12-30 at 00.06.09

Updates (again)

As per tradition, an update after the end of each term is customary (partially to alleviate the tension from the study terms). Yet this update comes late in the first week of the subsequent (Spring 2018) term: what happened to me all this while?

Long story short, here it is:

  1. It’s a new term, and I am doing another full-time research: this time in the Combinatorics and Optimization department. Hoping to be able to write enough things on this blog like my last research!


  2. Did I say I transferred into Computer Science? Yes, I applied for this transfer back in December 2017, which was approved later. More details to follow (or possibly in future posts 😉 ).
  3. It’s no exaggeration to say that the Winter 2018 term was the most academically hectic term I had. In this short 4-month period, I completed three third-year level Pure Mathematics courses that challenged me with their depths, one Object-Oriented programming course whose voluminous content  and demanding assignment drove me into wilderness, and two other courses (Stats, Logic) that demanded my attention for the assignments as well. Behind every torture, however, was the feeling of accomplishment, simply because I have done something that I wanted to avoid so badly in the beginning. “Excruciation before extrication”, a motto that I’d always have for myself.
  4. Aside from that was my involvement in extracurricular activities, particularly the UWaterloo FinTech club where we started to showcase fundamentals on creating cryptocurrency and a few FinTech startup companies. Now I am loaded with the task of learning solidity. :O
  5. It’s finally bragging time! First, Honorable Mention on the Putnam contest, as announced in February, both individual and team. Then, came motley of coding contests: advancing to the Platinum division of the USACO after acing the Gold division (last-minute solution acceptance, so consider me lucky 😉 ), winning the second place in the 2018 Waterloo Google Games, and getting a near-perfect score in the Communitech Code and Win Finals. May the CS force be with me after my transfer. 😛
  6. Just had a fabulous birthday celebration on Friday! Thanks to everyone who spent time making me delighted. 😀

Stepback with people

“It’s Reading Week, not Spring Break”, said a professor regarding the due date of an assignment–which happens right after our one-week break (Feb 17-25). Regardless, I had enough fun meeting with and hanging out with people in the beginning of the break.

Part 1: uOttaHack

It all happened with the uOttaHacks that I had been waiting for, heart ached when I was placed into the waiting list but leaped sky high when I was accepted, eventually. Since then, I walked through the final week before the break, clearing two midterms while being eager of the event coming. And finally, it came–the wee hours that saw me boarding the bus to Ottawa.

Multiple coding projects kicked in: we started doing our chrome extension that records any articles an individual reads onto their Github-like profile, solved puzzles on Capture the Flag, and did an algorithmic challenge posted by the CSE. It was unclear on how to proceed on my part in the beginning, but after several attempt I finally got to check the skill of “building a simple chrome extension by manipulating on manifest.js” on my checklist. Once again, it’s also refreshing to witness the flair of my teammates in creating the idea of showing people that we are more than just coders when we read others’ article, and their ability in leveraging their skills to create products.

Blending into the hackathon was the pre-hacking skating on Rideau canal, which exposed my gross ineptitude compared to my peers (it’s my third time skating, oh well). Thanks to Jay (who’s currently interning at Shopify), we also got a chance to be awestruck by the employee-centered design and culture of Shopify during the visit.

Part 2: Getaway in Toronto

UWaterloo’s co-op system placed each of us in different work-study sequence, which caused a few close friends to be away from Waterloo for their internships currently. It’s second month into the term: the second month of longing for spending time with them. The combination of “Students’ Reading Week” and “Workers’ Family Day” thankfully provided the perfect combination for us to gather at the city where they work at: it’s not that far from Waterloo, after all.

It’s a short, yet well spent day. Between meals, we spent time being thrilled in escape room and creating immense laughter in board game cafe. The enjoyment came not just from the gaming itself, but also through the learning about the thoughts of others’ in doing non-schoolwork things.


School work deprived us from doing what we really feel like doing, and this term is no exception. Looking back, it’s worth thinking: how many days have I spent locking myself in my room to catch up with school and responsibilities, and not care about other things else? The break came in just handy for us to break ourselves from the monotonic routine of “class-assignment-midterm-sleep-repeat”. It’s also a great time to have a few moments doing activities, both constructive and leisure, with those people we really care in our undergrad journey, and consequently learn from them. These activities added color to my undergrad diary, and it’s therefore heartening to have these people to collectively paint this diary into a beautiful one.

My 2017 Review

Reproduced from Facebook, with the permission of the original writer because that’s me XD Added photos for completeness. Reposting to make this my 100th post 😛


2017: a year that stood out completely from others. It’s the year when I was completely away from my home country and family, just for my dreams. It’s the year when I started developing sense of crisis in multiple aspects, particularly after bleeding through the job application processes. It’s also a year when I made incredibly many great friends in my university who can carry conversations along by their endless great insights.

Jan-Apr 2017: Winter

1B term just started, this time with co-op applications blending itself into my already existing academic workload. Ignorant of how a job application look like, I went with the flow by kept getting my resume roasted and cursorily glancing through the available positions before hitting “Submit”. Hoping for the best possible scenario, I was instead struck hard by the reality when all I could do was to watch people around me to announce new offers on their Facebook wall. I finally plunged into abjectness as Continuous round threatened to close: I didn’t even know if I should continue.
Blending into the WaterlooWorks applications were the academic commitment, when I started to lose pace on several courses. The sense of crises heightened to a point when I was forced to visit office hours so frequently that I was at the verge of relying my instructors altogether. Not-less-significant was the moment when I had to let go one question that turned out to be too arcane for me, despite pondering over it again and again.
But on the positive side, I was blessed with people around me of the term. My involvement in the Singapore-Malaysian association as a Communications Manager exposed to me the existing Malaysian communities, which made me feel a few steps closer to home through various activities. Decorating the experience was some extracurricular activities, like a Hackathon volunteering and the Precision Case Competition.
Last, but not least, virtually all my worries aforementioned have been resolved with a heartwarming closure. The most distinctive of those were the week when I had four interviews in a week–the week in which I told myself “I had to get something”. 8pm on the Ranking Day, I checked my ranking page and was greeted by an offer from one of my top choices: Research in Graph Data Management. However difficult for me to believe that, I did it. Soon enough, I felt like the whole world was happy for me when comments flooded on my Facebook wall. The night was mine.
Another great news came in April as I won an Honorable Mention on the 2016 Putnam Competition (7 places away from the N2!) Finally, we chose to end our term with one-day visit to Niagara Falls, thanks to a group of peers who were willing to go far with me.
Repost my photo with the Niagara fam

May – Aug 2017: Spring/Summer

May 1: my first co-op started after an intersession respite. After a two-week warmup of understanding existing works in the field, I extracted the insights from the previous algorithms and tried to modify it to solve the problems. Here came the two components of thoughts: algorithmically, I tried to design it with the maximal possible efficiency in achieving my target; mathematically, I wrote the proof of correctness to make sure that these algorithms were correct. These two objectives seemed to be at odd as I met my first obstacle of getting wrong output midway into my design of algorithms, only to notice an extremely subtle error in my code. Eventually, it was the numbers that provided me with the sense of accomplishment as I successfully trimmed the running time from that of the otherwise brute force algorithms.
The next stage was to venture into multi-processing algorithms, during which I explored libraries like the Multi-Processing Interface (MPI) and the Open MP. For the second time, I was baffled in various aspects, primarily the longer running time than that of the single-processor code that did not agree with the efficiency that should have been achieved via multiple processors. It’s only after a discussion with my supervisors did I realize the occult behind the inter-processor communications and the need of avoiding unnecessary communications. This left me with something working, eventually.
May 5 saw my participation of my first hackathon, and May 13 saw my first venture into Citadel’s Datathon. The excitement derived from these events prompted me to develop a coding project: my own website using HTML and CSS. Intended initially to translate my mathematical passion into the trigonometric tutorial page and my IMO training summary, I found it as another great way of telling my own story by integrating the different aspects of me. An intricate aspect was the journey of making this website responsive, which I only achieved after 2 months of experimenting. Come mid-July, the IMO 2016 shortlisted problems were released following the 2017 IMO in Brazil. Decided to show my enthusiasm for the problems, I started compiling my work onto my Github page. The two-month effort saw me painstakingly ensuring that my solutions were sufficiently rigorous, and that my intuition write-up was easily understandable by those who wanted to learn.
The balmy summer provided me with the opportunity to join different group of friends (or ‘colleagues’) on exploring Toronto and Wonderland. In this short period of time, I was exhilarated by the extreme activities, mellowed by the golden sunset scene on the longest day of the year, and awestruck by the magnificent fireworks on Canada’s 150 celebration. Rounding up the work-life balance was the motley of other leisure activities I had with people having work-term nearby me, ranging from board games, volleyball to Frisbee. These activities reminded me of pastime that were too luxurious during school time, and therefore made my summer experience unique.
Just found another old Wonderland photo, ignore my face and sorry to a friend who had to left early
It’s also worth noting that this is the term my birthday fell on, which blessed me with the multitude wishes from various parts of the world. Having friends to spend time with me on the day made me appreciate friendship even further.

Sept-Dec 2017: Fall

Another school term started–this time witnessing me getting into second year. Getting hyped for yet another school year, I felt that the next round of challenges had just begun. Once again, I challenged myself with the advanced section of mathematics courses, and two other courses that align me with the Mathematical Finance option. The in-depth and proof-based content in Linear Algebra and Calculus courses opened to me the sacrosanct mathematical identities and their astonishing applications that I have never imagined of before, which perpetuated my mathematical passion.
Several contests quenched my love for math and coding even further. In October, the Waterloo Local ACM contest and the North American Qualifier, held in two consecutive weeks, thoroughly accessed my ability to code within the contest timeframe while providing me pleasure on appreciating the beauty of algorithmic problems. Later, the contest timeline was dominated by mathematical contests, and I gave my attention wholeheartedly for the Putnam contest and its warmup: the Big E. Rounding up this contest series were the RBC’s Next Great Innovator Hackathon, the Google Games and the Capture the Flag competition.
Local ACM that placed me rank 18 out of 83! Have to admit that I am a little lucky on that day, though.
It’s WaterlooWorks applications season again, and I chose to defer my next internship plan to the Spring term for various reasons. Nevertheless, my curiosity led me to start exploring the job market external to WaterlooWorks: this time giving myself enough time to make different submissions. Once again, dream jobs remain dream with rejection letters whacking me. The realization of the need for improving my coding skills, together with the desire to enrich myself with numerous excellent Computer Science courses offered on campus, led to my bold decision at the end of the term: to apply for a transfer into Computer Science.
A little pastime that I could feel lucky of amid the intense academic term was cooking (with my partner-in-crime), where we could take a break from the suffocating schoolwork while boasting on our ability to feed ourselves. The pinnacle of all leisure came when the term ended with my first out-of-province vacation to Montreal and Ottawa, during which I was physically challenged by the coldest weather I’ve been: -23C. Nevertheless, the two great travel companions and the picturesque scene and exhibitions made the whole experience more bearable.
WhatsApp Image 2017-12-30 at 00.06.09
The Montreal-Ottawa trip geeks
Finally, it’s the time for countdown again. “10, 9, …, 3, 2, 1, Happy New Year!” I joined the crowd before the Ottawa’s Parliament Hill to celebrate the end of the year. That’s it, about the past 365 days.

Closing Remarks

2017 has been extraordinarily challenging, but thanks to all the hassle and pain I could check a few items from my bucket list. Some of them include getting interviews (Citadel, Jane Street, TransMarket) and job offer (research), developing my first project (website), winning a major math competition in university (Putnam), writing different coding contests, and continue exploring Canada (Toronto, Wonderland, Niagara Falls, Montreal, Ottawa).
These were made possible only with all the people around me, including but not limited to: profs and other instructors who made my learning journey at Waterloo worthwhile, seniors who advised me in several aspects of surviving school, research supervisors who always inspired me with their insights during work, friends who never stopped making me feel better when I was at the lowest point of my job search, comrades who slogged through school with me, peers who provided me with work-life balance by hanging out with me, family who continued to provide me with relentless support and love from the other side of the globe.
Thanks to everyone who appeared in my 2017. Thank you very much.
Final note: special thanks to the two friends who spent the most time with me in the year, Alex (left) and Jay (right). Both were my meal partners when they were around. (I wish I have a proper photo with both of them!)


The Sophomore Struggle

It’s the time of the year again
Walking to 8:30am classes in the rain
In the same lecture room we remain
Hoping to survive the assignment pain

It’s the time of the year again
Cali-or-bust dominated our brains
Resumes roasting hard to avoid being disdained
Just for the question: “Can I get a job in the Main”?

It’s the time of the year again
Midterms stacking with our energy drained
Cramming into late night, hoping we don’t go insane
Leading us to wonder: can our schedule maintain?

It’s the time of the year again
Interviews coming along, questions too arcane
New job announcements on Facebook, “congrats” comments we can’t refrain
A minute voice shivers, “continuous round it’s me again”

It’s the time of the year again
Finals blending into the snowy terrain
Library seats search ending in vain
Mr. Goose prayer sent, hoping the curves don’t wane

It’s the time of the year again
“Exams are over!” The freedom we regained
Vacations and holidays flowing into our domain
Coz we deserve them: how long can we abstain!

Ps 1: My first time crafting a poem on WordPress; much apologies if it’s lame.
Ps 2: Technically I was half-lying because I wasn’t on WaterlooWorks this term, but I would nevertheless dedicate this to all people around me who slogged through the term together with me. Thanks for giving me the strength to survive yet another tedious study term.

Putnam 2017 (Part 2)

Three hours gone in the morning. Three more hours to fight. Thankfully we had two-hour-break in between but I desperately needed coffee. Our proctor/Putnam coach (Prof. Stephen New) asked if anyone in the room needs more coffee and I was among the very few people who raised their hands, “you gonna finish most of them”, he joked to me.

Jokes aside, here’s section B. Assuming that the methodology of trying the first few problems actually works, I first looked at B1. “Easy”, I thought, “just use my trigonometric specialization that I had in my IMO journey back then right?” Unfortunately, there are just too many cases involved (point inside/outside the angle domain that gives positive or negative ratio), so I put it on hold and turn to B2.

B2 was another problem that looked routine: the first question we should ask ourselves was: what are the numbers that can be represented by sum of k consecutive positive numbers? Removing the constraint that a has to be positive, N has to be divisible by k if k is odd, and N-(k/2) divisible by k if k is even. Adding the “positive a” constraint simply means N is at least 1+2+…+k = k(k+1)/2. But what’s next? Hmm…well now N=2017m with m>=1008. If m is divisible by some odd prime p then k=p would work (come on, 2017m>=p(p+1)/2 shouldn’t be hard to prove). Otherwise, consider m=1024 and the smallest k>1 that is not 2017 is k=2048, but 2048*2049/2 > 1024*2017. This gives our desired form, and hence the answer a=16.

Turning back to B1, I wasn’t convinced that I could make my trigonometric argument work. But the next thing came into my mind: what if, we rotate a line around P and consider the ratio? As it turns out, this ‘covers’ all possible lambdas except zero, as desired.


Time for B3. First thought: prove that the sequence c_i must be eventually periodic for f(1/2) to be rational. There came my machinery: Fermat’s little theorem (every number 1/q with q odd can be written as p/(2^k-1) for some k and p integers, and 1/(2^k-1) is 0.000…1000…1… in binary form, with period k). Still…this looks messy, and I had to skip one final computation part and straight claim this identity directly. The rest wasn’t too hard to complete: if the series c_i is eventually periodic, then f(2/3) has odd denominator and cannot be 1/2. Yay, no? Oh well, not really (considering the minute details that ate up substantial amount of my time).

I couldn’t remember how much time left by then, but the aim was to kill another problem. Curiosity on how the pattern of sums for B4 dominated my mind, so I tried that first. On its first sight, rearrangement of the terms in the right-hand-side looks tempting because this trick simplifies computations substantially most of the times, according to my experience. No. I couldn’t do this arbitrarily: it doesn’t convergence absolutely so I had to do the rearrangement judiciously. But how? 😥

After the futile experimentation on B4, I proceeded with B5 instead (geometry ❤ ). So there were a few things to keep in mind: if we fix the line to partition the triangle into equal perimeters and vary it, then using extremal arguments each triangle must have at least one equalizer. Having that in mind, I continued to play with such lines, looking for the critical cases of the lines intersecting one of the three vertices of the triangle, and anything interesting in between. But I got myself into the whirlpool of cases, the most distinctive of which was whether the shortest side is at least a quarter of the perimeter of the triangle. Nervous. Can’t continue. Time’s up. Devastated. I couldn’t even squeeze time to look at B6.

In the short post-contest discussion, many peers claimed the first three, and concurred with me that B4 was hard (except the Putnam coach, Prof. Stephen New, who vanquished B4 rather instantaneously). There was one who additionally claimed B5, which gained him a bucket list of 8 problems solved. Oh well, I just had to hope that all my 7 solutions were good enough to earn full/near full credits.

Ps: B4 actually wasn’t that hard. If only I was a bit braver and try to avoid the convergence issue by thinking of partial sums…