Disclaimer: All of the opinions in this article are completely my own and are not affiliated with any company.

So, you’re interested in coding and want to learn about how to land a software engineering (SWE) internship? Maybe you’re in college, self-taught or from a bootcamp, regardless internships are incredibly valuable. Software engineering internships can give you experience working in different areas (mobile, web, security, site reliability), compensate you well and let you network while also building relationships with companies that can lead to full-time offers. They are typically 8–12 weeks and while most are for the summer, they can occur during the fall, winter or spring too. Finding software engineering internships can really be broken into two major phases: getting an interview and passing one. We’ll be going over one of the most important things you’ll need to land an internship; a good resume. This article will also cover some alternatives to traditional industry internships, resources for finding internships and more.

Getting an interview

Image for post

Photo by Glenn Carstens-Peters on Unsplash

The first step to finding a software engineering internship is creating a good resume. As a freshman, you might find this especially difficult like I did since you likely have only been coding for a semester, may not have a GPA and don’t know what to add but I’ll highlight this later. In general while you’re in school you want your education section to be near the top of your resume and to have your GPA listed if its over a 3.0. If your GPA is low (<3.0) it’s best to leave it off since most employers like to see at least a 3.0 but most will never ask you directly, although in my experience most internships applications ask for a GPA so it can be hard to avoid. People sometimes put their major GPA instead of their cumulative GPA if it’s higher and mention the type of GPA on their resume. If you’re only a freshman in your first semester and don’t have a GPA yet that’s normal you can just list your university you’re currently attending or a bootcamp if you’re not enrolled in a university.

I think it’s good to look at a high GPA (>= 3.5) as icing on the cake. A high GPA can send strong signals to an employer especially if you don’t have much experience (like being a freshman or a recent grad) but when looking at other things like work experience, projects (personal, open source contributions), hackathons and leadership experience which makes up the cake it’s a lot less important. Regardless I would try getting the highest GPA you can while maintaining your sanity and doing others things to make yourself employable like developing a solid understanding of programming and doing internships. Computer science is thankfully very meritocratic in many ways so even if you don’t go to a well-known university (or one at all), have a low GPA or have any referrals you can still break into the industry and land an internship by doing well in coding/behavioral interviews. Not having those will definitely make it harder but hard work and persistence will pay off.

Listing computer science courses you’ve taken is a great way to show recruiters or engineers who happen to look at your resume what CS domains you know and what you can be tested on during an interview. When listing course names abbreviate and avoid course numbers. For example:

Courses: CSIT 110: Fundamentals of Programming I in Java (Current) // Bad

Courses: Fundamentals of Programming I (Current) // Good

Say you’re taking a computer networking course and some internships you’ve looked at want students who know about computer networking concepts, should you list a course even if you’re currently taking it? Yes, for courses you’re currently taking you can add the words “Current”, “Currently enrolled” or “In progress” in parenthesis after the course.

You can add clubs to your resume especially if they are relevant to CS or you have a specific role (president, marketer, treasurer). Hackathons are coding competitions typically lasting around 24 hours, have prizes and are great networking events for students. Not only can you code something cool (Uber for horses, Instagram clone), your side project can show passion and commitment to learning that extends beyond the classroom and can be a conversation starter if it’s on your resume. If you win especially at a large hackathon, it can show competency and that you’re coding-interview ready. Winning at a hackathon hosted by a company can often get you an interview there. If you do go to a hackathon, you’ll be uploading your code to GitHub publicly, so others and potentially employers can see. GitHub if you don’t know, is just a website used for sharing code and collaborating on projects. Clubs and hackathons can show you’re well-rounded and can give your resume more personality to stand out. You can add this to your education section or make it its own section.

Doing side projects, outside of fast paced hackathons is a solid resume builder. Side projects let you put the knowledge from class into the real world. It’s the difference between learning about inheritance and code reuse in your textbook, to creating well-designed child classes which call parent methods to follow Object-Oriented Principles which re-use your existing code. Side projects help you exercise your skills to back up your claim of knowing how to code. Although side projects are great to have on your resume, they aren’t essential. Many employers like to see them but they probably won’t visit your GitHub and see your code at all. You don’t need to spend time creating several side projects in order to get an internship. Listing school projects you’ve done on your resume is enough. It’s really about quality over quantity and coding with the intention of developing your skills and not solely doing projects just to put on your resume. Basically, have fun with side projects which are nice but not required! Whatever projects you do, make sure to clean up the code (indentation, variable/method/class names), upload it to GitHub and add your profile link to your resume. Also add the languages or technologies you used to create the project.

Foodstagram (Swift, Python, Django)

  • Created an instagram-like application that allows users to share pictures of food, geotag restaurant locations and receive restaurant recommendations

Work experience is the most important part of your resume but you might be thinking, “my work experience isn’t relevant because I’m looking for work experience with a software engineering internship”. That’s okay, list whatever experience you have, whether it’s from retail or babysitting. Non technical jobs teach transferable skills like how to handle difficult clients and time management. For your experiences make sure to avoid using generic names that give little context about a job such as “Student Assistant” and use more specific job titles instead like “Admission Tour Guide”. If you already had a SWE internship and want more tips, avoiding generic names is especially important for SWE related internships. Companies frequently use very specific job titles like “Technology Product Analyst Intern” which are really just “Software Engineering Intern” positions in disguise. You want to stick with common position names, understandable to anyone outside of that company. When writing experience pay attention to the tense as current positions should be in the present and old ones in the past tense. Vary your use of starting action verbs on each bullet point, with words like learned, created and managed. Be concise and focus on impact. Instead of saying you did some task, quantify tasks and mention a statistic if possible that shows the impact.

  • Tutored kids in a variety of subjects ranging from math to computer science (Before)
  • Tutored and mentored over 3 kids a day in a variety of subjects and helped kids score an average of 24% higher on the subsequent test (After)

Other resume formatting tips include having a LinkedIn and GitHub profile link on your resume and using a professional email, preferably involving your first and last name like: firstname.lastname@gmail.com

In your skills section you can add languages you know and their **proficiencies **(Proficient or Familiar) along with other categories like “Technologies”, “Tools” or “Additional” to highlight other skills that aren’t programming languages. A one page resume in either PDF or Word format is the standard. I would personally try to avoid fancy templates if applying online (ok in person), simply to avoid getting filtered out by the Application Tracking System (ATS). You can check how parsable your resume is, by seeing how well your application is autofilled when you apply to jobs. If your fancy resume template parses well, you can keep on using it otherwise you can stick to a safe and plain resume template.

Once you’re done with your resume you can start applying on popular job boards.

#job-hunting #internships #software-engineering #software-development #interview

How to get a Software Engineering Internship 💻
1.55 GEEK