- attending social events with friends,
- reading up and writing about the latest and greatest technology,
- playing, composing, and listening to music,
- traveling to various parts of the world,
- taking natural, scenic, and human photography,
- watching romantic comedy shows & movies,
- figure skating, and
- munching on all kinds of food.
I can create and update posts through Evernote, a note-taking app that I use daily. Comments are managed through DIsqus, an awesome commenting platform that I enjoy using as well. It doesn’t have as many widgets and click and drag features like Wordpress (my previous blogging platform), but it has a simpler and cleaner look and feel.
Me, Myself, and I (The Details)
It's hard to describe myself. I would say I'm a fairly reserved and quiet person upon first impression. Around closer friends, I am quite open-minded, optimistic, and talkative (sometimes almost too much.. sorry - I like to get excited about stuff). I'm proud of the person I've become, but continuously want to improve (technically and socially).
So how do I even begin? Well I'm just a typical girl who grew up during the time that technology was in constant motion. During high school, I learned some programming and realized the opportunities Computer Science could bring me. I vaguely understood that taking the CS route meant I could contribute to the awesome tech bubble. At the time though, I had no idea what the industry was like. I didn't understand what open source was. I didn't exactly have personal projects yet. I was really only exposed to a scratch of the field of computer science through basic problem solving and programming contests. I don't even think I was into reading tech blogs until after my first co-op term.
I applied to both CS and SE at Waterloo during 12th grade. I don't think I truly understood the difference between CS and SE (like many prospective students reading my blog) until after first year. Prior to university, I just knew it was more challenging and they make you take physics and chemistry (even though it's pretty irrelevant to most software engineering jobs). So I decided to take my chances, SoftEng it was. I will be honest here, I've had a lot of regrets about the program in the past few years during some very stressful times, but I've reached a point where benefits rule out the disadvantages. I love my program and what it's given me.
So back up a bit, I'll talk about what I was like in high school. I started out at an IB school, but chose to transfer back to my area's school (the school I was supposed to go to) because I didn't enjoy the environment I was in (mostly the lack of essence of the people who were in the program). So my region's school has no AP or IB program. Nadda. It wasn't an amazingly high ranked school, either. But guess what? There were some really amazing teachers at that school (FHCI for those interested). Perhaps I was a little lucky but I had a great education there, despite the lack of any enhanced programs. I ended up getting pretty high marks all throughout high school, and I had no problem getting into the programs I applied to. This includes the Accounting and Financial Management program (Public Accounting) at Waterloo. I realized, however, I wouldn't be as happy with an Accounting degree as a CS-related degree, so I chose SoftEng.
Anyways, let's fast forward to first year university. I got thrown into this 130-person class of intelligent people who love tech, who I interact with 5 days a week. This is possibly the greatest benefit to the cohort engineering system - you can make great connections and really help each other out academically and throughout your careers. Jumping to my second term - where I had to apply for my first co-op job. Like I said, I had no idea what the industry was like and what a Software Engineering even normally does, or what a QA person does, or what a project or program manager does. I just applied to whatever job sounded decent. And I ended up getting a few offers for QA roles. This excited me even though I knew nothing about what the job really entailed.
QA stands for quality assurance. It means testing and validation and reporting issues. Now there's nothing wrong with QA, it is an important part of shipping any product out there (both physical and software). But this responsibilities of job depends on whether there is automation. Automation is basically a way to make testing easier, by using scripts to do the clicking for you. Yeah, let's just say my company at the time didn't have an automation system at all, so I was doing functional (manual) testing the whole time. I learned absolutely nothing technical, but I DID get to learn a lot about the industry, what agile development is like, what a small startup is like, what source control is, and what it's like for a company to get acquired. Yup, I was working under Five Mobile, Inc., a mobile consulting company, and they were bought out by Zynga in Summer 2011. It was a good acquirement in the sense that no one got fired and the team dynamics were still the same.
Outside of work, I tried to build up as much experience I could that was related to software engineering. Knowing that a good chunk of my classmates were already working as developers meant that I wouldn't have as much experience as them for my next co-op term. So yes, I went to local hackathons, I took some online courses on web development and Java, etc. And it really was a huge leg up.
So applying for my second co-op term was interesting. I aimed for a Software Engineering job, of course. It was definitely tough and I still was at a disadvantage compared to some of my classmates. But I made it for a mature startup called Lookout Mobile Security in San Francisco. I worked on Android (it was actually really my first time working on Android) and was immersed into a company with a product focus. This was so much different from my previous company (that entailed making apps for customers like Rogers, Score, and Cineplex). This time, I could make a huge impact on our product. I worked on a complete redesign of our Android app (article here). The really cool thing was that I was able to work very closely with designers and PMs. It was a LOT of fun and I'd do it again and again if I had to. Obviously it wasn't all purely positive - there was a huge change in company structure during the time I was there, so I didn't exactly have productive work to do all the time. But no, it was great. I also for the first time actually got into the use of smartphones and apps. Why was this a big deal? Well there are a lot of social media apps that Bay Area people love to use. Foursquare, Path, Instagram, you name it. It's a whole different world once you get into it.
After this, my third co-op term was at a very similarly sized company called FreshBooks. Another product-focused company, where people bring their dogs to work. I legit never knew how to interact with dogs until working at FreshBooks. I also developed my ping-pong skills. So work-wise, I was on our API team, most of my time spent on developing resources for the mobile developers for our iPhone product. It was different working on a more server-end product, but through the experience I was able to learn some PHP and Python. I didn't work on anything with huge impact, but I worked on a very dynamic team. I think I'd work at FreshBooks again if I choose to stay in Ontario after graduation.
So now it's time to talk about my current co-op term, my fourth. I'm working at Facebook now. A huge leap up from small-sized companies, for sure. Remember how I said I started getting into smartphones and apps? Yeah. I was super excited for this job simply because I would be able to make a huge impact on apps that everyone in the world uses every day, apps that I myself use every day. Full time employees usually attend a program called Bootcamp to explore and choose a team, but interns are assigned to teams. A bigger company really does make a difference. There are a lot more internal tools and resources available (which is a great thing), and of course, perks. Free food and all that jazz, I won't brag any further than that.
I ended up on the Instagram team, working on Android (for those who do not know, Instagram was acquired by Facebook last year). It was a slightly different experience being under the Instagram team (rather than any other Facebook team) since there is a much lower volume of people working on the same code base. Team-wise, it felt like I was working at a startup, except I am given stellar internal tools and perks. I learned a lot about Android development. Things happen very quickly at Facebook, which is pretty awesome because you feel like you're more productive (and let me tell you, I love feeling productive). The really cool thing about working at a big company in the Bay Area during the summer is that a ton of interns from other schools are around, so there are many, many events that kept me busy.
For my Winter 2014 work term, I decided to try another smaller company. Rdio - you may have heard of it. It’s a music streaming service, with Spotify as its main competitor. I was able to contribute to both the Android and iOS products. I worked with people who have been there for 3+ years. I was able to work in one of the best cities again (San Francisco) and have an amazing time as a bunch of my friends were around to hang out with outside of work. My experience is detailed here for those interested. I’m planning to return to Instagram/Facebook for my last co-op term.
So that was a very long blurb (my bad). What I want to say out of all of this is that working at these various companies has shaped the person who I've become. I've gained a huge understanding of the tech industry and what it's like to have a career in it. I have yet to finish my undergrad, and I already have a pretty good idea of what I'll be doing upon graduation. This is a good thing; more schools need to integrate this sort of system. I guess the thing that Waterloo needs to work on is its social implications. Many people think there is no social life to be had at Waterloo. Because a good chunk of Waterloo students are on co-op in other cities, it is a little more difficult for clubs to host well-planned events. So, there is a social life, but you just need to actively find it and be assertive.
I'd also like to state that I'm not a genius and don't study all day. I maintain a low 80s average in university, and I do what it takes to finish my assignments on time and learn what I need to learn, but I'm not nearly as knowledgeable as the people who I'm surrounded with daily. If you're interested in the tech industry and you want to influence it, you just need general interest and passion, and decent knowledge (varies depending on whether you want to be an engineer, a designer, a manager, etc). Keep on learning, don't get discouraged, and get back up when you've fallen down. Find the balance between school and your future career.
Thanks for reading, and good luck!