New Blog Location


Hey guys,

As I mentioned a few months ago, I was looking into other blogging platforms. I chose Postach.io, which allows me to create content via Evernote, a note-taking app. Check it out at http://aimango.me. You will notice some familiar content. I decided to migrate certain blog posts that I revisit once every couple of months to update. Using Evernote will allow me to do these updates in a much easier fashion since WordPress is much more bloated in comparison.

I have disabled comments on all old posts for this current blog to focus on maintaining the new blog. Please bookmark my new blog to stay updated or contact me via email if you have any questions/comments. I will also try to tweet my new posts regularly (something I didn’t do before), so feel free to follow me on Twitter. Thanks for the continued support!

A Note for ’14 Applicants


This blog has surprisingly gained quite a bit of attention over the past few years. I use it for all of my job applications, of course, but it seems that most of my true readers are younger students looking to understand the CS and SE programs at Waterloo. Note that I’m getting to the age where my admissions experience may be irrelevant to prospective students, though luckily, my course work, job experience, and overall thoughts are still relevant.

If you are looking for an exciting career path that is in high demand, consider computer science. CS explores automating the way we do things, and creating solutions to make a troublesome task easier to perform. This has historically set fire to quite a few jobs done by hand or mechanically, but this is where the future is going. There are many branches to CS that I can explain, but that will be left as a Google search for the reader.

I’ve been stuck in a tech bubble for the past couple of years, so I always make sure I talk to some non-tech people to get their POV on the state of tech. Many people understand the significance and effects of social networking on brands and products. Many people understand smartphone technology. So interestingly enough, most people are on the same page.

Waterloo has a pretty decent CS curriculum. Unfortunately you don’t get to learn the more interesting stuff until 3rd year due to the way pre-requisites are laid out. It really isn’t until your upper years until you can explore topics like databases, artificial intelligence, concurrency, user interfaces, and operating systems. I know most of the top tech schools in the States have much more structured CS curriculum, likely with a larger variety of courses, so if you’re interested in further academia, make sure you consider schools in the States as well. Don’t look into it that much if you’re more interested in jumping into your career right after undergrad, though.

Waterloo co-op is all about learning these CS topics through both academia and during work, and trust me, you will not get anything quite as good as Waterloo. No other school will encourage you to work at 6 different companies for 4 months each, thus giving you 2 years of industry experience by the time you graduate. And it’s not even about the experience, it’s also about the connections you make at each of these workplaces that will be another benefit to you. You will not get this at UofT, McMaster, etc. Yes, companies hire from other schools, but it becomes obvious that companies prefer Waterloo because we are available year round, and because all students in co-op have required co-op credits, there is a larger set of available students, who also happen to have relevant work experience.

CS vs SE: in terms of career, you will get the EXACT SAME opportunities.
The quick run down is that you will have a lot of support as an engineering class through the SE program so the course work is manageable, and enjoyable to an extent. You will get enrolled into your required courses automatically so you don’t really have to worry about scheduling issues (that you normally experience as a CS student) until your late upper years. Depending on how active your class is, you may end up with a very lively and well-knit social group. This is difficult to attain if you’re in CS since no one is on a set schedule, unless you are extremely social. This can all be irrelevant if you naturally gravitate towards people outside of your program.

The workload is larger for SE in your first 5 semesters due to the large amount of engineering course requirements. You can still run into heavy workload in your next 3 semesters, but you have more freedom in your electives. For CS, you have freedom in electives throughout undergrad, allowing yourself to create your own workload. This is especially important to those who are interesting in doing a minor (nearly impossible for most engineering programs). Note that the experience is different from person to person depending on how much they take advantage of the benefits of either program.

Many people advise prospective students to simply choose CS if they are afraid of a heavy workload, but if you’re up for the challenge, pick SE, as you can switch to CS fairly easily.

For more on this please check out my other posts. Note that co-op jobs are not guaranteed. The resources are there for you, you just need to use them wisely and properly prepare.

PS. This post ended up being long, and I didn’t realize as I was in full screen mode. Whops..

Blog Overhaul


After some thinking, I’ve decided that I’ll be conducting an overhaul for this blog in the near future – either use of a new theme and cleaning up past posts, or starting a new one hosted elsewhere. I bought a domain name today, but haven’t decided on a host yet. In the past year or so, I’ve been using WordPress more as a blog than a website, since it makes more sense to direct people to my GitHub to see my projects, and my LinkedIn to see my work experience, but WP is a bit bloated as it’s template based and I am looking for a more minimalist style. This is what I wanted when I started originally (over 2 years ago now), but beautifully designed blogging platforms have emerged since then and I’m considering a switch.

WP has really awesome dashboards, and has great mobile support (holo style on Android is looking awesome) but

  1. The commenting system is a bit sub-par. I am considering removal of comments altogether so questions can be directed to my email or twitter instead.
  2. It’s also a bit troublesome when I want to update a past post because there’s a mix of old and new information, and again, comments make it a bit awkward too. It’s a bit easier when I can just make a brand new post, but I can end up writing repetitive content.
  3. Attaching media requires too many steps so I never end up doing it. This is really bad for people who don’t like reading walls of text. I need something more lightweight.
  4. My content is starting to become disorganized. I wish there was an easier way to bulk update tags I have on all of my posts so I can categorize them better (there’s probably support for it on WP.org but not WP.com). It also becomes awkward when I don’t even remember half the content I posted way back when, because most of my posts are pages long so I’m not willing to go back and give myself a refresher.

