How to Land Your First Software Engineering Internship

Advice to college students of all ages on the most important steps to take in securing your first internship

Sandeep Namburi
14 min readMar 18, 2020

--

If you are reading this, then you must be a high school or college student looking to attain your first internship in tech. Over the years, I’ve developed a few set of strategies that greatly improved my chances of landing an internship. In this three-part series, I generalize a little bit of my personal experience and talk about proven strategies for applying and interviewing. My objective is to focus on some of the things that I do differently in my career search; more specifically, I mention unique points that really helped me and my peers out — information that I couldn’t find elsewhere. Therefore, it’s crucial that you read every sentence as there are details you wouldn’t want to miss. I guarantee that setting aside just 15 minutes and following the indispensable advice from this article will monumentally increase your chances of snagging those interviews. If you haven’t applied to any internships yet, aren’t receiving many call-backs, or want to aim high for the internships at the top tech companies, then this article is for you.

About Me

First, let’s get a few things out of the way. There are a lot of articles from qualified individuals about how they landed internships at Google, Facebook, or Amazon. However, most of them simply talk about how much they’ve studied or the number of algorithm problems they’ve completed. They fail to underscore on the numerous other criteria that are just as important to landing interviews. To establish some credibility, prior to my completion of my undergraduate degree, I’ve received over 15 offers and over 40 interview calls from companies/organizations such as Amazon, Google, Walmart Labs, NSA, Nasdaq, VMware, etc. I’m no where close to being considered a genius. All I’ve done to attain all these offers was to have a positive attitude and and follow a set of proven, yet unique, strategies. I’ve detailedly elaborated on these strategies for any candidate to succeed in his or her internship search. I call them the 8 Critical Elements to a Successful Candidate. Here is a little about me:

  • I didn’t have any software engineering experience prior to first internship. My most advanced knowledge in computer science was creating a for-loop statement.
  • I didn’t go to an ivy league university. I attend a no-name school. I simply had a dream of making it into a tech giant one day.
  • My GPA is far below average.
  • I did not spend a penny for any premium career services or tutoring.

However, before getting offers from these higher-tiered tech companies, I’ve attained internship offers from companies such as Bank of America, USAA, Raytheon, Thomson Reuters, State Farm, and Liberty Mutual. I will first talk about how to start off your career search with these companies in the 8 Critical Elements to a Successful Candidate section. If you want to target the tech giants such as Google, Facebook, or Amazon, then you need to put in much more effort. Along with the 8 Critical Elements to a Successful Candidate section that follows, I have a special article for you here. Make sure you read both.

Evidently, my goal out of this article is to change your mindset so that your routine will follow. Therefore, I highly recommend reading this article chronologically and thoroughly.

Why an Internship is Important

I can’t count the number of people who came up to me and said: “I’m not applying for an internship this year because I don’t have the necessary skillset or confidence.

If you are one of these people, eradicate this thought right now. An internship is all about gaining experience. An internship enables you to gain first-hand exposure of working with software systems in the real world no matter what your experience is. It allows students to harness the skills, knowledge, and theoretical practice you get exposure to in your coursework. In other words, companies only expect very minimal practical experience. It’s never too early or too late to apply for internships. Consequently, DO NOT wait a year before you start your internship search! I can guarantee that over ~90% of tech internships do not require experience in a certain skillset. They assess you as a candidate based on your past work experience, coursework, technical projects, leadership abilities, and generic ability to write code. They are not specifically looking for Node.js experts or full-stack engineers. While having those skills would be very valuable during your search, it’s definitely not a requirement. Once again if you would like an internship, don’t wait to start applying and networking. It DOES NOT matter if you’re a freshman or a junior.

Get ready! We are about to dive into the filet minion of an internship search.

The 8 Critical Elements to a Successful Candidate

Before we begin, ensure that you are exposing yourself to as many opportunities to improve your portfolio as much as possible. For instance, Amazon hires all technical majors for various other positions such as: Cloud Support Engineer Intern, Solutions Architect Intern, Data Engineer Intern, Business Intelligence Engineer Intern, etc. If your curiosity aligns with some of the hundreds of non-SWE technical internship positions out there, it’s critical to consider them in your search. These positions often have a smaller competitive pool and can glean you lucrative opportunities to specialize in high demand skillsets.

