The goal of this post is to reflect on the 5 years I spent as an undergraduate at NUS SOC. I will be jotting down what I've done, accomplishments and failures, what I've not done, regrets, and advice. This post is more for myself than anyone else, but I hope you find this interesting too.

My journey is perhaps not the most unusual, or difficult, but it is also not conventional. First, it took me 5 years for a 4-year course - I took a year-long Leave of Absence (LOA) in what was supposed to be my final year. In fact I spent 2 out of the 5 years overseas.

I'm getting ahead of myself, I think the story begins even before I stepped into NUS.

2 years of thinking for 4-5 years of learning

The two years of mandatory military service is seen to be a bane for many young males, but I think it really helped me. It gave me lots of time to think about what I want for my future. Whereas many of my female peers had to rush out university applications while studying for examinations, I had two extra years, two extra windows to apply, two chances I could change my mind. And I took those chances.

I think for most people going out of JC, it is intimidating trying to think of what you want to study for university. So far, for the most part, education was pretty much fixed - you joined the school and they would tell you what to study. The choices I had faced was limited to, do you want some extra subjects? But now, you are faced with what seems like an infinite number of choices of varying subjects. (I recall seeing undergraduate studies in midwife and vikings studies, both very far from the conventional degrees I have heard of).

I was a BCME kid in JC, and quite naturally I thought I would be doing something related to those fields. So come 2009, I had my first university application window, and was figuring out what I wanted to do. And I couldn't decide. So I tried the most effective method I used for answering MCQ questions in exams - elimination.

A false start

I knew I would rather not take up subjects which required lab work, my experience with lab work in secondary school and JC was uninspiring, I found them tedious and contrived, I already knew what was going to happen in the experiment, so why bother doing them? (Looking back, that was such a naive mindset). So this decision eliminated most natural sciences degree. I considered engineering, after all my dad's an electrical engineer, but I was worried that I would start behind everyone else because I didn't take physics for my A's. So the entire field of engineering was shoved aside. I had zero talent for language and humanities, and I was confident I wasn't going to enjoy them anyway, so that discarded a whole bunch of other fields. What's remaining were subjects like business, computing, architecture.

And so I picked architecture.

It could be the influence of How I Met Your Mother, but I recall thinking that it would be cool to design a building. At that time I had mostly been a science student. So for this further education, I was interested in subjects that were, well, subjective, where there wasn't a clear right and wrong answer, where some of my marks could be left to creativity and taste. With that hopelessly naive mind, I applied to NUS architecture, and surprisingly, passed the entrance exam and got an offer. I was quite set on it at that time.

During the remainder of the year, I sought to find scholarship for my studies. I applied to HDB and URA. The one that affected me the most was round 2 of the interview with HDB. The question was "Why are you passionate about Architecture?". I fumbled. The best I could say was that I thought it was cool. That answer didn't even convince me, let alone the panel. Needless to say that was where the interviews ended.

I think it was an important lesson in my life, and I'm really glad that happened, because it led me to more mature thinking, and ultimately to the degree that I have just complete, Computer Science.

Second chance

Many people have a story about the first time they set their hands on a computer. I don't recall the exact moment and setting, but I recall it was a Windows 95 PC in the living room. I remember putting in floppy disks to play some games. I remember MSN Messenger where everyone had really cool statuses. And most of all, I remember learning programming in secondary school.

As an independent school, HCI (then TCHS) had free reign to design the curriculum. So in secondary 1 and 2 we did computer studies. We learned how to build simple static websites using HTML and CSS, implemented some interactivity with JavaScript, learned DreamWeaver, some server side coding with PHP, a game with Flash ActionScript, something with C++, etc. I think it was during this period when a seed was planted in me. A seed that would bud when I got rejected for my scholarship application and had to rethink what I really wanted to do. I remember enjoying lessons quite a bit, and recently realised, while flipping through old class reports, that I happen to performed quite well in classes.

I decided to take a shot at this interest that has been slowly developing over the years, so when the next application window opened I successfully transferred to Computer Science. When applying, thought of doing a double major, just because, so I tacked on Business Administration.

