Well, its been two months into my first co-op at ATA (AKA A Thinking Ape) in Vancouver. I think it is safe to say the past two months has probably been the most exciting two months of my life so far. Was it because I’m living by myself in a whole new city, or is it because I’m lucky enough to get to do what I dreamed of doing ever since I figured out what I want to do? I can go on and on, the truth is probably a combination of all of them. I feel that I remain to fail to have enough appreciation for how lucky I am to be in the position that I’m in right now. Who’d imagine the 18-year-old me is living completely independently in the beautiful city of Vancouver and having a high paying job (I mean it) and the freedom that I have. I don’t think anyone could’ve imagined what my life is right now couple years ago.

Okay so this post is going to be pretty long (because I’m writing this on an airplane and I have nothing better to do 😅) so I’m going to split it up into three sections:

  • How I ended up working at A Thinking Ape
  • My thoughts and feelings about working as a software development engineer in general as well as specifically at A Thinking Ape
  • My personal internal reflections of how my life has came to be and I’ll go through what my typical day is like.
  • What’s next? Expectations, goals, and challenges.

My Journey to A Thinking Ape

Before I get to anything, I’d like to just appreciate the mere fact that I’m working there and how grateful I am for this awesome opportunity. Okay here we go. I’m going to begin from the very very beginning from how I even got to know the job to me right now.

If I only learned two things from my journey here: First, life is full of unexpected events, and sometimes it is those unforeseen opportunities that leads you to great things. Second, friends are what makes you, you. Having caring and dependable friends really can elevate you and accelerate you to things that others can’t simply reach. Believe me, I’m not trying to be deep or anything, this is truly what I think and completely formulated from personal experience.

Had it not because I made some great friend back in high school, I definitely would not be where I am today. Specifically for this job, I have to thank someone that have always been a role model to me – Callum. Ever since grade 10 when I first got to know Callum as the president of computer science club I’ve never stopped looking up to him. There was always this internal voice in my head saying: “Mark, if you work hard, one day you can also be just as good as Callum!” And this voice have sure carried me a long way to where I am.My first step was to promise myself I will be the president of computer science club when Callum graduates, and I will be the best in computer science in my high school. I started from being a casual CS club member in grade 9,  to an active member in grade 10, to asenior executive in grade 11, and finally to being the president in grade 12. I never could’ve dreamed in grade 9 that I would be the one up there organizing the club. Okay, so during 12 when it was university application season I applied for the most prestigious software engineering program (@UW) in Canada (partially because Callum is studying there and I really want to follow his footsteps). With hard work and definitely some luck I was accepted to the program.

Fast forward to beginning of second semester when it was interviewing season. I honestly never had the thought of applying to ATA because I thought if only Callum got the offer from them while no one else that I knew did, I have very low chances. So I never really bothered even having the thought of applying. However, it was until one day, Callum sent me a message on FB asking me if I want his referral to ATA. Obviously, there was no way I was going to deny that, but I thought I’ll just use this as an opportunity to practice my interviewing skills (because I had even low confidence for if the recruiter will even reach out to me). However, everything just got real when one of the recruiters at ATA asked me for my availability for a video interview. It was at that moment I realized things just got serious and this is a golden chance for me to thrive. However I only had 2 weeks from getting the email to the actual interview so I knew I had to cram for the interview. After 2 weeks of leeeetcoding 😂 averaging 4 questions a day (while being a full time engineering student 😲). Thankfully, the interview went well and I guess I was lucky enough that they asked me some graph theory question that I was actually familiar with. So being the engineering student that I am, obviously the first thing to do after an interview is jump straight to the library and study for school right 😆. As I was leaving Dana Porter Library at about 6:32pm on Friday, February 1st. I see there is an incoming call from British Columbia… First thought I was like uhmmm no way it is ATA right like legit I just had their interview 3 hours ago. Without much hesitation, as I was walking down the stairs I picked it up and I can never forget this moment. The conversation went something like: “Hello, is this Mark?” “Yes, this is Mark” “Hi, I’m Megan from ATA and I’d like to congratulate you and offer you the internship position for the summer of 2019”. I was completely shook and speechless for a solid 10 seconds. I didn’t know what to respond, I didn’t know what to do, and I didn’t what this meant for me right now and my future. To be honestly I didn’t remember much else from the conversation other than the compensation and the starting and ending date. As the recruiter was talking non-stop and giving me information, my brain was in a read-only mode. It completely prevented write-access because the computation that it is performing is taking too much resources. At that moment, I feel an uncontrollable urge of joy flowing out of my emotions. I feel my whole body was activated, and I couldn’t stop shaking and smiling and just everything at once. Right after calling the recruiter I called my mom to let her know of this fantastic news. Then of course, I let Callum know of this, and really thank him for giving me this such great opportunity. After me letting only my closest friends know of this (because I really didn’t want to impose higher pressure on my classmates since they are all still very early in the process of securing a job offer), I sat down and just tried to reflect of everything that happened in the past 4ish hours. I realized I’ve been following Callum footsteps all along… From being the president of computer science club, to the prestigious university program, and now to the first internship. I can’t imagine me being I am today without him always being a role model of mine. So much have happened in those four hours that I really have trouble processing it. But the reality is, I’ve got one of the best internships that anyone can get and more so for a first-year undergrad. I cannot express just how grateful I am about everything… (I will talk deeper about how I feel in a later section).

Working at as a Software Engineering Intern @ A Thinking Ape

