The Ideal Work Term Progression for Computer Engineers, part V

With their Computer Engineering degrees now complete, my classmates (and I, in a sense) are now working at – or searching for – their first permanent full-time jobs. Looking back on the journey that got us where we are, the one thing that stands out between my classmates is the experience they got while on their co-op terms, and the quality of their resulting full-time jobs. I thought I’d take this opportunity to share what I’ve learned about what co-op jobs you should be looking for at each stage in the Waterloo co-op progression. This article is the fifth in a series of 6 (parts I, II, III, IV, V, VI) on what you should be doing for each co-op work term with the University of Waterloo in order to get jobs with the best companies in your last few co-op terms; this part covers your fifth work term.

This series is written for computer engineering students in the University of Waterloo’s cooperative education (co-op) program, which consists of a series of 6 work terms in a repeating 4 months school/4 months work pattern for four years of the student’s five year degree. Most of the information presented here is not unique to UW students, however; students in a more traditional university program can still apply these tips by ignoring the term specifications and applying them in order to their work opportunities instead. Longer (8-, 12-, or 16-month) work terms also fit into this model; aim to be done the same things as a 4-month UW co-op student would be at that level of work experience (for example, a 16-month intern should try to complete items up to the 4th work term level by the end of their internship).

Your Fifth Work Term – Making a Name for Yourself

Apply for your dream job.

If you’ve been following the tips so far, you should be in striking range of your dream job – apply for it! If the job is offered through the university’s Jobmine system, it’s likely that your employer is familiar with the co-op process - so be sure to participate in all of their activities. Employer information sessions, group interviews, interview prep sessions, etc. – all are important to attend, even if they aren’t taking attendance (your competition is there, and employers often share tips about what it takes to impress them). For the same reasons, consider going to the employer information sessions for other employers of similar calibre; though each person has their own opinions on what makes a good resume and what to ask during an interview, most of the top-tier employers agree on a common subset of these items, and their tips can ensure you nail every one of them. Remember too that your goal is still to stand out, so be sure to introduce yourself to the recruiter, spend time on a good cover letter and tailored resume, and include a link to your portfolio – the top positions easily see more than 200 applicants a term, and while your experience to this point will get you on to a much shorter list of candidates they’d actually consider, you want to use every technique at your disposal to ensure you are in their interview set. If instead you’ve decided that your dream job is with a company that doesn’t do co-op hiring through Jobmine, you’ll face a lot less competition but a lot more work. First off, start early - landing an out-of-system job can take 3 months or more to set up, so make sure to start working at it midway through your previous work term. Second, make it easy on the company you’re looking to work for – make sure your cover letter clearly explains why you want to work for them, when you are available to work, and how the co-op process works (if you get a response from a company you contacted, CECS can help out with the specifics). Finally, be prepared to do everything yourself; you’ll need to arrange your visa if you are working out of country, you’ll have to find housing, and you’ll have to coordinate with CECS to ensure your work term gets counted for credit. If it’s truly a dream job, though, the rewards should be worth it – and at the very least, you’ll get experience that no other student on campus has! Regardless of where you’re looking for a dream job, the fifth term is the term to do it – in the best cases, you’ll have two terms to spend with the company (or one term with each of two companies); in the worst case, you’ll likely to still end up with interviews for a few of the top positions – which is great practice for your sixth work term interviews.

Be passionate.

The one thing that struck me about top-tier job interviews is how little they focused on the routine stuff (the “will this person play nicely with the other employees” type questions); in some fifth work term interviews, no questions of this type are asked. Rather, they tend to be focused on technical details, and specifically, determining whether a person is passionate about technical details. A lot of this is exposed through tricky technical questions – for those in the .NET world, it’s questions like those in this list by Scott Hanselman – but some also focus on what I like to equate with passion. Looking back, I’d say that most of the questions I got while interviewing for my fifth work term were an attempt to figure out how passionate I was about technical things – though in most cases, I’d wager that the interviewer themselves didn’t realize that it was passion they were specifically looking for. I only picked up on it through an interview with a technical architect on the Microsoft Office team, who repeatedly drilled me for more and more detail on my previous work term, where I had done a lot of work in WPF. At the time, I couldn’t figure out why he was so interested – he admitted having no background in WPF – but he still rooted around in the details, had me justify why certain decisions were made, what was wrong with our project after we had finished, what we would do differently given different constraints (more people, more time, etc.), and generally poked around for technical details that had no apparent utility to him. It was only afterwards that I figured out what it was he was doing – he was finding out whether I was interested in the details, whether I was motivated enough to figure out why things the way they were before making a decision that depended on them, and whether I was cared enough to see the flaws in my project – or broadly, whether I was passionate about the software I was building. Whether or not I was passionate about the things he or his company did was secondary; his primary goal was to find out if I had the capacity to be just as passionate about his company’s products. To a competent engineer, the technical aspects will come naturally out of that passion; if you encounter a problem where you need to know some arcane algorithm, then your passion to do your job well will result in you learning what you need to know to make a great product. After recognizing this, I began seeing this search happening in other interviews, often not so explicitly but with the same (implicit) end goal in mind – if hired, will I care about what it is the employer does? So be passionate about the things that you do, and make sure it shows in the interview. Don’t just memorize the answers to common interview questions – know how they work and why your answer is correct. Be able to provide more detail on any question you answer, and admit that you don’t know when you don’t have sufficient knowledge to give a defensible answer. If passion isn’t one quality you possess about the work you are doing, then perhaps it’s time for a career change – the best employers will certainly be able to pick up on this, so don’t count on being able to land a great job without passion for what you do.