A taste of what's to come, at CSIT

I wanted to get a bit of warm up before starting school, after all it had been 4 years since I last touched programming in secondary school, unless gaming counted, so I tried looking for part time jobs that would allow me to do some programming. With a lot of luck, I found CSIT, and emailed them asking for an internship. And miraculously they offered me an internship! My project was to do some research on big data solutions. At that point I had no clue what it was about, I don't think I have any more clue now, but I was excited about the opportunity to do some CS related stuff.

I spent close to four months at CSIT under a great mentor, Sun Jing. He knew I was a complete newbie, so he gave me a lot of guidance, and a lot of freedom. The main goal of the project was to explore big data solutions for the organization's needs. I delivered documentation, manuals, example code at the end of the internship. I'm not sure how useful this was to CSIT, but the internship was extremely useful to me. In those months, I learned Linux and Ubuntu, shell and command line, Java, Vim, Hadoop, etc. It was also this period that I got more into operating systems, most weekends were spent installing a new distribution and hoping I didn't brick my laptop.

Towards the end of the internship I met an NUS senior who was interning at CSIT. I was trying to get int SOC's FSC, but because I signed up late there wasn't any more slots. This senior happened to know the organizers of the camp, so he put in some words for me, and I managed to join the camp. This became important, because it marked the start of my heavy involvement in camps for years to come.

Year 1, Freshmen

The months of June to Aug were spent in NUS doing rag, going for FSC, Union Camp, FOW. I also joined IFG, playing handball and basketball for SOC. This was probably one of the most enjoyable periods of university, no school work to worry about, a lot of socializing and making new friends, lots of activities to keep me busy. I made really good friends throughout these activities. A particular memorable group I met from FOW bash. I remember the bunch of us walking up and down basement, rehearsing for our catwalk until 3 or 4 in the morning, catching a wink before waking up at 7 for the day's camp activity.

Soon enough, school started, I entered NUS having a good foundation thanks to the internship at CSIT. For the foundation modules we were required to use the command line and Vim, both of which I had experience with. I also began to research more on topics that seniors mentioned during camps, such as overseas experience. I attended information sessions on NOC, was completely sold, and would, for all the remaining semesters, plan my modules around going overseas for a year. This meant that I preserved all my UE and breadth, because those could be mapped overseas.

Year 1 was a mess of activities. I joined the SOC Sports cell, and our role was to promote sports within our faculty. We organized multiple events, such as sports day, sports camp, ifg. I joined NUSSU Welfare Committee, which looks after the welfare of all students in NUS, and this also consisted of organizing events to give out freebies, such as free cone day, the NUSSU Welfare diary, welfare packs etc. I joined CGF, which organized what used to be the biggest egaming festival in Singapore. I got interested in a group called NUS Hackers, who aim to spread the hacker culture in NUS. I started attending their events, Friday Hacks, Hack&Roll, and towards the end of my first year, decided to join them as a core team member.

Somewhere in the middle of Year 1 Semester 1, there was a call to recruit committee members for the upcoming freshmen camp. I enjoyed myself during my own freshmen camp, and so decided that I want a hand at giving the incoming freshmen an equally fun experience. I signed up to be a helper for FSC, and the programmes director for FOW. Planning for camps was no easy feat, and this took place all over Semester 2, during the holidays, right up to August 2013 when the new freshmen came. Also during this period I signed up to be a house head for Union Camp.

Year 2, Sophomore

Summer 2013, May - Aug, proved to be a pretty intense period. I had 3 precamps, the camp I was helping out at FSC, for the camp I was organizing FOW, the camp I was joining as senior Union camp. I had 3 actual camps, FSC, FOW, and Union. I had CGF, which overlapped with a camp and a precamp. I had an ICT call up, my first ever. I had all the actual programmes planning for FOW. I had IFG training, because I wanted to play basketball for SOC again. I liked that my summer was so packed, it was fun doing all those things, but I remember my worry was that I couldn't do my best for everything I participated in. And in some way, this fear came alive in the form of my FOW camp, the one where I led the team in charge of programmes.