Writing the actual code that completes the logic of the assigned tasks is really just a small part of a software engineer do. This being my first actual software engineering job I really didn’t know what to expect. Although I started programming since grade 7, I’ve never really worked in a large team with actual clients before. Oh boy is it different from doing personal projects. It was only until I started working at ATA, did I finally realize how naïve I was and how shallow of an understanding of the difference between knowing how to program and knowing how to engineer software. Just to list some new things that I was exposed to: Reading codebase (THOUSANDS OF LINES!!); difference between dev, staging, and prod environments; code reviews; comprehensive usage of git; communication with user experience team; etc. etc… this list can really go on and on. I was learning so much things that really makes me a software engineering professional than just some programming kid wiz (not that I was super exceptional).

Working as a software engineer was always my dream, I dream about it everyday when I was back at school and I don’t have a slight sense of doubt for my decision. Everything is exactly what I imagined it to be (p.s. its actually better). At ATA each developer gets a fancy standing desk and a super super expensive but very ergonomic chair. What I love the most about ATA is how great its working environment is. Very open office with colourful decorations. Its not just the physical environment that makes ATA so great, its more so due to the nice people there. I always felt very easy and welcomed to start a conversation with almost anyone. All in all, I guess the takeaway is ATA is fantastic place to work at (probably the best Canadian company) if you are someone that loves creating/designing games.

In terms of the downsides of being a software engineer is really just how much I have to sit in front of a monitor each day. It has only been 2 months, and I can notice there is a worsening of my eyesight. In comparison, the past 8 months at school my eyesight did not change at all. I felt the need to start both regulating my screen time after work and develop good habits for resting my eyes.

Reflections

Living in a city where I’m at least 3400 kilometers away from my nearest family members or close friends really forced myself to have a lot of time to myself reflect on things that I otherwise would not. Its often when I’m walking along the beach as the sun sets, I grasp and ponders just how drastic my life have changed for the past 8 years. From mediocre random kid going to elementary school in China to a software engineering student doing his internship alone in Vancouver. I honestly can’t even begin to imagine what I would be like had I remained in China. I personally am not the type of people that learns a lot from school, I learn most by pursuing my own interest and applying them. The Chinese education system is really anything but that. It is rigorous in terms of the amount of material and difficulty, but it really disables people to have time on their own to explore their own interests. There are so many possibilities as to where I could be today, yet I am here. I really don’t think there are many other outcomes that can be much much better.

Although being in Vancouver satisfies many materialistic goals, like getting a great job,  enjoying the beautiful weather, fantastic food, and comfortable living conditions. What I lack the most however, is the sense of personal connection and just having the sense of being surrounded by friends. Don’t get me wrong, I did make quite a bit of friends in Vancouver. However, due to age gap and differential in interests I miss my friends at home a lot. While its all good that I get to enjoy the pretty views, but it would be just so much better had there be someone enjoying it with me. My time here really made me realize the importance of friendship. It definitely was a wake-up call for me to realize that I was taking the number of friends I have for granted.

During the Canada Day long weekend I flew back home to visit my grandparents and meet some friends. Although I only really had 50 hours back home, it was very enjoyable and furthermore made me miss my family and friends. In the short time that I was back, three groups of friends contacted me to hangout. It was such a pleasant experience, although I didn’t get to meet one group of them because I had my phone on silent… (MY BAD!!! I STILL FEEL SO BAD ABOUT IT!) Anyways, being the slightly passive person that I am. I really appreciated when my friends reached out to me first. However, I do realize it is important for me to reach out to them as well. (Fun fact, I wrote this entire post while I’m on the airplane).

I’m really learning a lot in the past few months about myself. I always thought it’d be easy to make friends regardless of where I am. However, reality demonstrates otherwise. I figured that I am the type of person where I hope others to make a move first, then I’ll pour myself in. However, it is really difficult to have this mindset when no one cares to say hi to me first. I’m trying my best to take more social initiatives, since I know I’m at least adequate at maintaining friendships once its established. Its always the beginning that’s challenging for me.

Okay we’re gonna climb out of the deep zone and on to a lighter topic. How does my day look like? Here we go:

  1. 8:30AM -> 9:00AM wake up
  2. 9:00AM -> 9:30AM prepare lunch
  3. 9:45AM -> 10:00AM breakfast at work
  4. 10:00AM -> 12:30AM workkkkkkkk
  5. 12:30AM -> 1:30PM eat lunch
  6. 1:30PM - > 6:00PM work work work
  7. 6:30PM -> 8:15PM cook + eat da dinner
  8. 8:15PM -> 8:45PM practice piano pt.1
  9. 8:45PM -> 9:25PM walk along beach
  10. 9:25PM -> 9:40PM piano pt. 2
  11. 9:40PM -> 11:00PM STUDY!!!/READ!!!

Whats Next? Master plan!?!?

Well OBVIOUSLY FAANG OR BUST!!! Hahah just kidding, I'm trying my best not to hype and/or set self up for disappointment. I think I've set the standard pretty high for my future coops given that my first coop is at ATA. Looking at my options, I don't think there is another Canadian company that is significantly better than ATA (I'd love to be proven wrong 😃). So I guess I have to try hard to US companies.

Okay so what's my master plan? Well ideally I'd like to coop multiple different cities and see how I feel about it. Since I don't think I'll have many more chances later on in life to just switch a job every 4 months around the globe. Okay so here are the three cities that are on my bucket list: NYC, SF, and Seattle. Okay given that I have five more coops to go, I think if I really try I should be able to experience coop life in all three of these cities.

How to get there? While these are all good dreams, actually getting there is no easy task. Recently I've started to follow the quote: "one leetcode a day, keep the unemployment away." 😅😅😅 I'll let you know how I feel again before school starts just to track my progress.