1. The Resume

Keep it to one page (single-sided). Keep it basic. Avoid templates. Don’t use any fancy fonts, pictures, or arcane styling. Don’t include any achievements from high school unless they directly relate to the jobs you’re applying to. No hiring manager will immediately exclaim at pre-university experiences involving varsity athletics or club leadership positions.

I see many students pondering on the assumption that companies are going to double check every project, work/leadership experience, and even GPA. When you submit an application, most companies use software to scrape important data without a human ever looking at it. This is the pre-screening process prior to a potential interview call. Once you’ve passed the pre-screening process and a recruiter or hiring manager glances at your resume, he/she often won’t spend a mere 10 seconds before making a decision. Why am I telling you this? It’s because your resume should be able to answer a simple question within the first glance of someone reviewing it: will value will this candidate provide to a company?

Get your professors or campus career center to look over your resume. Likely, they can review your resume from the perspective of a recruiter and provide invaluable advice. A simple Google search can also yield tons of examples of well-formed software engineering intern resumes. Click here for an excellent example of an applicant’s resume. In this example, the candidate lists only the relevant criteria that demonstrates how they can add value to a company.

Here’s a common resume structure that many successful internship applicants follow:

  • Intro: Have a line or two that describes exactly what you are looking for and why you would be a good fit for the internship you are applying for. I would name this section as Career Summary or Qualifications Summary. Here are some great intros for inspiration.
  • Education: Since you are currently in school, your education section should be next. Include the name of your university, major(s)/minor(s), current standing, graduation date, GPA, and any specific scholarships or honors you’ve received. If you are a freshman based on tenured years in your university enrollment, but sophomore based on university credits, then your resume state that you’re a sophomore. I can’t stress how many opportunities are lost by college students because they list their school-year standing rather than their credit-based standing. Even if you do graduate after your expected date on your resume, there is nothing to worry. Companies are more than aware that students’ graduation dates fluctuate. It doesn’t look bad at all.
  • Technical Skills: Simply list out your technical skillet. Feel free to add softwares/IDEs/APIs you have experience with such a PyCharm, Visual Studio, Tableau, or IntelliJ. I would strongly recommend having intermediate experience in 1–2 programing languages and software tools.
  • Work/Volunteer Experience: If you don’t have any technical work experience or tutoring experience related to concepts such as Computer Science or Mathematics, I would switch this section with the following Projects section. However, if you hold a leadership position at a technical club or organization at your school, you can list it here as well. In the description of the experience, make sure to focus on your technical achievements related to this position. For instance, if you have a created a website for your club you could say something along the lines of: developed an end-to-end, dynamic multi-page website using HTML5, CSS, and JavaScript (ES6), resulting in a 40% increase in new members. During your interview, make sure you’re able to talk about what you did in more depth. Lastly, list numbers, percentages, and any other quantifiable metrics. Recruiters and hiring managers love seeing measures that indicate how much value you’ve provided in your position. These metrics can be app downloads, revenues, user enrollment statistics, process efficiency improvements, etc. Including quantifiable metrics can significantly increase the chances of a real person looking at your resume.
  • Projects: This is literally one of the most crucial sections of your resume. If you don’t have any prior internship experience, I would have at least 2–3 technical projects listed on your resume. I will talk more about this later.
  • Club Memberships and Leadership Positions: Companies want see your interests and leadership positions. Strong leadership is directly synonymous to well-performing teams. They want to know that you have a personality and can motivate sluggers in your team.
  • Certificates, Academic Achievements, or References: If you want to show the company that you’ve successfully completed a Udemy course in full-stack development or won a hackathon, this is the section to illustrate that. You can also list professional references who would vouch for your skills and work ethic.

