Landing Your First Full-Time Role After UofA CS¶
You spent years studying, did a few internships (hopefully), ground through CMPUT 204 and 301, and now you need to convert all of that into an actual job. This guide is the honest, direct version of that process — not the sanitized career centre version.
When to Start Looking¶
Start in September or October of your final year if you're graduating in May. That sounds absurdly early, but here's how it actually works: large companies run structured new grad hiring cycles that close months before the role starts. Amazon, Microsoft, Shopify, and most mid-to-large tech companies post new grad roles in late summer and fill them by November or December. If you start looking in March for a May graduation, you've already missed the best opportunities.
Smaller companies and startups are more flexible — they hire when they have a need, so you'll find those roles year-round. But the most desirable, well-structured new grad positions have defined hiring windows. Don't miss them.
A reasonable timeline for a May graduation: - September: Update your resume and LinkedIn. Start applying to large companies. - October–November: Peak application and interview season. Most of your bandwidth goes here. - December–January: Collect offers, negotiate, make a decision. - February–April: You should ideally have something signed before this point. Catch-up window for smaller companies.
If you're doing a co-op or internship in your final year, that employer may extend a return offer — factor that into your timeline.
New Grad vs Experienced Hiring¶
This matters more than most students realize. When you apply to a new grad role, you're competing against other new grads — people roughly like you. You're not competing with engineers who have five years of production experience. Companies have completely different expectations for new grads: they know you're inexperienced, they know you've never owned a production system, and they're betting on your potential and your ability to learn fast.
This is actually good news. It means you don't need to oversell yourself as something you're not. Be honest about what you know. The companies that hire new grads well will have onboarding programs, mentorship structures, and some patience for ramp-up time. Companies that expect new grads to be immediately productive like senior engineers are usually poorly run — and that's a red flag you can use to screen them out.
What Companies Actually Look For in New Grads¶
In rough order of importance:
- Technical fundamentals — can you reason about algorithms, data structures, and systems? This is what the leetcode-style interview tests for, imperfect as it is.
- Relevant experience — internships, co-ops, and meaningful personal or open source projects. Not mandatory, but they separate candidates in competitive rounds.
- Communication — can you explain what you built, why you made the choices you made, and what you'd do differently? Interviewers are not just assessing if you can code; they're assessing if you can function on a team.
- Learning ability — demonstrated through your trajectory. Did your skills clearly develop over your degree? Do you pick things up quickly in technical discussions?
- Cultural fit — vague and abused term, but real. Does your work style and attitude match how the team operates?
A UofA CS degree with a solid GPA, one or two internships, and one or two genuine side projects (not hello-world demos, actual things that do something) puts you in a strong position for most Edmonton and Canadian tech company roles.
Salary Expectations (2024–2025)¶
Be informed going in. These are realistic ranges for new grad software engineer roles:
| Market | Base Salary (CAD unless noted) |
|---|---|
| Edmonton tech companies | $65,000 – $90,000 |
| Alberta government | $55,000 – $70,000 |
| Toronto tech companies | $85,000 – $120,000 |
| Vancouver tech companies | $90,000 – $130,000 |
| US companies (remote/relocated, USD) | $130,000 – $200,000+ |
A few honest notes: - FAANG (Google, Meta, Amazon, Apple, Netflix, Microsoft) new grad offers in the US tend toward the upper end of that USD range or above when you include total compensation (base + stock + bonus). - Edmonton salaries sound lower, but your dollar actually goes a lot further. Housing in Edmonton is roughly one-third the cost of Vancouver. That $80K Edmonton salary is not equivalent to $80K in Vancouver. - Government roles are stable with good benefits and pension — not exciting, but a legitimate path, especially if you value work-life balance from day one.
Total Compensation vs Base Salary¶
At startups and big tech companies, base salary is only part of the picture. Learn these terms before you get an offer:
- RSUs (Restricted Stock Units): shares of company stock that vest over time (typically 4 years with a 1-year cliff). At public companies, these have real cash value. At private companies, they're illiquid until an acquisition or IPO.
- Stock options: the right to buy shares at a fixed price. More common at startups. Potentially very valuable, potentially worthless — depends entirely on the company's outcome.
- Signing bonus: one-time payment on joining. Often partially or fully clawback-able if you leave within a year. Read the fine print.
- Benefits: health, dental, vision, RRSP matching. These have real dollar value — calculate them.
For US big tech specifically, when people say "FAANG pays $200K," they usually mean total compensation — base + annual RSU vesting + bonus. The base might be $130K. Use Levels.fyi to understand the breakdown for specific companies and levels.
Negotiation Basics¶
Always negotiate. The worst they can say is no, and declining a negotiation attempt virtually never results in an offer being rescinded. Most companies make offers with the expectation that there will be some back-and-forth.
Core principles:¶
Don't give the first number. If they ask "what are your salary expectations?" early in the process, deflect: "I'm still learning about the role and the full compensation package. What's the range for this position?" Most legitimate companies will tell you. This keeps you from anchoring too low.
Do your research. Use Glassdoor, LinkedIn Salary, Levels.fyi (US-focused but useful for calibration), and asking people you know in the industry. Know what the role pays before you get an offer.
Use competing offers as leverage. If you have an offer from Company A, you can legitimately tell Company B: "I have an offer from another company for X. I'm very interested in this role — is there flexibility to get to that range?" This is standard practice, not aggressive or rude.
Negotiate over email after the verbal offer. When you get the verbal offer, it's fine to say you're excited and ask for the offer in writing. Then, respond to the written offer via email with your counter. Email gives you time to think, and creates a record. Something like: "Thank you for the offer — I'm genuinely excited about this role. Based on my research and the other opportunities I'm considering, I was hoping we could get to [X]. Is there flexibility there?"
Know what's negotiable. Base salary, signing bonus, and start date are almost always negotiable. RSU grant size sometimes is. Benefits and vacation policy usually aren't (they're standardized). At smaller companies, more things are flexible.
What to Look for in a First Job¶
Not all first jobs are equal. The goal isn't just employment — it's a first job that sets you up well for the next five years. Consider:
Mentorship structure: Will you have a senior engineer assigned to you? Does the team do regular 1:1s? Can you point to people at the company whose career trajectory you'd want to emulate? A bad first job with no mentorship can leave you stagnant. A good one can compress years of learning.
Code review culture: Thorough, educational code reviews are one of the most effective ways to grow technically. Ask in interviews: "What does your PR review process look like?" If they say "we just approve and merge," that tells you something.
Tech stack: Will you be learning things that make you employable in three years? Maintaining a legacy system in a dying language might pay the bills but won't help you grow. That said, boring tech at a company that does code reviews and mentorship well is better than flashy tech at a company with no process.
Company trajectory: Is this company growing, flat, or declining? Talk to employees if you can. Look at their funding, revenue trajectory (if public), and Glassdoor reviews. Joining a company in decline means fewer opportunities for advancement and elevated layoff risk.
Work-life balance: Startups often have longer hours and more chaos; larger companies often have more structure. Neither is universally better — it depends on what you want from your first role. Ask directly: "What does a typical week look like? Do you find yourself working evenings or weekends regularly?"
Remote/hybrid/onsite: Decide what you actually want here. Remote work offers flexibility and opens up your employer options significantly (you can work for a Toronto or US company from Edmonton). Onsite has mentorship and social benefits, especially early in your career when osmotic learning from being around senior engineers is valuable.
Edmonton vs Toronto vs Vancouver vs US Remote: The Honest Comparison¶
Edmonton Lower salaries in absolute terms, but the cost of living differential is significant. A one-bedroom apartment in a nice area runs \(1,200–\)1,600/month versus $2,500+ in Vancouver. You can own a house in Edmonton. The tech scene is smaller but growing — Jobber, TELUS, Benevity, ATB, and others are good employers. Less prestige than the major metros, fewer networking opportunities, but a genuinely good quality of life if you value that.
Toronto The largest tech market in Canada. Higher absolute salaries, more companies, more career options. But housing is brutal — comparable to Vancouver. Competition is tougher because you're in a larger pool. Worth it if you want maximum career optionality and don't mind urban cost of living.
Vancouver Strong tech scene anchored by Amazon (huge), Microsoft, EA, and a pile of well-regarded companies. Salaries are 20–30% higher than Edmonton. Housing is catastrophically expensive. The city is beautiful but financial stress from cost of living is real and common. Worth weighing carefully.
US Remote The highest salary ceiling by a wide margin. Many US companies hire Canadian employees or contractors, especially post-COVID. As a Canadian-resident US employee or contractor, you need to navigate tax implications carefully (you'll file Canadian taxes, potentially paying higher marginal rates, and the employer may or may not provide Canadian benefits). Some companies hire through an Employer of Record (EOR) like Remote or Deel, which handles the logistics. The compensation premium is substantial enough that it's worth understanding the logistics.
Common New Grad Mistakes¶
Accepting the first offer without negotiating. Companies expect you to negotiate. If you don't, you leave money on the table and set a lower baseline for future raises.
Taking a job at a struggling company for the name. A brand-name company that's in decline, doing mass layoffs, or restructuring aggressively is not the stable launchpad it looks like. Pay attention to company health, not just logo recognition.
Not asking about mentorship. The quality of your mentorship in the first two years of your career will have more impact on where you are at year five than which company you chose. Ask explicitly about onboarding, mentorship programs, and team structure.
Ignoring total compensation. A higher base with no equity or benefits may be worse total compensation than a lower base at a company with meaningful RSUs and strong benefits. Do the math.
Waiting too long to start the process. As covered at the top: if you start looking in March for a May graduation, you've already missed the bulk of structured new grad hiring.
Your First 90 Days¶
You got the job. Now what?
Be a sponge. The first 90 days are not the time to prove how much you know — they're the time to learn how the team operates, how the codebase is structured, what the deployment process looks like, and who knows what.
Ask questions. Lots of them. The questions you can ask freely as a new grad become awkward to ask two years in when people expect you to know the answer. Use the onboarding period aggressively.
Don't pretend to know things you don't. Nodding along when you're lost is how you end up three months in, blocked on a task, too embarrassed to ask for help.
Read the codebase. Understand the system before you try to change it. PR history is a goldmine — read past PRs to understand why things are the way they are.
Find a mentor. Even if there's no formal mentorship program, identify the senior engineer on the team you want to learn from and make a point of asking them questions, attending their design discussions, and reviewing PRs they write.
Establish a good reputation early. Show up, communicate well, follow through on commitments, and flag problems early instead of hiding them. A reputation as someone who is reliable and communicative compounds over time.