FOW was 1st Aug to 4th Aug. I remember during the planning phase we were faced with a resource constraint. We had planned night games, but in order to let every OG play the night game, it would take up too much time, such that the last group could only shower and sleep way after midnight. We solved this problem by splitting the campers into two, having half of them play a set of night games and the other half play another set of night games on the 2nd night, and on the 3rd night they rotated. We thought this was a good way to solve the problem. This solution turned out to be both a blessing and a bane.

On the 2nd night, after the conclusion of the night activities, half of the campers were visibly unsatisfied. We could sense that the overall mood was quite gloomy, partly because it was already late at night. This was bad, because the other half of the campers would have to play the same game the next night. We didn't want them to play something that wasn't fun, so the team resolved to improve the game, in one day. I stood in front of 100+ campers, apologized for our poor planning, asked them for another chance, and promised them that we will improve the game. What we heard was that the game they had played, some sort of variation of tag, was way too complicated. There were too many rules to remember, and the referees for the game weren't clear on the rules as well. We should have predicted this. During our precamp we played the same game as well, but it was fun because the size of the group was much smaller, and most of us were familiar with the rules. Until today I still remember the 5 of us programmes team staying up till 4am thinking of ways to improve the game. It was an utter failure and a remarkable accomplishment at the same time.

Like clockwork, the conclusion of FOW leads to the start of the school semester. It was shaping up to be an exciting year as well. I accepted my nomination to be chairperson of NUSSU Welfare, and quickly began assembling my committee and planning recruitment. With my newfound experience and lessons learnt from running camps, I applied to the role of FOP PD, which involves taking care of all freshmen related activities for SOC. As soon as I got the role, I began recruiting my team and planning for the activities of the summer.

For both leadership roles, I chose to work with people I could get along with. I felt that a team made up of people who could work together was better than a team that had people who were good at what they did but couldn't work in a team, i.e. I subscribed to the idea that the whole is greater than the sum of its parts.

For NUSSU Welfare, the team quickly sat down together and worked a mission and identity. We found that NUSSU Welfare was not recognizable, and people weren't sure what exactly we did. Thus, we aimed to increase our presence in the school, and also increase recognition for the work the committee does. As an example, during the Exam Welfare Pack giveaway, the team reaches out to tens of sponsors, handles hundreds of thousands of inventory item, and disseminates them to several faculties using a single van within a week. This event requires a lot of manual labour, moving and storing inventory, counting, coordinating with sponsors and faculties, transportation, and it happens every semester. Many meetings were called to discuss why we exist, what our goals were, how we want to be known to the students.

After multiple drafts, we came up with an image that we wanted to portray to the students. I'm very proud, and I'm sure the team is as well, that the motto "Making you smile", and our mascot, designed by Yat Kah and Zixuan, is still proudly featured in all Welfare events.

Throughout the rest of the year, semester one, I continued to be heavily involved in planning and running activities at the university scale. I think one thing I did right was to appoint myself as the PD of the very first event we were going to have, a Halloween theme welfare day, where we gave out stickers and badges featuring our new mascot, helium balloons and candies, had a photo booth with costumes. This was the first time Welfare has done a halloween themed event. I think this gave the rest of the team confidence when I delegated the running of other activities to them, and set a standard for the amount of commitment and effort one has to put in. I think this has always been my style of leadership, lead by example.

FOP is the highlight of my university life because of the friends I've made. Right after I got the role, I started recruiting people to join the team. I had the most support from Yip, who pretty much volunteered to be my Vice. I recall that I wanted him to be a PD for one of the camp, but I'm glad that he ended up as VPD. Then followed countless afternoons and evenings spent discussing what we wanted FOP to be, who we wanted in the committee, how to publicize the events and get more freshmen participation, and many more issues. Both of us were a hundred percent committed to this, because we really believed in making the freshmen experience the best, and also probably because both of us had our own screw ups running camps the previous summer, and this was a chance to make up for it.

