Mastering the Internship Hunt: A Comprehensive Guide and Tracker for Computer Science Undergraduates
Gaining practical experience through internships is a crucial step for Computer Science and Engineering (CSE) undergraduate students. Navigating the internship application process can be overwhelming, but with the right strategies and tools, students can significantly increase their chances of landing valuable opportunities. This guide provides a comprehensive overview of the internship search, application, and interview process, with a focus on utilizing resources and staying organized. Resources intended for CSE undergraduate students help make the most out of your time in the Allen School & UW! Whether you’re wondering what a specific class is like, how to apply for graduation, or what to put on your technical resume, we’ve got you covered!
Resources for CSE Students
The Allen School & UW provide various resources to support CSE undergraduate students throughout their academic journey and career preparation. These resources address common concerns and provide guidance on various aspects of student life, which include navigating coursework, understanding graduation requirements, and crafting effective technical resumes.
- Course Guides: Deciding on courses can be difficult, especially when trying to figure out what to expect. Guides are available to help students get familiar with CSE 3xx and CSE 4xx courses, breaking down course structure and key aspects to consider when choosing classes. An expanded course guide offers information on introductory programming series (CSE 12x), Math, and natural science courses.
- Graduation Roadmap: To ensure a smooth transition to graduation, students can utilize resources that outline all necessary steps for graduating from the Allen School. Checking in with an assigned Academic Adviser about your degree audit, plan to graduate, and life after graduation is a great first step. You can apply to graduate up to three quarters in advance.
- CSE Student Roadmap: A CSE student Roadmap serves as a starting point, especially for those overwhelmed by the possibilities in the Allen School. This visual guide provides an overview, while a long-form document offers more detailed information. These resources are particularly helpful for newly admitted students to become familiar with the Allen School.
- Research Opportunities: Participating in faculty-student collaborative research as an undergraduate can be a very rewarding and impactful experience. A guide is available to learn more about how to find undergraduate research opportunities in the Allen School and at UW.
- Tech/Data/Gaming Interest Community: UW’s Tech/Data/Gaming Interest Community provides news & advice, job market trends, featured jobs and internships, alumni contact information, helpful articles, and related events! Personalized newsletters keep students up to date with the latest news.
- Mental Health & Well-being Resources: A guide offers an overview of common mental health & well-being resources available to Allen School and UW students, with links to articles and resources related to motivation, imposter syndrome, neurodivergence, and stress management.
The Importance of an Internship Tracker
Keeping track of internship and job applications can get tricky. Utilize a spreadsheet to stay organized and attentive to the most important applications you’re being considered for. The file will automatically sort based on your application priority via macros. The recruitment process can seem intimidating, especially earlier on in your Allen School student career. An effective internship tracker is essential for staying organized throughout the application process. This tool allows students to monitor their progress, manage deadlines, and prioritize applications, ensuring they don't miss crucial steps or opportunities.
Building a Strong Foundation
Before diving into the application process, it's essential to build a solid foundation. This includes:
- Technical Skills: Mastering fundamental programming concepts, data structures, and algorithms is crucial.
- Resume Building: Creating a compelling technical resume is the most crucial part of getting an interview. A well-crafted resume highlights relevant skills, projects, and experiences. A guide that has best practices, tips, and suggestions for each section of a one page technical resume is available, as well as an example of a resume template!
- Networking: Networking is an essential part of career development and job searching. Building connections with industry professionals can open doors to internships and job opportunities.
Gaining Technical Experience Beyond Internships
While an internship can be a valuable experience, it’s not the only way to demonstrate to future employers or graduate schools how you can apply the technical skills you’re learning in classes in another setting. A comprehensive guide covers many ways besides an internship to gain technical experience.
Read also: Duke University Tuition Costs
Internship Application Timeline
A well-defined timeline is crucial for a successful internship search. The optimal timeline is to start applying in September for next year’s summer internships. Here’s a recommended timeline:
- July - August:
- Finish side projects
- Polish your resume
- Grind Leetcode, System Design, SQL
- Interview prep
- Gather information on companies
- September - January:
- Continue grinding Leetcode, interview prep, gathering resources and information on companies
- Companies start posting their internship applications
- Apply to companies
- Complete OAs and coding challenges
- Interviews
- Track processes for companies you applied to on live spreadsheets from Discord and Reddit communities.
- Ex. Finishing up interviews, getting offers/rejections
- May - August: Internship period
Applying early is extremely important. A lot of them are on a first-come, first-served basis as long as you’re qualified. Don’t think of this application process as something you can wait for or procrastinate on because it’s not. There are many cases where candidates successfully complete their interviews but cannot get the job because the company already hired too many interns. The internship availability is extremely dependent on when you apply for the company, and you will lose your potential internship because you applied later than others. For most big companies such as FAANG or equivalent.
Researching Companies
Acquiring information is one of the most important things to do before applying to companies. Most likely, a lot of the questions in your mind have probably been answered before.
Utilizing Online Communities
There are channels in these discord servers that track internships for each of the three seasons (Jan - Apr, May - Aug, Sep - Dec), salary info, internships by location, live process tracking, LeetCode help, resume review, mock interviews, and a lot more other topics that people discuss. Furthermore, there are usually individual Discord servers for applicants of bigger companies that you’re applying for. However, I found most people to be very friendly and willing to answer your questions as long as you ask them politely. Make sure to be very friendly and polite.
Factors Influencing Interview Invitations
Several factors influence the likelihood of receiving interview invitations. Here are four important ones:
Read also: Path to Quantitative Roles
- Resume
- GPA
- Networking/Connections
- Graduating Year
The Role of GPA
Many companies don’t even ask for your GPA or your transcript because they value your software experience and skill more. GPA can be thought of as a baseline criterion.
The Power of Networking
Use your connections! Having a referral for a job application that you’re applying for can increase your chances (this depends on the company, but might as well ask around for referrals). On a side note, a referral from an intern compared to a referral from a full-time employee or a manager may be treated differently. You can also get a direct referral from the higher-ups within a company or the hiring manager which both are very effective. Everything is not just systematic as people seem. I personally had more success with reaching out to engineering managers/staff engineers. These people are usually the head of their engineering team; they usually don’t get messages like this. Show them your ambition and skill, and ask them if they have room for potential engineers on their teams. Furthermore, engineering managers/staff engineers know hiring managers who can get directly in touch with you for an offer after they decide that you’re fit for the job.
Graduating Year Considerations
Although the graduating year might not seem too important, I value this as one of the most critical factors in getting interviews. Some FAANG+ companies don’t even look at your application after realizing that you’re not going to be graduating soon. Optimally, these companies want you to have finished at least 2 years of university before applying to their internships. The closer you are to finishing your degree, the better your chances of getting the job. Companies’ wants: Interns with potential who can come back as full-time employees within a short period of time - ideally within a year. Applicants’ wants: Experience, money, prestige (clout), full-time offer, connections. There are definitely exceptions to this as I’ve seen some students before who made it to FAANG+ companies in their first/second year. However, most of the time, these companies only like hiring “almost-graduates”. On a side note, please research the company that you’re applying for to figure out if they have a preference in upper-years or if they don’t care about what year you’re in. Every company is like a human being: each with its own personalities, likes and dislikes, and a set of rules that they follow. To get someone to like you, you need to know what they like.
Mastering the Interview Process
The interview process typically involves behavioral and technical assessments, conducted via phone, video, or in person. A guide covers best practices for technical interviews, and outlines things to consider before, during, and after your technical interview.
Preparing for Behavioral Interviews
Many people take behavioral interviews lightly because they think that the technical portions of the interviews are way more important for software engineering positions. But let’s not be that guy who aces the technicals then gets rejected because of the behavioral portion. These are my steps in preparing for the behavioral interviews:
Read also: Comprehensive Internship Guide
- Know the company and the position:
- Investigate - What the company does: Their purpose, mission statements, main products, etc
- What type of culture they have: Open office spaces, benefits, team size, remote work, location, etc
- How much people get paid for the same positions at this company (you will need this later to compare the salary you were offered)
- You also want to understand what type of theme or questions this company asks
- Ex. Amazon asks their behavioral questions based on their Leadership Principles. Leadership Principles are a set of principles that Amazon encourages its employees to always use during work. I would suggest studying and embodying their leadership principles to prepare for Amazon’s behavioral interviews.
- Similarly, I encourage you guys to investigate the theme and the set of questions they usually ask.
- Know your resume:
- When asked about any piece of information on your resume, you should be ready to answer them coherently with confidence. I personally have a go-to verbal description for each of the experiences and projects on my resume. I suggest practice answering questions about your resume as well.
- Prepare general behavioral questions:
- Here, you’re really more or less describing yourself to the interviewer and you want to relate it back to why you are fit for this position at this company. Furthermore, I always include relevant experiences that I’ve had in the past in my answers and narrate a story to further support my point. Essentially, you want to have a relative idea of how to answer these questions by answering similar types of questions beforehand.
- Below are examples of common questions asked during interviews.
- ex. Tell me about yourself.
- ex. What are your biggest weaknesses?
- ex. Why did you choose to apply to ?
- ex. How do you handle success and how will that help you?
- ex. Recall one time you worked in a team you were not satisfied with. How did you resolve the issue?
- ex. I suggest doing most if not all of the questions here.
Technical Interview Preparation
Technical interviews assess problem-solving skills, coding abilities, and knowledge of computer science fundamentals. Key areas to focus on include:
- LeetCode:
- LeetCode questions for the company you’re interviewing with. You can definitely find a similar list online collected by other applicants. Solve the questions multiple times to a point where it’s comfortable to answer these questions. Most companies give variations of the same LeetCode questions so you need enough practice and understanding to solve them during the technical interviews. Furthermore, there are times where you can get stuck on LeetCode problems. Personally, I work on the problem for around 15 minutes, and if I am still completely lost, I look at the discussion posts to understand how it’s done. Then, in the near future, I practice the same question again to make sure I fully understood it.
- Objected-Oriented Programming (OOP):
- OOP is a fundamental programming paradigm that’s important in both technical interviews and software engineering. OOP can slightly vary depending on the programming language you use.
- SQL:
- SQL is most asked in data analyst/scientist-related positions. However, software engineers are also expected to know how SQL works.
- System Design:
- This is an amazing guide on learning system designs. It is very lengthy, so I suggest taking your time to really understand the entire primer. Companies will at times ask System Design based questions to test your understanding of software architectures and system design.
- Programming languages:
- Sometimes, the internship posting will contain the languages that they use. For example, a Front-end Developer posting could mention their use of the MERN stack. I highly recommend practicing the language especially if you also put that same language on your resume.
Interview Tips
- Practice! Practice! Practice! After finishing the steps listed in Section 4.3, you can practice mock interviews unlimited times with your friends and colleagues for both behavioral and technical interviews. It’s really different when you practice by yourself compared to someone else interviewing you. Personally, I had another friend in the software field with who I could do mock interviews. We would take turns in being the interviewer and the interviewee. Not only did it help with practice interviews, but it also allowed me to see from the point of view of the interviewer. I suggest doing mock interviews with people with more experience than you. Sometimes it’s hard to get good feedback from people performing at a similar level to you due to the Dunning-Kruger effect.
- Attire: Wear casual to formal casual for these types of interviews. Most of the time, SWE interviews are relaxed and you can just wear what you would wear outside.
- Environment: Have a mono-colored background with good lighting for fewer distractions for the interviewer watching you.
- Equipment: Make sure to double-check your microphone and webcam to ensure that the interviewer watching this can clearly see and hear you.
tags: #undergrad #cs #internship #tracker #spreadsheet

