an early career blog
1915 words
10 minutes
Start here if you're a student

🤔 Who is this for ?#

This is a list of resources you can use to get your foot in the door in the North American big tech software industry. It’s a braindump of everything I wish I knew when I was starting out, and it’s meant to be a starting point for you to Google stuff, learn about alternative paths, and find your own way. Obviously, it’s impossible to list every single opportunity on the planet, so I’ve included some search terms you can use to find out more about each topic.

🚀 Insider tip:
If you are a student, sign up for the GitHub Student Developer Pack. It offers a ton of free or cheap perks like web domains, hosting services, canva, courses, etc.

Quick find#

See if any of these apply to you and jump to the relevant section directly:

Don’t want to be a SWE?#

Almost all of the content in this article is geared towards software engineering roles, so I first want to mention some alternative roles you could pursue that involve 0-100% coding and 0-100% other skills. Salaries, working hours, performance expectations, and career growth vary a lot between these roles, so make sure to do your research. Also, the interview process for these roles is probably very different from traditional SWE roles, so make sure to look up the specifics.

✨ Tech roles that are not SWE
  • Data Analysts / Data Scientists / Machine Learning Engineers use data to analyse past trends and/or predict future ones. Depending on the company, they could be responsible for anything from creating simple dashboards in Tableau to tuning advanced deep learning models in PyTorch.
  • Product Managers are responsible for the success of a product, which means they need to understand the market, the user, the business, and the technology. They spend their time meeting with each department to make sure the product is on track, and they are responsible for the product roadmap.
  • UX/UI Designers are responsible for the look and feel of a product. They spend their time creating wireframes, mockups, and prototypes, and they work closely with developers to make sure their designs can and will be implemented.
  • QA / SDET are responsible for making sure the product works as intended. They might spend their time writing automated tests, manually testing the product, and working with developers to fix bugs. They might also be involved with the release process, CI/CD, and security.
  • Technical Recruiters are responsible for finding and hiring the best talent for the company. They spend their time sourcing candidates, conducting interviews, and negotiating offers. They might also be involved with onboarding, retention, and diversity initiatives.
  • Solutions Engineers / Customer Success Managers / Consultants and similar-sounding titles are responsible for guiding customers (which are often businesses) through the product. They spend their time understanding the customer’s needs, explaining how to tune the product to meet those needs, and generally making sure the customer is using the product effectively. To that end, they need to become extremely knowledgeable about the specific product they are supporting.
  • Technical Writers / Developer Relations / Developer Advocates are responsible for creating and maintaining documentation, tutorials, and other resources for developers. This is a relatively new role that is not always clearly defined, but it could involve anything from writing blog posts or documentation to creating video tutorials to speaking at conferences.
  • Tech Support / IT are responsible for helping internal or external users with technical issues. They spend their time answering questions, troubleshooting problems, and escalating issues to the appropriate team. They might also be involved with setting up new hardware, software, or networks.
  • Startup Founders / VCs / CEOs are responsible for the success of the company. They spend their time setting the vision, hiring the team, raising money, and making sure the company is on track to meet its goals.

There are many other roles in tech, and the lines between them are often blurry. For example, a Solutions Engineer might also be responsible for some technical writing, or a Product Manager might also be responsible for some UX/UI design. If you’re not sure which role is right for you, you can start by looking up the specifics of each role, talking to people who are in those roles, and trying out some projects or internships in those roles.

⌛ Student opportunities#

Freshmen and sophomores#

There are many programs specifically designed for first and second year students to get their foot in the door at top tech companies. These are typically paid 12-week internships that put emphasis on mentorship and development by incorporating team rotations, workshops, and networking events.

🍼 Internships for freshmen/sophomores

Obviously these programs are highly competitive, so you should prepare by building a strong resume and practicing for the interview process. You can find the specifics about the interview processes online - 🔍 google step interview process.

🛒 Shopify Dev Degree
If you’re a 1st year or 2nd year (in CS or otherwise), you might still be eligible to apply for the Shopify Dev Degree. This is a fully-paid CS degree at select universities, in addition to multiple paid internship rotations at Shopify for the duration of the degree. This program is obviously very competitive, but it’s definitely worth a shot.