Two of us weren't enough to run the freshmen programmes. To fill up the rest of the roles, I sought people I already knew and could trust. Slowly, with much persuasion and convincing, the empty positions got filled. Some of them were people I already knew from pageant, Oswell and Huiloon, some were friends that I trusted, Yong, Jocelyn, Lacie, Jaryl, or juniors who integrated well with the group, Davis, Huiwen, Quan Yang. The theme here was that we were a group of people that trusted one another and could work together.

I am exceptionally proud of this team for three reason, we came up with great ideas, we planned thoroughly, and we executed them well. As an example, we felt that incoming freshmen didn't have sufficient opportunities to interact over the summer, as there were only two camps that were two months apart. So we wanted to organize events during the period in between. Conventionally freshmen were just asked to come back to school for Rag, but we thought that was not attractive enough. So the team went beyond their duties to organize extra activities. Two events we came up with were ice skating, and escape the room. As a testament to the team's resourcefulness, we pitched a combined Chillax Day, where current SOC students are invited as well, to our MC, and they agreed to organize one.

The freshmen activities ran really well. It was a hectic and stressful summer, but it was this period where the friendships were strengthened. A lot of work and people came together to make those activities successful, such as the support staff like the photo and video crew, for the legendary ability to come up with next-day video highlights, the OGLs and helpers for the sustained enthusiasm during camps, and seniors like Jianwei and Juntang who graduated but never really left our side, always listening and offering their wisdom.

This period provided a lot of wonderful memories, like the early morning venue chope at Sentosa and an unplanned excursion to the golf club, the night after rag where everyone sat together outside SR1 and much tears were shed.

But soon after came one of the biggest upset I've felt in university.

Throughout the history of SOC, Bash has been a complicated affair: some years it was present, some years had two, some years didn't, sometimes it wasn't called Bash, I guess we didn't really know what it meant. The team decided that Bash would be a celebration of friendship, to commemorate the bonds built between freshmen and seniors during the freshmen activities, and to mark a soaring start to the semester. So Bash was to be held on the second week of school. But I was bound on a year-long overseas program, and I was going to leave the first week of school. So I had to give this celebration a miss. I didn't think I would miss it that much, but I do wish I was there to experience it.

Before moving on to the year I spent overseas, I want to talk about another disappointment. This started on 19th May, where GSOC work was officially supposed to start. A couple weeks before, I was elated to learn that I was accepted into GSOC to work with Ganglia on one of their projects. I was even more excited when I received a book from my host organization about the project. I had learned about GSOC upon joining SOC, a couple of seniors have mentioned it, and couldn't fathom being part of it. But that didn't stop me from trying. I was excited to begin work on the project, and went off to a flying start. But this was also the period where my relationship with FOP got pretty serious.

I, along with my team, would spend many nights over in school. I didn't jot this down in my calendar, but the days would look pretty much like: camp planning, summer activities planning, non-camp activities such as academic day, rag dance, float, and flag planning, bash planning, rag, supper, sleepover in school. I remember the holidays flying by just like this, where the three months were marked not by days but by the activities we plan and run. One day flew by after another, and eventually I didn't get enough work done for GSOC to pass my final evaluation. I was disappointed in myself, that I didn't manage my time well, but I don't regret it.

I cannot recommend participating in school activities, such as freshmen orientation, enough. I had such a great experience and I think anyone would have too. It definitely takes up a lot of time and effort, but you get to meet new people who could be the greatest friends you will ever meet, and probably the most important part is that this is the only and last chance you get to try these activities.

Year 3, Junior, Away

My third year of school was spent in New York as part of NOC. The year in New York was really an eye opener, I travelled to many new places, saw new sights, tried new activities like snowboarding, joined many hackathons (great way to save money on food but completely destroys waistline), celebrated Halloween, thanksgiving, worked a ton, improved a lot on my technical skills. In short, a lot of new experiences, most of them good.

Many people aren't keen to go overseas, maybe for fear of living behind the old and familiar, or maybe for fear of the new and unknown. I encourage anyone who has a chance to go overseas to go. Especially during university where there is a good support system and there are incentives to go, such as MCs.

