Landing a SWE Internship: Getting Your Foot In the Door

Codebase
Berkeley Codebase
Published in
9 min readApr 27, 2021
Photo by Joonyeop Baek on Unsplash

Welcome to Landing a SWE Internship, a three-part series to help you land your first internship! Our articles are tailored to those who have never been through the SWE recruiting process before, so we lay things out in clear detail; however, even if this is your second or third time recruiting, we hope you’ll still find some relevant tips.

Before you delve into the process, reflect on your own motivations and desires to make sure that an internship is a right fit for your career goals. Depending on your school, you may feel that getting an internship is the only possible option for summer; however, this isn’t true! Studying abroad, taking classes, doing research, or working on a personal project are also great options to help advance your career. If you do decide to go for an internship, you’ll have the chance to work in the industry and hone in on your technical skills before your first full-time job.

Our article series is roughly organized following the stages of the recruiting process from landing and acing your interviews to signing your offer. Without further ado, let’s jump right into the application round!

Disclaimer: Our advice is definitely not the end-all be-all, it’s just a compilation of things we’ve found successful and general tips based off of our experience going through internship and new grad recruitment.

Resume

A resume is a one-page document that showcases your skills and experiences. They are used extensively in the first round of recruiting, so it’s important to have a polished resume to present the best version of yourself! In this section, we’ll go over some broad points you’ll want to keep in mind when creating or editing your resume.

Header

The header is at the top of the page and contains your full name, phone number, and email. You can also put other links such as LinkedIn, Github, or personal websites, but many recruiters and interviewers don't look at these. It's best to not put your home address — it isn’t that common nowadays.

Education

Start by including your university, expected graduation date, major, and GPA! It's highly recommended to put your GPA on your resume unless it's on the lower side. If you want, list your technical GPA next to your overall GPA, especially if it's higher than your overall. That being said, very few companies actually screen your GPA.

You can also list relevant technical coursework here. It can be useful if you have taken technical classes in a field relevant to the position you're applying for.

Experience

Generally, each point in your experience section should have your position or role, the dates in which you undertook this role, and 2–4 bullet points relating to what your experience entailed. Order your experiences chronologically, with the most recent and relevant technical experiences or projects placed at the very top.

Try to list specific languages, frameworks, or libraries for each experience first. If you don’t have any CS-related experiences yet, you can put any high school experiences that you’ve had.

Make sure to communicate your ideas concisely. Keep in mind that most people will not read all of your bullet points, so put the most important bullet points first. If someone could only know one thing about your experience, what should it be?

Projects

If you've worked on any CS or engineering projects outside of a particular role, feel free to include them! If you do include a project, consider adding Github links so that companies can view your code.

Skills

In this section, you'll want to put any languages, libraries, or tools that you’ve worked with. Avoid putting interests that aren’t related to the position you're applying for (e.g. "I am good at push-ups") and try not to rate your skills on a numerical scale.

Awards

If you've won any awards in high school or college relating to computer science or math, received general scholarships, or joined honor societies, feel free to include them in your resumé.

Formatting

In general, you can play around with the design of your resume! However, there are a few things you should keep in mind when you create the design.

Place the header at the top, followed by your education. After this, your priority should be to make all the sections legible and easy to find. Don’t use overly flashy fonts or colors. Try to fill up the entire page.

Miscellaneous Tips

Make sure you have a PDF copy of your resume! It’s considered more professional than a document or image file.

Don’t sweat the minor details. Very few recruiters or interviewers will read through your entire resume — most opt to quickly scan through it to get a sense of who you are.

Your resume is constantly evolving! Most resumes you’ll see are the product of months/years of revision, so don’t be intimidated by someone else’s resume. If you’ve followed the advice above and presented a professional-looking resume, you’re already on the ball.

Application Round

It’s time to apply! The application round involves getting your resume to companies. Generally, a recruiter or hiring manager looks through it and decides if they’d like to move forward with you to the next stage. This is an intimidating step since there are so many possibilities and it’s hard to know where to begin. Starting with online applications and moving to a more people-orientated approach is a great idea!

A People-Oriented Approach

Interacting with people during the application round often yields much better results than simply applying online. Especially if you’re a younger applicant, we strongly recommend that you try to pursue some of the options below to guide your internship search.

Handshake

We! Love! Handshake! Handshake is a job portal for UC Berkeley students that connects companies directly with students. If you fill out your profile thoroughly and apply to smaller companies, you will likely get some results. We highly recommend this!

Startup Fairs

Career fairs have a reputation for not being too effective because many recruiters at larger companies will simply tell you to apply online. However, some companies may fast-track you to the next step if you have relevant technical experience. Before you go to these events, look at the companies that are attending and do some research on the type of work they do.