Moreover, I also consider attaching a cover letter to your application. Many students neglect attaching a cover letter. Nevertheless, it’s a fantastic way to illustrate your skills, work ethic, work experiences, leadership positions, and accomplishments. Cover letters also emphasize motivation that you’re willing to take an extra step than the average candidate. Research clearly indicates that applications with a cover letter are more likely to get selected for the initial round of interviews. Here is a resource that describes how to create a cover letter with an example.

2. GitHub (Projects)

Having projects isn’t just another section on your resume. It’s the lean meat to your chances of getting that interview call. Companies want to know how you’ve applied your theoretical knowledge from coursework to build something tangible.

Make sure to give a brief summary of what the project accomplished and the technical languages/tools you used in development. To be very clear, any time you spent writing code counts as a project. Aggregate a list of projects from courses, personal curiosity, and/or hackathons. It doesn’t matter if you completely finished, partially finished, or completely failed. Select the top 2–4 projects to be listed on your resume based on complexity and your present knowledge. Here’s an example of a well-structured Projects section from a former Software Engineer Intern at Uber.

This is a snippet of part of a resume. This snippet has been obtained with permission.

If you don’t have any projects, it’s important to start exploring as soon as possible. I can’t stress how important projects are for your resume especially if you want an internship. Projects directly underscore candidates’ interest towards their field and their willingness to learn.

Furthermore, make sure you’re familiar with GitHub and Git (version control system). Get on GitHub as soon as possible and start uploading your projects. From a recruiter’s perspective, a person with 8–10 finished or unfinished projects on GitHub is extensively more qualified than a 4.0 GPA candidate with just one project to show for. It’s also a great idea to find open source projects on GitHub and find small ways to contribute (i.e. adding a feature, fixing a bug, etc.). Once you have a consolidated GitHub portfolio, go ahead and attach the link on your resume.

Click here to view an excellent resource on the importance and how to start your own technical side projects. You can also click here to visit this GitHub repo with tons of project ideas touching many different categories. Furthermore, many online education providers such as Udemy and Codecademy have courses that allow you to build some fancy projects as you’re learning.

Photo by Brad Neathery on Unsplash

3. Start Early

When you’re looking for a software engineering internship, it’s crucial to start early. Even if companies claim to be hiring year-round or have rolling applications, still apply early. Don’t wait for your university’s career fair to start your application process. You should commence with the application process as soon as positions open up. Some applications open as early as a full calendar year prior to the job start date.

4. LinkedIn (Networking)

Click here to view an article I’ve wrote that scrupulously explains how anyone can use a LinkedIn profile to increase the chances of attaining interviews.

