With a lot of my peers graduating from the University of Toronto Computer Science program this year I’d like to share some advice I received recently from one of my professors, who’s been in the industry for the last 20 years. This is a summary of our discussion along with some embellishment by myself.

This is Our Market

The current pool of talented computer scientists for companies to pick from is small. This means we have a lot of power when it comes to negotiating and accepting offers, more importantly it means you don’t have to immediately take the first one you get. Do your research because there are lots of opportunities in our field right now.

What should my salary be?

Don’t worry about money right now, find the types of engagements that will define the type of software developer you will become.

Nobody wants to be stuck in a cubicle their whole career building servlets, but somehow people end up there. You want to work on a project that makes a difference. You have to be brave to make these choices. Choose to work on something that will define your career, money will most certainly follow. I’m not saying to work for peanuts, but don’t make the salary your top criteria when choosing a position.

Finding Opportunities

You have to put yourself out there to find opportunities and then jump on them when they appear. You have to create the conditions for opportunities to find you and be able to recognize them when they do. Make stuff, code things, help out with open source projects, blog, comment, increase your web presence, and get your name out there. When those opportunities inevitably show themselves, you need to be bold enough to tackle them, what’s the worst than can happen?


The term networking gets thrown around a lot but the goal of networking is very simple; You need to find a way to bypass official processes used to recruit employees by being introduced through someone. You don’t have to know the CEO, or the hiring manager directly, you just need a single person to vouch for you. Don’t be discouraged, even a friend of a friend can vouch for you if you take him out for coffee and show him some of your work, and that you are capable.

This is important for both big and small companies. The larger a company gets, the more inefficient their HR department becomes. They are given guidelines and are forced to use arbitrary cutoffs for applications. Often, your application will go through automated screening before a human even knows it exists. Small companies also suffer from a lack of resources to look for new talent. They can’t spend their days screening and sorting through resumes, so they depend on recommendations from others. In summary, you want to minimize the distance between you and the decision makers as much as possible.

Ask Questions

Ask questions, no matter how stupid you might think they are. A great way to network is to ask to take some industry professionals out for coffee and just ask away. People love talking about their accomplishments and career paths and you will learn a lot, make new contacts, and find opportunities.

Be Yourself

Most importantly, be yourself. There is a difference between acting professionally, and creating a new persona. If you have to put on an act for a company to accept you, trust me, you don’t want to work there anyways. You want to make sure you will be happy there and fit in with the company culture, don’t give a false impression of yourself.

Remember, this is our market. Take your time and find the best place for you to grow your career, a place you will be happy and make an impact, money will follow.