Be an expert.

By the time you’ve made it to your fifth work term, you will have accumulated more than a year’s worth of work experience – and three years of university – which is plenty of training to understand just about any practical technical topic out in industry. However, it’s highly likely that your technical knowledge is spread out over a number of different areas, and it’s certainly the case for your academic experience, which may include such varied topics as physics, calculus, software, hardware, communications, controls – and the list goes on. While a broad base of experience is always a good thing to have, detailed knowledge in a particular area (or areas) is more and more important as you progress through the co-op process. The simple fact is that businesses hire employees to solve their problems, whatever those problems happen to be (from improving efficiency of the company itself, to figuring out what their customers want, to building things that solve their customers problems). People who have detailed knowledge in solving a particular set of problems tend to come up with better solutions than those who don’t, and do so faster; both of these qualities are beneficial to a business. Becoming one of those people with detailed knowledge in an area can make you a very valuable asset to the companies you work for, so find an area you are interested in or working on, and go deep. Learn everything you can about it, by reading books and blogs, following industry developments in that area, and practicing your hand at it. Often, some of these areas will develop naturally for you as you are assigned work in them, but you still want to make and effort and take steps to improve your knowledge. Secondly, you want to volunteer your assistance in your expert areas to your co-workers; if your company can’t use your skill, then it effectively the same as you not having it. You want to be the go-to person for people looking for details on topic X; it doesn’t matter how specific or broad topic X is, just that you are the go-to person for it. Not only does it make you somewhat difficult to replace (for your current employer), but it’s one more defining characteristic that potential employers can use when hiring. And the skill of being an expert in an area is often the first skill you will have that your interviewer doesn’t – they’ll have more overall experience, sure, but might not know your area of expertise to the same level you do, making you an attractive hire. In my opinion, being an expert in an area is one of the most important characteristics of an employee; not only am I free from the responsibility of needing to know about everything and can instead rely on the experts nearby, but I am also secure in the knowledge that whatever it is that we’re building is the best that it can be, since each aspect was checked by an expert.


For me, networking is all about outsourcing, in the quite literal sense of the ability to outsource some of your tasks to a network of friends, family, colleagues, coworkers, etc. instead of completing them entirely on your own. Granted, in order to maintain your network, you are often required to contribute to the tasks of others, but the primary benefit your network has for you is its ability to outsource. My network is most efficient at two sorts of outsourced tasks: knowledge gathering or transfer and distributed job hunting. The network you build might have other capabilities, but those two are the ones I’ve found most useful. The first, knowledge gathering, is all about asking your network for help on a specific problem you are encountering that you cannot find the solution to. When your network is made up of experts (see above), this is an incredibly effective technique to use when you get stuck. For example, on my last work term my demo machine started freezing when WPF applications were launched. After a couple hours of fruitless investigation, I asked my network, and was quickly directed to one of the team testers, who found the problem in minutes. As it turned out, it involved an early version of Windows 7, an early version of the multi-touch API, and buggy touch panel drivers - a combination I never would have suspected, much less identified as fast as he did (nor would I have been able to come up with a fix). In a similar vein, those who had trouble finding jobs (or wanted a particular good job) often got great results by using their networks to get them into a good position to do so, either through references or through direct introductions by someone who already works at the company. Even now, when jobs are scarce, my network is still working to identify job opportunities for those still without; often, those opportunities haven’t made it to the open market. Building a network that is capable of taking some of your most difficult tasks and producing results is incredibly valuable – there is a lot of truth to the notion that “it’s not what you know, it’s who you know”. I’m not going to go into any strategies for actually going out and building a network – there are plenty of resources on the topic already - but it’s something you should be especially focused on during your last couple terms. Your network could very well mean the difference between an good job and a great one, so cultivate those relationships and use them in your times of need.