Image from Claremont McKenna College (https://www.cmc.edu/)

5. Career Fair

I want to stress how important it is to attend your campus career fair. Resumes submitted directly to recruiters and engineers at the career fair can increase chances of getting selected to interview by 1000%. Recruiters want to shortlist candidates as soon as they can and career fairs provide them with this opportunity. Therefore, ATTEND YOUR CAMPUS CAREER FAIR AND BE READY TO SPEAK.

Photo by Chris Ried on Unsplash

6. Coding Challenges

You will have a technical round of interviews. Some companies don’t specifically ask you to code, however, some center their entire interview on this ability. Nevertheless, it’s always important to be proficient in coding challenges as well as technical concepts.

If you’re applying to internships at financial firms and banks such as Fidelity, JPMorgan, or Charles Schwab, then you wouldn’t be assessed with very difficult coding challenges. Click here to view some of the coding challenges asked by companies across this category. There are many resources out there such as Leetcode to help you prepare for coding challenges. However, if you’re applying to a competitive tech company such as Google, Amazon, RedFin, or Facebook, then you should be a master in understanding data structures, designing algorithms, and coding challenges. Read the following Unicorns and The Big N section to learn more.

Photo by Ian Schneider on Unsplash

7. Standing Out

While all these steps allow you to stand out, there is much more you can learn and invest time in to be an even stronger candidate.

  • Hackathons: A hackathon is an event, usually hosted by a company or university, where programmers get together for 12–48 hours to build and collaborate on a software project. Hackathons are a great way to learn new programming skills, network with top companies, travel the country for free, and win prizes.
  • Certifications: There are many valuable skills and certifications that would add tremendous value to your portfolio. You can complete a Udemy course and attach the certificate on your resume. You can also look into AWS or Google Cloud certifications and get real-world knowledge architecting systems on the cloud. You can even take courses towards a minor on the subject of your interest.
  • Cover Letter: Research suggests that employers favor applications that are accompanied with a cover letter, making it a critical component of your internship-search strategy. A simple Google search of software engineering internship cover letter can yield hundreds of examples.
  • Personal Website: A website is a great way for a recruiter to visualize your passion for software development. Your website, like your resume, should be clean and simple. However, it should also underscore your projects, experiences, and personality. Make sure to provide a picture, description, and link to your GitHub repository for every listed project. You can use drag-and-drop website editors such as Wix or use dynamic HTML5 templates from platforms like HTML5 UP.
  • Academic Achievements: While your GPA is just a single line on your resume, it never hurts to aim high academically and professionally. Companies factor higher GPA amongst candidates who have similar professional achievements.

8. Applying

Graph Courtesy of TalentWorks

The earlier you are in your school year, the more positions you should be applying to. I’ve applied to over a 100 positions my sophomore year and heard back from merely 3 companies. Applying to at least a 100 internship positions can exponentially increase your chances of landing an interview. Use your portfolio to your advantage. If you do get rejected, so be it! You have next year to try again. Recruiters love returning applicants. It shows them exactly how dedicated you are.

Moreover, try to submit applications in the morning. Data suggest that firing your applications in the middle of the day, evening, or night should be abstained from. TalentWorks, an employment platform, hypothesized whether application timing correlated with chances of snagging an interview. And boy, did it more than ever!

Applicants who submit between 6 a.m. and 10 a.m. have over a 10% chance to getting an interview. Look at the chart above for other favorable times to send in your application.

Evidently, there is a lot of unconscious bias in the recruitment process. Following all the tips in this section will instrumentally increase your chances of landing an interview.

Unicorns and The Big N

The top, highest paying and most notable tech companies are known as Big N companies and unicorns. On the same note, a unicorn company is a private company with a valuation of over $1 billion. Facebook, Amazon, and Google are examples of Big N companies while Airbnb, Stripe, and Palantir are considered as unicorn companies.

However, don’t be intrigued by the central locations, perks, or salaries these companies tend to have. Prestige is in the eye of the beholder. These companies have a very rigorous and selective recruitment process. They can also comes with long work hours, completely tech-focused domain knowledge, and extremely high expectations. The average person can take months to be accustomed to the format and technical requirements of these interviews. All in all, my point is to not prepare for these companies because of the pay or prestige. Rather, you should prepare to interview for these companies if you are specifically passionate to work on globally scalable software and aspire to be a technical domain expert in the long-term. You should be self-motivated and curious to study the gut-wrenching algorithmic and system design questions they will ask. I have created a 5-step process to plan out your resources and time to prepare interviews with these companies. View my must-read article here and I guarantee that audiences of all age and skill-level will learn something new.

Conclusion

Companies really love interns. Why? Companies can both gain business productivity and convert candidates to full-time roles based on an extended period of evaluation. There’s a higher conversion rate for interns to full-time candidates than in any other kind of recruitment process. Graduating interns have a head-start knowledge of a lot of the infrastructure, code, and business practices, saving companies money in the long run.

In the end, the job search is a game of failure, persistence, and triumph. You ultimately need to create your own luck. Luck is nothing other than a scenario when preparedness meets opportunity. Therefore, the internship search all boils down to four factors.

  1. Learn technical skills and build projects. Be obsessed with learning.
  2. Focus on creating a strong portfolio.
  3. Next, apply to at least a 100 software engineering internship positions across the country.
  4. Finally, wait for luck to fill in the gaps.

The time you put in now towards your career will save you triple the amount of time 5 years from now.

Thank you so much for making it this far in the article. If you have any questions or would like to make a connection, feel free to contact me via the submission form located on my website: sandeepnamburi.github.io.

--

--

Sandeep Namburi

A full-time basketball player, graphic designer, blogger, and public speaker — during my spare time, I’m a Cloud Architect @ Amazon