When you go to these events, make sure to arrive on time. Come with printed resumes and be ready to talk about all of your past experiences!

Referrals

If you know people who work in the tech industry, it’s extremely useful to take advantage of those connections! Getting a referral usually means that you can skip the application round and go directly to your first interview. Note that some companies allow interns to submit referrals too, so if you have a friend interning at a company you’re interested in, ask them for a referral while they’re still at the company.

Company Applications

Most companies will have you fill out an online application that’ll put you into the recruiting pipeline. Finding these can take a while, so here are a few great resources to find the applications for companies that have CS-related internships:

When filling out the application, the most important part is your resume, since that’s what recruiters look at to potentially advance you to the next round. Some companies ask for an optional cover letter, but don’t worry about this! Recruiters rarely look at cover letters.

Cold Emails

You can also reach out to recruiters directly by cold emailing them. Finding a recruiter’s email can be tough, so it can be helpful to ask friends who have worked at the company before for contact information.

In the body of the message, state your intention of applying for an internship and attach your resume. If you do this for a larger company, the recruiter may respond by telling you to apply online, but more often than not, the recruiter may place you directly into the recruiting pipeline!

Coding Challenges

Many companies will email you a coding challenge automatically after submitting an application or once a recruiter has reviewed your application. Coding challenges can be hard since the emphasis is on getting questions right, and you can’t discuss ideas with an interviewer. As a result, it largely boils down to preparation.

Format

Once you start the challenge, you’ll have a limited amount of time to get through all the questions. As a result, make sure you block out time in your schedule so that you have the full time period to tackle all of the questions.

There are generally 3–5 questions. You usually have access to all the questions once you start the timer, so feel free to read through each problem statement and start with the one you’re most comfortable with. There will generally be a code editor for you to type your solution on the coding challenge website.

Once you’re done, there’s a section to execute your code. Your results will show you how many of the hidden/visible test cases that you passed. There’s no penalty for editing and running your code, so feel free to use the test option as many times as you need!

After you’ve submitted your code, you’ll hear back from your recruiter about the next steps.

Preparation

You’ll want to become familiar with your language of choice as well as the types of problems that you’ll encounter in coding challenges.

Leetcode is a popular website whose primary purpose is interview preparation with coding challenge type questions. Once you choose a question, you’ll be presented with an interface that is similar to that of an actual coding challenge. There are sections for discussions and official solutions for each problem, which you can check for inspiration after trying a problem. We recommend a coding challenge preparation method that mostly involves Leetcode since that’s the closest you can get to actual coding challenges. Consistently working on problems each day gives results faster than grinding for hours once a week!

Project Euler contains more “mathematical” CS problems. Many of the later questions are extremely difficult. Solving the first 50 should be sufficient.

Cracking the Coding Interview by Gayle Laakmann McDowell is considered the holy book of preparing for coding challenges and technical interviews. The book is based in Java but the concepts taught are applicable to any programming language!

Taking your school’s Algorithms or Data Structures Course can be helpful. Taking a course is a semester-long commitment, so an alternative could be to read through the relevant textbook and do the homework assignments on your own. We recommend looking through UC Berkeley’s CS 170’s textbook and homework assignments.

The Actual Challenge

There are few things to keep in mind when doing the actual coding challenge:

  • Make sure you block out the entire time of the challenge so you’ll be able to use every minute.
  • Questions may not be in order of difficulty!
  • Try to pass as many test cases of problems as you can, though don’t worry if a problem is difficult and you can’t do it. It can be valuable to move onto the next question if you’re missing only a few pesky test cases.
  • If you have time to spare after the challenge, it can be helpful to quickly clean up your code. When reviewing your application, companies will often be able to see a timelapse of you writing code, testing it on your personal test cases, and running it on the official tester.

The best way to prepare for coding challenges is to practice mindfully and consistently. We highly recommend starting your coding challenge preparation early!

Closing Thoughts

In some ways, the application round is the hardest part of the recruiting process due to the robotic nature of submitting the same information over and over again in an online application.

As the last step before recruiter screens and interviews, coding challenges can also be insignificant in deciding who gets into the next round. There are companies that cut those who get perfect scores and advance those who didn’t pass all the test cases. Don’t be disheartened if you get rejected at this point because it might come down to luck!

Stay tuned to learn more about the next steps of the SWE recruiting process! In our next article, we’ll talk about how you can be a S-T-A-R and ace your technical and behavioral interviews.

Written by Nagaganesh Jaladanki

Edited by Emily Su, Stephanie Xiao, and Lily Yang

--

--

Codebase
Berkeley Codebase

Software development @ UC Berkeley — Building a community for meaningful industry impact. https://codebase.berkeley.edu/