Around December I interviewed with Google for a summer internship scheduled right after the conclusion of NOC. The interview went fine and I got an offer. The biggest issue was the timeline. Summer internships usually started in May, but my NOC was until July. So I had to first push the start date to July. However, due to visa requirements I had to be in Singapore for at least three months after NOC before I could return to US, so I had to push the start date to Oct. Fortunately the company agreed.

With this internships presented a conflict with my academic plans. A three-month internship starting in Oct and ending in Jan would overlap with both semesters of school. I definitely need to take a Leave for semester one, otherwise I would miss the finals, but I could probably get away with skipping two or three weeks of school in semester two. Initially I couldn't make a decision, so I called my parents. As with many things, my parents gave me a lot of assurance and flexibility. I feel really lucky to be in a situation whereby I am free to explore what I like to do with little regard to time or resource, especially financial, constraints, and always with their full support. Eventually I took a year long leave from school. And now I have 7 more months of free time to fill up. So I decided to go internship shopping.

Year 4, Senior, Away

The three months I was in Singapore waiting for the visa requirements to pass was spent applying for internships. I think in total I went through close to 20 interviews, including on-site and phone calls. Companies I tried interviewing at were: Stripe, Uber, Garena, Viki, Amazon, Microsoft, Facebook, Asana, Atlassian, Palantir, Dropbox, Twitter. It was helpful that I could focus completely on interviewing. I didn't have school work, so I could spend my time practicing and revising on algorithms and data structure, which a lot of companies ask during interviews. I think if possible, anyone trying to land an internships should carve out a significant portion of time to prepare for the interviews, just like how one would prepare for an exams. Eventually I got offers from Stripe and Uber, for a 11-week long internships at each company in San Francisco. And that was how my one year leave was spent: 3 return flights to US, 3 internships.

A lot has been written about technical interview processes, it seems like every week there will be a new post and discussion about it on Hacker News. I won't get into it too much, but I would want to highlight Stripe's internship interview process as I experienced, because it was such a good one. After the initial HR call, there was an hour-long technical phone call. Upon passing that, they flew me on-site to San Francisco, for a 4 or 5 hour long series of interviews. This might sound gruelling, but it included a lunch interview with an engineering manager, which felt like a 1 on 1 AMA session, very friendly and casual. The other on-site interviews were technical, and were fun. There was a technical architecture and design session, where you would whiteboard up a system to solve the problem posed. There was a session where I had to debug an open source project. There was also the more conventional data structure and algorithms question. All these was performed on my own laptop, so I had the comfort of a familiar setup. I felt that this whole interview was very well planned out, it tested many different qualities of myself, and most of all it was fun.

During the three months I also dabbled a little bit in startups. Back in New York, my team won AngelHack Brooklyn and was invited to join their hackcelerator, so we set up a company and participated. But for reasons, we didn't get through the whole program, and closed down the company later in the year. Some guy started a company that does fashion advice via text (early to the chat bots fad) and asked me to join, and I did it at the side. It wasn't interesting enough, and I didn't want to commit too much, so I left having done nothing substantial. I continued doing part time work for my NOC company. Helped with NUS Hackers' Hack&Roll and hackerschool, played basketball for SOC. I kept myself fairly busy.

I thoroughly enjoyed my time all three internships, and for different reasons.

The work culture at Google is as amazing as you read it to be. The first few weeks of Google was something like going to science center, there were so many cool toys to play with, so many things to learn - it was so damn fun. Being in New York was also really fun. The city has much to see, do, eat. And when I feel like having peace and quiet, the office was my hideout, where I can head to and escape into the pages of a book. It had many conducive spots, and I could never go hungry or thirsty with the well-stocked pantry. Day to day work was fun. I was working on an internal tool and had a chance to meet some important people together with my mentor. Meals were always something to look forward to, because the kitchen crew is just so good at what they do. Sometimes in the afternoon the team would go grab a cup of freshly brewed coffee at the cafe. Some days after work I would head to the music room to try my hands at the drums. Other days I would head to the studio to break. If there's an interesting meetup, that's where I'm headed. Weekends were spent joining meetup groups to go up mountains and snowboard, which I couldn't get enough of.

