With social media glamorising how earning a computer science degree and how lucrative it is out of grad, from ~2019 until now, finding a software engineering job has only become more difficult than ever. In addition to the introduction of AI, it has caused disruptions in the SWE industry leading to mass layoffs in big tech + smaller companies.
Despite online claiming the SWE industry is doomed, that jobs are impossible to get, and nobody is hiring, it begs the question: How come of the 100 or so 2nd/3rd year CS/SWE majors I know from Waterloo, none of them are unemployed? In fact, the median salary of them are ~45/hr, many of which are working in Toronto, San Francisco, and New York. What's incredible is that many of them struggled to get their first internship, and some not being able to. For example, I landed a business analyst job for a real estate brokerage in first year which was completely irrelevant to my career path, yet within 12 months I was able to land an offer at a startup paying me 300k salary at age 20. So how exactly did so many people go from unemployment/minimum wage software jobs to almost tripling their salaries within a year? It's a long answer and comes from trial an error. However, below are some tips and tricks that are useful.
1. Building a foundation
One of the worst pieces of advice I have heard from people is that I am still young and should take my teens/20s slowly. In fact, if you are telling people this, you are explicitly harming someones career. Like athleticism, your teenage years are some of the most valuable in learning skills. You are the sharpest when it comes to comprehending difficult concepts, and have way fewer obligations like supporting a family. As a result, you SHOULD be focusing on your career as early as possible, and not be wasting your entire weekends and holidays jerking it. In your spare time, you should be picking up a book about coding, watch courses from YouTube and Udemy, write notes, and prepare for interviews. Yes, even as an 18 year old in your first year of university.
- *I HIGHLY recommend Angela Yu Web Development Bootcamp on Udemy*
2. Choose web development
By far, the most common types of job for SWE in the market are web development jobs. In particular, full-stack software engineering. There is also data engineering and AI engineering, but those generally require some experience to get into, hence starting off with full-stack is the best way. In short, full-stack engineering is creating entire interfaces for website (frontend) and building out services that the frontend might interact with (databases, computational tasks, video processing, etc.). In my experience, almost every startup requires a full-stack engineer, and EVERY single one of my friends who work at startups or big tech has done full-stack. Most self taught, then going deeper in the job.
3. Learn and build confidence
Unlike many other majors, the CS degree doesn't actually teach you how to become a software engineer. As you can tell, school doesn't teach you full-stack engineering, despite it being the most common software position out there. In reality, the only classes you really need are Object Oriented Programming, Algorithms, Networking, Operating Systems, and Concurrent/Parallel programming, as these are important for teaching you best practices and building robust backend systems. The other 80% will be irrelevant UNLESS your career path will specialize in those (i.e. compilers, research, reinforcement learning).
Here is a list of things that almost every software engineer and software engineer must know:
- Learning how to use Git and GitHub to publish your code on the internet
- Learning at least 1 programming language WELL. This includes writing coding projects that are 500+ lines with multiple files, and functionalities. I highly recommend Python and JavaScript as they are the most popular for finding jobs and practicality. Languages like Java, C#, Go, Rust, C, C++ often require too much boilerplate code to set up, which is not useful when trying to learn. Often, people learn these languages because their job requires them to build enterprise applications.
- Understand how the web browser works, and how to use JavaScript to interact with it.
- Learn React as these are the two tools I have used for 90% of my career. React is by far the most popular frontend framework, and is widely used across most companies. It allows websites to be built in a more organized way, and offers a wide variety of functionality that make websites responsive. Note, React is a FRONTEND framework.
- Also consider Next.js, which is built on top of React. It offers backend functionality to it, making it a full-stack framework, offering both frontend and backend functionality, which vanilla React does not offer.
- Learn a backend framework. Either Express.js, (javascript) or FastAPI (Python). These offer a comprehensive suite on tools for interacting with the frontend and databases. It allows for things to be processed, stored, updated, deleted, etc. And this concept is known as CRUD (a concept you should fully understand and research about).
- Pick up libraries, these are code that other people have made and you can implement into your project by downloading it. i.e. play with the chatGPT api which lets you integrate it to your site. Some help you create visuals and animations on your site. Just search up and use anything that seems interesting to you.
Use these tools along the way:
- VSCode (IDE for writing code)
- Postman (testing backend API calls)
- Google Cloud (deploying your website to the web)
- AWS (deploying your website to the web)
- PostgreSQL (most commonly used backend type. I recommend Supabase)
- ORM (a suite of tools that allows you to interact with databases easily without SQL)
4. Showing up (networking)
Last year, I told myself that I will would up to every event that happened around me. Why? Think of it as a probability game. The more you show up, the higher the chance of finding an opportunity. This means show up to hackathons, networking events, club fairs, job fairs, recruiting events, meetups, hacker houses, LinkedIn/Twitter announcements, etc. In tech hubs and larger schools, these things happen all the time. You just need to find the right circles and be snooping around to find these opportunities.
Note: Electrical and Computer engineering students do very well at hackathons because they are usually the only ones that can do hardware, whereas CS students can't.
My case of 'showing up' legitimately is the reason why I had 15 interviews in my second term of 2nd year. The story goes: I travelled from Ottawa to Toronto (4 hour transit) to UofT Hacks, met some people, they invited me to Carleton blockchain club a week later, I showed up, joined their UTMIST team, built Rizz Glasses with them at CarletonHacks, and got 100k views on LinkedIn and received several DMs from it.
Especially in Canada, large companies have mediocre hiring events. The most valuable ones are startups. In my case, I was snooping around Twitter and discovered that YC (one of the largest venture funds in the world) was hosting an AI startup school, and reimbursed $500 for everyones plane tickets. I got accepted + 2000 others, and flew to San Francisco in the middle of summer, met like 20 insanely cracked people, got invited to a founders house to chat for 4 hours, got invited to a dinner with 2 OpenAI interns in the room, got the phone number to someone who worked at Google and Uber before 2015, and got a followback from Roy Lee on Instagram (Cluely CEO). All of which happened within 4 days.
Finding opportunities is important, and you should always be looking around/talking about them with your friends. Often, the most unexpected interactions have some of the most life changing impact on myself.
5. Getting a job
Finding a job for startups and big tech is relatively different, so here is how I would recommend finding each one:
Startups (requires good internships or a big passion from your projects):
You might think a startups are small low budget companies, but that is completely wrong. Especially in San Francisco and New York, a company of 4 people can be funded millions of dollars from investors to build out a company. The concept of millionaires giving people in their 20s millions in upfront cash seems unusual in Canada, but is extremely common in the states. And if you are wondering, yes these employees can give themselves a 500k salary and spend the rest on the company. Meaning, they can be paid more than a Google employee.
In general, startups usually don't have job postings on LinkedIn. Instead, you get an internship at a startup by cold messaging them on LinkedIn or Twitter. You'll likely need to buy premium on those sites to message people, and that is 1000% worth your money.
To find them, just follow and connect with a whole bunch of people who are cofounders/ceo of startups, and eventually your feed will be populated with a lot of them. Simply message them with a screenshot of your resume, with a short sentence/3 bullet point of what you have done.
Also, startups usually hire after they have received funding. These are periods when venture capitalists want to buy out a % of the startup in exchange for cash and mentorship. As a result, the company can have the budget to increase expenses and boost operations with more employees.
I have personally sent about 50 cold messages, and have gotten about 3 responses back. Not bad! (Also from the YC event, I sent around 20 while telling them I was also at the event, and got 5 interviews).
Big Tech (requires 1/2 internship experiences):
Unlike startups, the most important part of your application to big tech internships is to apply as early as possible. Early is within 12 hours of the posting. So here are some tips on finding exactly when they come out and what tools to use:
A tool called 'Simplify' is an autofill for your resume on various job application websites. Go on their site, paste in your resume, fill in some forms, and whenever you enter a job site, it can autofill all of the fields for you, saving you hours at a time.
To be alerted to job postings as early as possible, have follow @zero2sudo on Instagram, since he posts major internships the day that it comes out. Also have email notifications on for 'Simplify's Summer2026-Internships'. Or whichever year you are in.
Medium companies (0 internships required)
Governments, banks, and slower moving but large companies will hire for students with little to no experience. For example, the real-estate developer I worked for (Caivan) had a small software team of 5 people out of the 500 employees in the company. They usually hired someone that they could mentor and work on some projects alone. No experience needed here!
For these, you likely want to attend career fairs that they host. You should obtain the contacts of team leads, past interns, HR, or any executives. Add their LinkedIn or phone numbers, and try to let them know that you are interested. Make sure you leave a good impression that isn't too transactional so they remember you.
Often, you aren't exactly seen as someone who will drive revenue to these companies, but rather, someone they could mentor to help those early in their careers.
Conclusion:
I've spent basically the entire past 2 years job hunting, and that is how I came up with such a long list of experiences that has helped me. Yes, it's a lot to learn and do at the same time, but small steps over a long period lead to great results. Obviously there are a lot of things I left out like specific cold message and resume templates. But feel free to message me and I will show you how I did those in more detail! Good luck have fun job hunting.
- Benson Yan

