Tech Internships “Get the bread” Handbook

A simple compilation of my experience, process, and opinions for securing tech internships/co-ops. Some parts of the process are applicable to non-technical positions.

Last updated: May 12, 2022 — 🎉

The FAANGs — Facebook, Amazon, Apple, Netflix, and Google parent Alphabet. FORBES

As a second-degree student that completed a degree in biochemistry and transitioned into computer science, there are numerous guides, videos, and handbooks out there addressing this topic already. However, I felt that putting my own process into words and sharing it with any wanderer of the Internet may perhaps help someone out! Using this process, I was able to secure internships at TD Bank, Riot Games, and Coinbase! So here we go!

What does this article cover?

  • Getting the first internship/co-op position
  • Preparation & Process
  • Networking and Referrals

Getting the first internship/co-op position

The first internship is the most difficult one to get.

The timeline for applying to jobs is typically the following:

  • Apply for Summer positions (Start Date: May. End Date: Aug) 4 months before. This means you apply and send applications in Jan-Apr before.
  • Apply for Fall (Start Date: Sep. End Date: Dec) in the summer before. So, apply and send resume/apps in May-Aug.
  • *For larger companies like Google, Facebook, Amazon, Uber, etc/ and US internship, you apply much earlier. Some you apply 8 months before the start date. So if you want to get a summer internship, then you need to apply around Aug-Nov (Typically, they start posting the job postings Aug-Sep and interview Nov-Dec).

Is it hard to get the first internship?

The first internship/co-op position will be the hardest to get. To increase your chances, I would recommend you start doing projects early on and do self-learning as recommended above. I would cover the following concepts to ensure you are ready and have an edge over other students:

  • Learn a frontend development stack (Recommended (one of): React / Vue / Angular, etc.)
  • Learn a backend development stack (Express.js / Firebase / PHP / Golang, etc.)
  • Learn how to create an API and how to use them.
  • Learn what a database is and how to set one up (MongoDB (for NoSQL), MySQL/Postgres (for SQL)).
  • Learn how to use GitHub and version control with git.
  • Learn some of the common methodologies used in the industry (Agile/Scrum).

Once again, I would recommend individuals to follow this MERN stack tutorial. https://medium.com/@beaucarnes/learn-the-mern-stack-by-building-an-exercise-tracker-mern-tutorial-59c13c1237a1

Do not be discouraged if you are having a hard time finding the first co-op.

First Co-op

When I was searching for my first one (the term where I landed at Checkfront), I had sent out 160+ Apps. For this first job search, I applied to EVERY position that was a software development position. The response rate was terrible. Within those 160+ apps, I only had 5 interviews before I got an offer. These interviews were also from smaller companies. To give you an idea, they mostly were <100 people in total (Checkfront, FISPAN, Pattern Labs). Larger companies that had invited me for an interview would include Neurio (aka Generac) and BlackBerry. Very disappointing stats, but then again, at that time COVID had shut the world down and companies had frozen hiring and were hesitant to take on interns.

Second Co-op

After landing the first co-op, it is so much easier to get interviews. For my second job search cycle where I landed TD. I had sent out probably 70+ applications. However, this time, I was extremely picky and only applied to large well-known companies or companies that I liked. I was flooded with interviews. I had 12 interviews and numerous other coding challenges (I grouped the numerous interview stages as a single interview for the ones that had multiple rounds.). For 1.5 months, I had at least 1–5 interviews per week. To provide some information on these companies, they were Bloomberg, SAP, Axiom Zen, Blackberry, Electronic Arts, WorkDay, TD, FISPAN. As you can tell, this is a HUGE level up from the first job search cycle. So no worries — it gets better! Land the first one, and then you should be golden for the next.

Third Co-op

This section is a relatively recent addition. I did another job hunt cycle where interviews were flooding in and I found myself drowning in online assessments and requests for interviews. I sent out ~65 applications this round, got around 5–8 interviews, and numerous online assessments. Happy to say that I secured Riot Games for the summer of 2022.

Fourth Co-op

With so much prior internship experience, getting some callbacks and online assessments was much simpler this time around. I accepted an offer for Coinbase for Fall 2022.

Additional advice for securing internships