😟 What if I can’t get into any of the above?
You’re welcome to apply to internships that are not specifically targeting freshmen and sophomores. If you find that you weren’t able to secure an internship, you can still build your resume in other ways and try again next season.

Rising seniors#

The expectation in big tech is that you would intern the summer before you graduate, and towards the end of your internship the company would extend you an offer to return full-time next year without re-interviewing. Some companies offer off-cycle internships (e.g. fall or spring) that can also lead to full-time offers.

However you decide to structure your “path to return offer”, you probably want your last internship to be at the company you would like to work full-time at. Of course, you can always interview for full-time roles instead of relying on return offers, but keep in mind that interview processes for new grad roles are typically more difficult than for internship roles.

You should also be aware that timelines for interviewing for full-time roles can be as early as 12 months before the start date, and as late as 1 month before the start date. For example, Amazon recruits new grads almost a year out (e.g. interview in July 2022 for a start date in May 2023), but Electronic Arts recruits 2 months out. Look up the specific interview timelines for the companies you are interested in. Either way, it doesn’t hurt to just start applying early so you get more interview practice and possibly more offers to choose from.

Not a college student?#

If you are not in a 4-year degree, not a CS major, or not in school at all, there are still ways for you to become a software engineer. These programs are typically well-compensated, have a high conversion rate to full-time roles, and span anywhere from a few months to 2 years.

👴🏻 Apprenticeships for non-traditional candidates

Note that some of these programs might skip a year or be defunct, but new programs pop up all the time as well. If you were not able to secure a spot in an apprenticeship, you can still build your resume in other ways and try again the next season.

🗄️ No internship, no problem#

See Internship Alternatives 101 for a (long) list of other things you can do to fill your time and/or advance your career.

🏗️ Building a great side project#

See Side Projects 101 for a no-BS guide on what to use in your project and how to launch it.

👔 Applying and interviewing#

See Getting a Job 101 for a more detailed guide on how to apply and interview for software engineering roles.

😟 Managing your mental health#

At the end of the day, none of this will matter if you end up falling into a deep depression or having daily panic attacks. Online circles in big tech have a way of exacerbating negative feelings, promoting doomer perspectives, and making you feel bad about yourself. Sometimes, even real-life interactions can result in you feeling like you’re not good enough, you’re an idiot, you don’t know what you’re talking about, etc.

That being said, here are some tips to keep in mind if you want to mitigate the negative effects on your mental health:

  • Make friends, join or start a club, create a study group, and generally build your tiny little community of real-life friends or peers who are on the same journey as you. Share job postings, do mock interviews together, and even discuss things unrelated to tech. This will help you feel less alone and more connected to the world around you.
  • Support others and celebrate their wins, whether it’s your best friend getting their first interview, or a stranger on LinkedIn getting an offer for your dream company. When you spread joy and positivity, you are not only helping your mental health directly, but you will also find that others want to help you and support you back. Your friends’ successes are your successes too - you not only get to be friends with someone really cool, but you might even get a referral from them later on.
  • Talk about your struggles while you are facing them. Maybe your friend is also insecure about something you thought they were very confident in, or maybe your classmate failed an interview twice before receiving their offer, or maybe someone you thought were a prodigy at something actually spends hours every day building that skill. Knowing these things while you are going through the same struggles goes a long way in helping you feel less alone and mitigating imposter syndrome.
  • Pay it forward and pull others up once you get to the top, instead of kicking the ladder. You never know when you might need help again in the future.
  • 🚫 Limit negative interactions by minimizing time spent talking to mean strangers on Reddit and Blind, taking LinkedIn posts with a grain of salt, and taking note of how certain people or communities make you feel. If you find that you consistently come out of an interaction feeling like a loser, maybe it’s time to distance yourself.

And then, of course, there’s the obvious ones: eat healthy, exercise, get enough sleep, take breaks, etc.

🫂 Thank you for reading#

If you’ve made it this far, thank you for reading! I hope you took something away from this masterlist and found it somewhat helpful. If you have any questions or feedback, feel free to reach out on LinkedIn or via email.