I’ve had blogs in the past that were completely about my experiences, rather than about giving advice or writing meaningful content, and that’s something I miss doing – I just don’t want it to get cluttered in my more informative posts. I am thinking of having separate pages that keep these types of posts separate, or some similar system with tags.

If anyone has suggestions on which blogging platform I should use, let me know. I’m planning to get things done in a couple weeks the latest, but in the meanwhile, I will give an updated insight on the current state of the CS and SE programs because I know university application deadlines are coming up in a separate post (look above).

Reflection of Fall ’13


It’s been awhile since I have been home for the holidays for more than a week. To be exact, I’m be home for 2.5 weeks. I had plans to go on a trip to Japan and South Korea, but my friend bailed on me due to lack of funds. We then planned to do a Montreal trip, but that doesn’t seem like it’s going to happen either since my mom lined me up for a bunch of appointments. My eyesight has been particularly unstable in these past few weeks (sometimes I feel like I can’t ever get Lasik because I work in front of a laptop 24/7).

I’ve spent most of my break so far catching up with high school friends (our annual Secret Santa), watching movies and dramas, and cleaning/organizing my belongings at home. You really end up with a ton of clutter after living on and off every 4 months. You can’t bring everything with you when you move far away, and you always end up bringing more when you come back. I also started doing this thing where I keep all my receipts or significant cool pamphlets I get every term in separate folders. These folders were getting really unorganized in the past couple terms due to lack of time (because when I do have the time, I’d rather be doing other things).

More specifically, I’ve accumulated a huge wardrobe. I’m not even high on the shopaholic standards. I just buy clothing when I feel like I need it, based on my current wardrobe. The problem with this is that I only have a partial wardrobe at all times (when I’m living off campus or renting a place for co-op). This makes it difficult for me to remember whether I already had a ton of white tops, for example. Now it isn’t as bad for school terms, but it really sucks for co-op terms in the States. I am way, way more limited in the partial wardrobe I can bring. I’m still trying to figure out how I’m going to fit all the clothing I want to bring for next term.

Speaking of next term – I’ll be in SF again, work term #5 at Rdio. I had a tough time deciding where to go because (if you didn’t read my last blog post) I really wanted to return to FB (or specifically Instagram). I originally decided that I would be happier to return for the Fall (of 2014) instead of the Winter as there will be potentially more returning interns (or new grads) that I already know. I also didn’t really want to be in the Peninsula again for Winter as I prefer SF, and I didn’t want to do a long commute either (FB gives housing to interns or a stipend if you want to live in SF). I almost slightly regret choosing Rdio even now, simply because I really miss my coworkers back at IG. They were extremely hard-working, fun people to be with 8 hours a day. I wasn’t able to properly appreciate and thank them due to a family member passing away around the end of my internship. Thinking back, I really appreciated the experience and the opportunity to meet awesomely talented people. Continue reading

Instagram Video V2 & Some Thoughts


It’s been another very exciting past couple weeks. We launched Instagram 4.1 last week – adding video support for Android 4.0 and video import from library. Huge wins. Video import was my main intern project, and I’m so happy that I was able to launch such a high-impact feature. Everyone please go and check it out if you have a chance.

I’ve worked at Instagram for about 15 weeks now, in the Facebook bubble. I realize that I’ve become attached to my team, attached to the product I work on. I don’t post the same kinds of photos I used to, after being influenced by amazing photographers (check out Suggested Users in Explore).

I began to seriously care about what users think of us (Those 1-star ratings hurt, just to let you know). It’s unfortunate that we can never have 100% test coverage due to the wide variety of Android devices. I’ve been in such a work-hard mode in the past few weeks that I forgot what I was doing – launching such an important and desired feature for millions of users out there. It’s a weird state to be in –  I became  critical of my code and it was hectic handling all of the bugs being reported. I spent a lot of time working on the feature (ensuring it worked on all devices, on various types of videos, etc.) that I forgot how awesome and high impact it actually was. Dilemma of a mobile developer perhaps?

A few people have asked me what it’s like working at Instagram but being under Facebook. Most of the public thinks that Facebook is making all of our decisions and will eventually make the app worse. No, it’s not like that at all. Facebook acquired Instagram, but the Instagram product still stands as its own. Our team is still present. We receive many resources and contacts through Facebook, which helps us reach a larger audience more efficiently, and scale more efficiently.

We are still fairly small, making me feel like I work at a startup, but we have the Facebook perks since we are on campus. It’s the best of both worlds. Facebook culture is slightly different from Instagram culture, and we also have our own values. One value in particular is that our community is our greatest asset. I’ve never been so exposed to how great our community is, and I have never realized how many amazing moments are shared from all across the world. People out there take some amazing photos.

Facebook is of course a little different. There are tons and tons of features in one large app, as we all know. There’s definitely a lot going on (feature-wise), although the fact that we all use Facebook to communicate at work, we are able to constantly debug each others’ code by testing great ideas.  Socially, everyone gets informed about product updates and what’s happening on campus through FB groups. I have stopped going on Reddit because all of my entertainment can be gained from various social groups. It’s extremely transparent here, and people love to have fun – a “just do it” type of culture.

Is this a recruiting blog post? No. Sorry if I’m making it sound that way. There are other interns who don’t feel the same way as me since they didn’t get placed on a suitable team. It happens. Life is full of bumpy roads and not everything can line up the way you want it to. I promise you this happens at other companies too, you just need to be verbal about it (esp if you work full time) so you don’t get stuck with something you don’t enjoy.

Anyways. I love this job and I don’t even know what I’ll do when I have to leave. Working on exciting projects with such an amazing team is something that you don’t always get to experience. It’s very surreal. Sometimes you really have to sit down and reflect before the moment fades away.