Some additional advice I usually provide to those that ask would be the following:

  • The pandemic is still here. Everyone is stuck inside. It is the best time to network. Attend hackathons, talks, and events, or connect to individuals you are interested to speak with on LinkedIn and ask to schedule a call. You might be surprised who you might meet.
  • Build, build, build. Make sure you are active and still developing.
  • It’s important to keep your interviewing skills sharp. Review behavioral interviews (ie. Be able to go over your resume and explain each aspect of it such as past work experience / what you built etc.)
  • Do LeetCode for obvious reasons as companies would most likely ask some sort of technical LeetCode-like question. Buy LeetCode premium.
  • Online assessments are hard. Just have to keep doing them and keep doing LeetCode to get better.
  • Don’t get discouraged. As with any job search, it is a grind. Fail and learn from it. Use the failure to become better prepped for the next one. Bad interview? gg next.
  • If you get invited for an interview, read the job posting and google “Top 100 interview questions for _____” for every language or concept listed in the job posting. ie. If it says Java, google and go over the “Top 100 interview questions for Java.” Surprisingly, I had so many of these trivia-style interviews where this was the alternative to LeetCode Algo-styled questions.
  • A small addition to advice would be to make use of your network. Ask for referrals. They do help depending on the company. It is typically better to ask a full-time employee over an intern, but having a referral is better than none.

Preparation & Process

The preparation process is incredibly important! In this section, I’ll detail what type of preparation is needed as well as my workflow which I go through every application cycle!

Let’s dive into it.

Interview Preparation [The most grindy part]

For interview preparation, there are numerous types of interviews that you must be prepared for. Specifically, a typical hiring process for internships and some new grads looks like this:

  1. The applicant applies through the website.
  2. Resume Screen.
  3. Online Assessment (OAs).
  4. Phone Screen.
  5. Maybe a Behavioural / Cultural fit interview.
  6. Technical Interview.

This means that as an applicant, you need to be prepared for each stage. Tedious.

*Note: Some smaller companies / mid-sized companies usually have a shorter interview process. (Resume Screen + Phone screen + Technical or only Resume screen+ one Technical round). For example, for TD Bank, was pass the resume screen and get a single technical interview.

Resume Screen

So, of course, the most important part is to first get the actual callback/invitation to complete the online assessment or even get a phone screen. This means that you need to have a resume that stands out. This is typically the harder part when just initially starting out because you will have no work experience.

To fill that gap, technical projects showcasing your knowledge of industry tools and languages are incredibly important.

As recommended in the previous section and I’ll repeat it here, these are some recommended concepts and languages to learn and make yourself more competitive.

  • Learn a frontend development stack (Recommended (one of): React / Vue / Angular, etc.)
  • Learn a backend development stack (Express.js / Firebase / PHP / Golang, etc.)
  • Learn how to create an API and how to use them.
  • Learn what a database is and how to set one up (MongoDB (for NoSQL), MySQL/Postgres (for SQL)).
  • Learn how to use GitHub and version control with git.
  • Learn some of the common methodologies used in the industry (Agile/Scrum).

Once again, I would recommend individuals to follow this MERN stack tutorial. https://medium.com/@beaucarnes/learn-the-mern-stack-by-building-an-exercise-tracker-mern-tutorial-59c13c1237a1

It is also important to always get feedback on your resume by asking friends and peers that are currently interning as well or current employees of companies that you would like to work for. Make sure to reach out and get a feel of how your resume would be ranked as well as if it is ATS friendly. (Resume parser friendly).

I’ll link my resume here as an example: https://bencheung.me/resume.pdf

Online Assessment (OAs).

The online assessment is typically the first screen to get rid of any unqualified applicants. It is usually conducted through a third-party website like HackerRank, CodeSignal, etc. These websites usually ask LeetCode style questions, so to prepare — unfortunately, you will need to grind questions in order to understand the patterns and types of questions you might get asked as well as have the proper toolset to tackle the questions.

The only way to get better is to continue to practice and learn from mistakes. Numerous resources that are free are out there so I won’t dive into this too much!

Phone Screen.

Congrats, you passed the OA, now it’s the phone screen. Typically, the phone screen is for the recruiter to see if you might be a good fit to move forward. Sometimes phone screens can be technical in which you will call via phone a software engineer (for swe positions) and code live, others are just behavioral. So, it is important to still prepare for these by first researching what type of questions will be asked (cultural/behavioral vs technical screen) and preparing accordingly.

Cultural / Behavioural: Use the STAR method.
Technical: Hope your leetcode skills are good and pray for a good question.

Maybe a Behavioural / Cultural fit interview.

The behavioral / culture fit interview tackles how well you vibe with the interviewers as well as how you can communicate. The interviewers are interested in learning about the challenges you faced, your values, your problem-solving process, and about you!

Technical Interview.

This section is usually purely technical with follow-up questions about your solution. There are three types of interviews that would fall in this category:

  • Leetcode style questions where you solve a question, explain runtime and complexities as well as optimization.
  • Trivia style questions: ie. what is the difference between == and === in Javascript? What is the difference between a prop and a state in React? What is React DOM? What is the difference between an abstract class and an interface? So yeah, you need to brush up on the languages that you listed on your resume and were mentioned in the job posting!
  • Application styled questions where you would code a small part of an application. ie. Code a small frontend using React given a gif.