Stripe feels like a family - everyone takes care of everyone else. The vibe was just super friendly, right from day one, where all the newcomers had an hour long chat with the founders. I joined at an odd timing, so there were only 3 interns at the company, but never did I once feel like I was an intern. From the very first day I was trained as a full timer. I got eased into my role by performing increasingly challenging tasks. And I was even given full reign to implement a new feature. They have a culture of coffee walks, where they have a meeting while walking to the nearest cafe for a cup of coffee. The walks were very enjoyable in the SF breeze, and I would always feel refreshed after that. They put me up in a very nice corporate housing, so many evenings were spent at the gym. The apartment was also pretty close to a skate park, so I picked up skateboarding, as a way to get close to snowboarding during off-season.

By the time I was a Uber I was getting used to this internship business. I knew what was expected, and knew how to pace myself. I was very lucky to have a mentor that cared a lot about what my learning and interests, so he roped me into a role that was meant for full-time rather than an internship project. What I wasn't prepared for was the company of great friends, all of whom I met from NUS Hackers. At my previous two internships, I was mostly by myself, but now, I lived with two other friends, Vishnu and Jingwen, and had another friend, Stacey, that would come up from south bay every weekend. With this bunch of friends we binged on TV shows, caught weekly released of GoT and SV, had two house parties (one warming and one cooling) that gathered pretty much every Singaporean doing an internship in the bay area, rented fancy cars and went on road trips, went for my first night of techno, ran the sf half marathon, ate fancy steak... I feel like this internship was the most enjoyable because of this group of friends and the things we did together.

Year 5, Final

And with the conclusion of my internships, the final year of school began. I got interested in programming languages, and would take all the programming language related modules I could get my hands on in my final year. I'm thankful to friends such as Jingwen and Stacey for being coursemates, because discussion with them always spurred my interest and helped me discover what I would like to work on in the future. In this final year, I also got slightly more involved in academia, taking up a research component for CS2104, reading more papers for CS5218.

During this final year, I kept imagining how it would be like if I had one UROP, or if I had taken up FYP anyway (I didn't need to because I had those credits covered using NOC). As I got more interested in research, I imagined that I could have contributed a little to academia as well. However, after hearing from friends about how hard their FYP was, I must say I was a little glad I had the option of not going through it, but a part of me was disappointed that I didn't take up the challenge. This was the year that I semi-seriously envisioned myself enrolling in a post graduate program. Before that I never thought I would want to study anymore after university. But the exposure to academia led me to give it another thought. I don't have a concrete plan yet, but I must say if given a second chance, I would most likely take up UROP, and maybe even FYP (even if it was extra credits).

It was also in this final year that I had more interactions with my lecturers and professors. One of the reason was that I was TA-ing some modules and had to meet my lecturer a few times. Another reason was that I took a module which had a much smaller class size. After this experience I felt that I should have interacted more with my lecturers over the past 5 years. They are full of experience, and they have a lot of wisdom to share. All of them were very willing to help and would be able to provide references and opportunities for you, be it for academia or industry. They were inspiring, and I think interacting with them more would have helped me uncover my interest much earlier, and giving me more motivation to work hard.

That said, I don't think I am alone in feeling that there could be more interaction between lecturers and students. Maybe it has to do with the culture of the school, or the country, but lessons feel very unidirectional, a one-way information flow from the lecturer to the students. Compared to classes from other universities, such as MIT which has video recordings of lectures online, my lessons have usually been pretty dull.

Until next time

I have no idea how I should conclude this story. For me, this story has been in the works for over a month. It was a good chance for me to look back, reminisce, and reflect on what happened during university. When I first started writing, I was worried that there would be nothing to write about. My initial skeleton was barely 50 words. But as I wrote, as I thought, the memories came back, and suddenly there was more that I could tell, and more that I wished I wrote down about when the memory was fresher. I guess most of the time I had been looking forward, and during this relaxed period I could look back. I hope to be able to do something like this every couple of years, although it probably will not be as exciting or eventful as what I had in the past 5 years, and that's okay.