Now that we have gone through what a typical interview process looks like and how generally we prepare them, I’ll discuss my process and approach below.

Process and approach for each job hunt cycle.

In this section, I’ll go over my personal job hunt process!

  1. Update resume and LinkedIn.
  2. Use an Autofill Extension. Set up Simplify (Autofill apps with your info) — https://simplify.jobs/?invite=61182f75b3b&utm_source=referral
  3. Specific LinkedIn Targeted Search Queries. Search for jobs via LinkedIn and using LinkedIn filters. I use the LinkedIn filters every day to check new postings, you can also sign up for alerts for specific search queries where they send you emails and updates on new postings! Specifically, I search key terms like “software intern”, and “software coop”. Filter by “Canada / United States” as well as the Date Posted “by Past Week” or “by Past 24 hours”.
  4. Application Tracking. Apply for jobs quickly with the Simplify tool. Use referrals if you have them! Make sure to track the statuses of your applications!
  5. Application Tracking. Start doing Blind 75 Leetcode questions and coming up with some answers to behavioral questions. Create a Notion to keep track of interview statuses, solved Leetcode questions, and your personal answers to some common behavioral questions like “Tell me about yourself?” etc.
  6. Repeat 1–5 until you can pass an online assessment.
  7. Once you reached the phone screen / technical/final rounds, more in-depth research about the company you are interviewing for is necessary.
  8. Behavioral and Company Values Research. Create a new Notion page titled with the company you are interviewing with. Fill in the following after researching the company: What are the company’s vision/mission/values? What do you know about <insert company>? Why work at <insert company>? / Why are you interested in interning there? * Tell me about yourself? Do you have any questions?
  9. Job Posting Extraction. Next, go through the job posting and ensure you are familiar with the requirements. I would encourage the same advice as previously mentioned — look through the job posting and google “Top 100 interview questions for _____” for every language or concept listed in the job posting. ie. If it says Java, google and go over the “Top 100 interview questions for Java.”
  10. Research. Research. Research! Join the following Discord channels and use the search feature to see if anyone else has shared their interview experience/process. From this research, you will be able to determine if a phone screen is technical or behavioral or if final rounds are trivia styled or Leetcode, etc. This is super important! cscareers.dev (https://discord.gg/y958ZSgbKq), CS Majors (https://discord.gg/HsfEDdBwWJ)
  11. The last part is to just keep preparing and grinding. With some luck and proper preparation, you should be able to increase your pass rate and secure the offer!
  12. Good luck!

That would be a really quick summary of my job hunt process! Let’s get into some specifics now! I’ll dive deeper into the bolded steps outlined above.

Use an Autofill Extension

Why do we do this? To streamline our application process and save time. We don’t want to waste time typing and adding your education, job experience, and basic information like name, location, etc. every time. So use an autofill application tool! I recommend Simplify. It is a simple chrome extension where you fill out your job profile in the extension and it will autofill the information for sites that support it. Save the time for actual interview preparation of networking! I dropped my referral link here: https://simplify.jobs/?invite=61182f75b3b&utm_source=referral

Fill in your profile using the extension.
For some job apps, we can directly click the Let’s Do It button and autofill our information.

Application Tracking.

Keep track of your progress for each job hunt cycle. Track the stages you are in and record your experience at each stage. I once again recommend Notion for this. Create a table view of your applications with whatever columns you seem fit. Update each status accordingly and add your experience after each stage (ie. phone screen, technical screen, final, online assessment, etc. )

This is a great way to look back and see what mistakes you made and how you can better prep / resolve them!

An example of my Summer 2022 Application Tracking Table

Specific LinkedIn Targeted Search Queries.

Some jobs are posted at random times of the day and once the threshold for the number of applications accepted has been met, they no longer receive applications. An example would be Coinbase’s internship application. It was open for two days and then quickly closed. Missing this window of time to apply means you cannot even submit your application. This means you missed out on a potential internship. This means that as soon as you start your job search you need to be consistently checking postings!

Most use LinkedIn, but are you sure that you are using it effectively? This is why I recommend using the specific search filters on LinkedIn. I recommend going to the jobs tab (https://www.linkedin.com/jobs/), start typing in your query for example “software intern”, set the location to Canada or the United States (or wherever you are interested in), and press search. Use the drop-down tool for Date Posted and choose either Past Week or Past 24 hours to only look at recent postings and not waste time on postings that were posted > 1 month.

Also, be sure to turn on your alert if you wish to have LinkedIn notify you via email of new postings related to your search query and parameters! I recommend checking this at least once a day so you won't miss out!

Save time with refined search filters on LinkedIn.

Behavioral and Company Values Research.

This research is incredibly important to prepare you for your interview. You need to have done research on the company you are interviewing with.

  • Create a Notion account where you can track your interview process/statuses / current resources, answers to any questions you have, as well as company-specific pages. Example:
Example of some interview preparation.
  • Create a specific company page, here is a template that I use. https://mrbenc88.notion.site/Company-Research-Template-1d3672b033364ddb9f6b71cc9a05d1c5
  • Don’t be lazy and not do this research. You need to word your answers so that they align with the overall mission and values of the company you are interviewing for. Creating this cheat sheet will allow you to ace the behavioral interview.
  • Fill in the information to the best of your ability and browse around the company website, media featured by the company, as well as reports that are released by the company. The more you research, the better position you are in to show that you know and are familiar with the company.
Screenshot of some of my Coinbase research.

Job Posting Extraction.

The job posting is there as a guide for you to understand what types of skills and experience an ideal candidate could have. It is not a requirement! However, this also gives you a hint on what to prepare for. ie. Frontend vs backend role vs security vs devops.

Look at the job posting, for every language or concept listed, make sure you have a general understanding. If you want a surface level understanding quick, I recommend googling the top 100 interview questions for ____. Record both the question and solution to yet another Notion page. Lots of work but you only do it once.

Once you come across the same concept or language in a future posting, you already have your notes and can use reference it / study it!

An example of the numerous notes for languages I am familiar with and have listed on my resume.
A React Notes Example

Research. Research. Research!

Join the following Discord channels / browse the discussion part of Leetcode and GlassDoor Reviews. Use the search feature to see if anyone else has shared their interview experience/process.

Research is super important. Information can steer your interview prep in the right direction. With no information, if you have a technical interview — it is great to be informed about what sort of interview it would be. You can also exchange with others who have already taken the interview and have them share their experience! Research is incredibly underrated and important.

So how to do it?

Join the two Discord channels, go to the appropriate channels and start searching. There is usually a channel for the process where individuals post their current progress through the interview process. This channel is great to see which applications are currently open! Check at least once a day!

You can naturally also DM individuals and ask them how it went. It is a great resource for information exchange and to better prepare you to ace your interview!

View the status of some other applicants.

Next, search up possible previous interview questions using Leetcode Discussion forum and GlassDoor! You should also at this point be familiar with the type of interview you will be doing!

Networking and Referrals

Networking is super important! I recommend going through your schools’ alumni network or current department networks! You can also naturally network through your CS program, etc., or through LinkedIn.

Interact with some LinkedIn posts and send an invitation to connect. Upon being connected on Linkedin, if you are super interested, go ask to schedule a coffee chat.

You might be surprised who you might meet and it could develop into new friendships, new mentor relationships, or a referral! Maybe you'll find out that the work-life balance at your dream company is absolutely terrible!

In any case, I highly encourage the following platforms to meet new individuals!

  • LinkedIn: Go through your alumni network and search for fellow interns or full-time for the companies you are interested who have gone to the same university as you! Send an invitation to connect and you might have a higher chance to get a reply!
  • Lunchclub- https://lunchclub.com/?invite_code=benjaminc12 This is great for being matched randomly with random users in selected areas up to 3 times a week. Eye opener and free :)
  • University network / clubs , etc.

What about referrals?

Referrals could be useful in some companies or not useful at all. Always better to have one than to not have one. I would try to get one but not too important in my opinion!

I would recommend trying to schedule coffee chats before attempting for a referral.

Concluding Thoughts

The job search can be daunting at first, but with a process and a consistent search, it becomes second nature and easier to crack! Be sure to take breaks and not burn out!

I will be updating this periodically with more ideas and relevant content. You can see the last updated version at the very top of the article.

Please reach out if you have any suggestions or additions! Would love to include them!

Let’s get in touch!

Hi! You reached the end! Congrats on making it through this guide. I hope that it has provided some insight and can better inform your decision!

LinkedIn: https://www.linkedin.com/in/mrbenc88/

Email: chessben88@gmail.com

Website: http://bencheung.me/

--

--

--

A wandering collection of thoughts, articles, and perspectives with the goal of enlightening readers.

Recommended from Medium

What does good look like?

7 Things a Boss Should Never Say to Their Team

Two Signs That You Might Be Losing Your Job

4 Common Assumptions Made by CSMs that Turned Out to be Wrong

3 things about Design I’d tell myself 4 years ago.

The Myth of “Hard Work Pays Off”

3 Reasons Why Being an Employee Sucks…

We Need to Have Candid Conversations

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Ben Cheung

Ben Cheung

CS @UBC | Former Biochemist | bencheung.me

More from Medium

What Do You Enjoy The Most on University?

Not Everyone Should Be a Programmer

The JEE days

Get to Know Cindy Mata, TechTogether New York’s Newest Chapter Director