Design Pattern Evangelist Blog

Smart pointers about software design

Maintained by Jim Humelsine | Table of Contents | RSS Feed | Edit on GitHub

Steps to Obtain a Software Engineering Internship

Getting an Internship is a Lot Like Dating


Introduction

This post is for Computer Science undergraduates seeking their first Software Engineering internship. In the first blog entry of this series, You Studied Computer Science. Your Career Will Be Software Engineering, I highlighted that Software Engineering is related to but separate from Computer Science. An internship is often the first place where a fledgling software developer first encounters Software Engineering.

Internships are a great opportunity to:

The trick is being able to get the internship in the first place.

In several ways, obtaining an internship, or any job for that matter, is a lot like dating.

Preparation

Be prepared before seeking out an internship.

Your Résumé

You should have a solid résumé. Your résumé does not get you the job. It gets you the interview. It’s sort of like a profile on a dating app. You want to be interesting enough for someone to contact you.

A résumé generally contains your:

Follow current industry norms and your university’s guidance.

It should be no more than one page in length.

If you’re not sure where to start, there are many résumé examples and templates online. Generative AI can help give you some ideas as well.

NOTE: Generative AI recommendations will appear repeatedly in this blog.

If your university has a Career Center, ask someone there to take a look at your résumé, but be prepared. Everyone has an opinion when it comes to résumés. If you ask ten people to look over your résumé, you’re likely to get eleven different opinions.

Take all recommendations with a grain of salt. If you feel comfortable with and like a suggestion, then use it. If you don’t, then ignore it. This is your résumé. It’s your story. You have the final say. You must feel comfortable with it.

Many companies use Applicant Tracking Systems to filter résumés. Align your résumé with the language in the job description when appropriate. Do not stuff every keyword/buzzword in the job description in your résumé, but ensure relevant skills are clearly stated.

Some companies use GPA as a screening tool. If yours is lower, emphasize projects, experience, and growth.

Final checklist:

Social Media

Clean up your social media.

Complete your LinkedIn profile and make sure it’s up to date.

Your Elevator Pitch

In addition to a résumé, you should also have a 30-second elevator pitch.

An elevator pitch is the quick response to the question, “Can you tell me a bit about yourself?” The term “elevator pitch” is inspired by the scenario where you step onto an elevator to realize that you’re sharing the space with the CEO of your dream company. You have about 30 seconds before reaching the CEO’s floor. How can you pitch yourself succinctly before reaching the floor? This is like the 2-minute pitch where a filmmaker has two minutes to convince a producer to support his/her passion project.

If a résumé is like a dating profile, then an elevator pitch is like a speed dating conversation.

You should be prepared, but don’t memorize it. That is, you want it to sound natural.

Here’s a generic example:

I’m John Smith at State University. I’m a rising junior majoring in Computer Science with a minor in Mathematics. My favorite classes have been Data Structures and Algorithms, Programming Languages and Game Theory.

I am interested in an internship so that I can better learn how the skills I’m obtaining at State can be used in industry as well as learning practical Software Engineering skills that aren’t necessarily taught in a university setting.

Here’s an interesting TED talk take on the elevator pitch: How to Introduce Yourself and Get Hired by Rebecca Okamoto from April 2025.

Company Research

Internship offers generally won’t appear out of the blue. You’ll have some time to research the company that may offer you an internship. The internet has made this much easier than when I was a student. I suspect that most companies have a public website with some information about their industry.

I worked with interns at my last company. Our college recruiter said that there were two traits she was always looking for in interns:

Being able to talk to an interviewer about their company or industry shows that you have an interest in them.

This research will help you prioritize which companies to approach for internship offers.

It will also help you narrow your search. For example, strong personal beliefs may eliminate companies in some industries, such as tobacco, firearms, non-environmentally friendly energy, and defense industries.

Customize your résumé for roles you care about most. Don’t blindly mass-apply without reading the job descriptions. Track which résumé version you used.

Prepared Questions

Most interviewers will ask you if you have any questions at some point during the interview. Always have a few questions ready to ask.

The best questions are those that arise naturally from your conversation with the interviewer. For example, they may describe something about their company or industry. If you can ask a good follow up question, that’s great. It shows interest, and it also demonstrates that you’re actively involved in the interview.

Organic questions don’t always materialize in the interview. The next best type of questions would be those you come up with ahead of time based upon your company research. These could be questions about their products, customers, challenges, etc.

The final type of questions is generic, but still valuable. You can easily catalog a set of these to use on multiple interviews. Here are some possible questions about business domain:

Here are some possible questions about the internship:

Search for internship questions on the internet as well as ask Generative AI to generate a few for you. You’ll need to weed through these results to find questions that feel comfortable to you, but you may find a few that you really like.

If the interviewer repeatedly asks you if you have any additional questions, you can usually decline after they have already answered a few. You don’t have to keep asking questions indefinitely just to ask questions.

Don’t ask questions that have already been addressed, unless it’s a follow up question for additional detail or clarification.

Practice

When I was wrapping my master’s degree and interviewing for jobs, I noticed that several of my fellow Teaching Assistants were freaking out about their interviews, especially with major companies. Some were practically having panic attacks.

These were mostly the initial on-campus informal interviews. What was wrong with them? An interview just felt like a natural conversation to me.

It was a few years later when I realized that I had years of interview practice under my belt without realizing it. I had advanced through the ranks in the Boy Scouts of America. Each new rank promotion included two interviews:

Most kids passed, but a few had to regroup and try again.

A question about any previous Scout achievement was fair game:

When you’ve gone through a process like this as a teenager, job interviews don’t feel nearly as intimidating.

Practice makes perfect. Not everyone goes through the Scouting process. There are other alternatives.

Friends

Many of your classmates are going through the same internship interview process as you. Set up mock interviews among each other.

If you know someone in your major who’s a year or two older than you and has already been through the process, then see if that person is willing to do a mock interview with you.

Career Center

If your university has a Career Center, they will often offer mock interviews. Schedule one or more there.

Generative AI

Consider leveraging an LLM, such as ChatGPT, to research the companies. Here is a potential prompt script, where you can insert any company you desire:

You are a campus recruiter for IBM seeking software engineering summer interns.

I am a computer science sophomore who wishes to land an internship with your company.

Interview me in a mock interview for a software internship position.

When the interview is over, summarize my performance.

This may not be the best prompt, but it can easily be adjusted. Even if imperfect, it gives you a safe environment to practice.

Consider adding these to the practice prompt:

Online Mock Interviews

Search for mock interview videos online. They won’t be interactive, but they will give you a sense of what to expect.

Public Speaking

Interviews can be a bit nerve wracking. Mock interviews not only allow you to simulate interviews, but they also help you become more comfortable speaking in front of others.

Another path to take is public speaking. If you can stand in front of multiple people and make your case, then you can certainly do it for an interview.

Consider public speaking opportunities.

Things Go Wrong

Even with practice and confidence things go wrong. I was thrown off during two interviews. For one, I got lost on the way to the hotel the evening before and arrived well after midnight. For the second one, my luggage, including my interview suit, was lost by the airline. It arrived at 6:00 AM. Additionally, my interviewer didn’t arrive when expected. A scheduling mix-up on their end left me stranded until mid-morning.

Both interview days started early for me. Both issues had limited my sleep. I was exhausted. Neither of those interviews went well. I was not extended offers. It was not the end of the world.

Exposure

Once you’ve prepared your materials, the next step is exposure.

Larger companies will tend to recruit in early fall, September-November, for summer positions. Apply early. Many internship roles are filled on a rolling basis. Some positions may be filled by September.

Smaller companies will tend to recruit in winter and early spring, January–April.

Apply broadly and keep your eyes open for potential opportunities throughout the year.

Much like the dating world, the trick is finding each other.

You may apply to dozens of internships before landing an interview. That’s normal. Do not interpret silence as failure. Keep a simple tracking spreadsheet. Treat it like a pipeline. Do not emotionally attach to any single application. Companies receive hundreds of applications for a handful of spots.

Attend Career Fairs

Attend any on-campus or virtual career day. These are companies looking for interns. That’s your best bet to find an internship. You just need to convince them that you’re the best person to fill one of their slots. If you know which companies are attending, look over the list. Find a few that look interesting and make sure you visit their recruiters but keep your eyes open for other interesting opportunities too.

Look professional. You don’t need to dress like a lawyer, but don’t look like you just rolled out of bed. For men, I would suggest a dress shirt and tie and possibly a sports jacket if you have one. For women, the equivalent business attire. Be well groomed as well.

Interactions tend to be quick. This is where a good résumé and a solid elevator pitch are useful.

Be ready for the question, “Why do you want to intern here?” I dislike this question because the honest answer is usually, “I want a paying job for the summer,” but you can’t really say that.

Here is one possible answer: “I’m learning the theoretical aspect of computer science. I want to see how it applies to software engineering in real world practice. The practice will provide context to understand the theory, and a better understanding of the theory will lay down the path toward better practice.”

You don’t need a canned memorized answer but just be prepared for something like this. If your answer includes something specific about the company, then that’s the best type of answer.

Your main goal at the career fair is to schedule a follow-up interview. Once the career fair recruiter has confirmed their interest, thank them and move on.

Leverage Your Network

My mother used to say, “It’s not what you know. It’s who you know.” Internal references and recommendations often help. My first summer job happened because my father worked at the company.

If you have friends or family in the industry, let them know you’re interested in an internship. Ask if they know of any opportunities.

If the career fair doesn’t pan out, you can turn to the internet. Google provides a Jobs API, which I described in Automate Your Job Search. The only distinction is that you’d want to include Internship within your Job query.

Once set up, Google will email you Internship opportunities that match your criteria.

Interview

You’ve found a company that’s interested in you. The next step is the interview.

If your résumé is like your dating profile, and your elevator pitch is like your speed dating conversation, then the interview is like going out on a date.

The interview is an opportunity for both recruiter and candidate to get to know each other. You are both evaluating each other.

The level of commitment isn’t as great for an internship as it is for a full-time position. An internship tends to last no more than 10-12 weeks. Therefore, the bar isn’t quite as high for interns.

The interview process tends to be shorter. A typical full-time interview process can easily include up to four interviews with each being an hour long. The internship process may only include two interviews, usually less than an hour long.

Cultural Fit

One of the interviews will be a cultural fit. Every company, and even many teams, in my career had their own culture. Those who meshed with the culture tended to do well. Those who didn’t mesh tended to feel out of place.

Likeability goes a long way. I can’t tell you how many times I was in a candidate evaluation, and the decision to offer or reject reduced to the candidate’s likeability.

Many of us spend more time with our coworkers than we do with our families. Some of my closest friends are coworkers I met years and even decades ago. We don’t always become close friends with our coworkers, but genuinely liking and respecting each other helps the team gel and work as a unit.

No one likes to work with an arrogant jerk even if they are a coding genius.

The hardest problem in computer science is not being an opinionated jerk about everything. ― Nick Takayama

Don’t be the arrogant/opinionated jerk, but you don’t need to be the life of the party either.

Be kind, respectful, and helpful. The rest will fall into place.

Likeability is more than just being pleasant. Software Engineering is a social discipline. Likeability is the grease that keeps the gears moving smoothly. Clear communication, humility, and responsiveness often matter more than raw algorithmic brilliance.

It’s building relationships. It’s helping others with technical issues who may return the favor when you need help. It’s the former coworker who lets you know about a great opportunity at their current company and thought of you.

Technical Interview

Another type of interview is the Technical Interview.

The Technical Interview determines whether you have the skills for the job.

The industry still debates how to conduct a truly effective technical interview, and I was part of that imperfect process during my career as an interviewer.

Internship interviews tend to emphasize potential over polish. Interns are not expected to know everything. They are expected to be teachable, curious, and dependable. Coachability and steady thinking under pressure often matter more than perfect answers.

When I interviewed interns, I was looking for someone with passion. I also knew that even if we made a mistake in hiring the wrong kid, they would only be with us for about three months. This wasn’t as much of an investment as it was with a permanent hire.

It’s very difficult to assess someone’s technical depth in a single 30-minute internship interview.

You may be asked to whiteboard a problem. This involves describing how you would approach a problem while standing at a whiteboard so that you can provide freehand illustrations, and possibly even hand-written code.

Whiteboarding is not about perfection in solving a problem. It is about structured thinking under mild pressure.

Whiteboarding in technical interviews is a bit unnatural, because in real Software Engineering we have:

The interviewer may throw you a curve ball. It may be a problem for which you don’t even know where to start.

Don’t Panic!

Here’s what to do:

Let’s use the LLM once more. You may want to be more specific, such as telling the LLM to focus upon Web based questions, or AI questions, or Computer Security questions, etc.:

Act as an interviewer conducting a technical interview for a summer internship position in software engineering.

Ask me appropriate technical questions, one at a time. Provide feedback on my answers.

Continue until I ask for a summary and then provide a summary of our interview.

Some companies require an online assessment before interviews. Treat these seriously and practice beforehand on common coding platforms.

Behavioral Interview (Story Time)

Interviewers will ask you about things you mention on your resume, especially your past work experiences.

A good way to make a favorable impression is to tell a good story. Have a story or two about your experience in teamwork, conflict, failure, leadership, etc.

Sometimes the interviewer may not reference a specific experience, but they may ask you something more generally, such as, “Tell me about a conflict you had and how you resolved it.”

An open question like this can feel more disorienting than a specific question, but its openness gives you flexibility and more options. It could be something that happened in your academic career, a previous job, team sport, etc. You may also be able to pivot the original request to the story you wish to tell. This is your story so make sure you’re the main character.

Interviewers may stump you even if unintentionally. You may be asked about something for which you don’t have a good story in mind. Take note of that deficit and try to come up with a story should you be asked a similar question in a future interview.

If you’re not sure how to tell your story, consider the STAR: Situation, Task, Action, Result method.

Follow Up

Follow up afterwards:

There may be additional interaction with recruiters:

Decision

You may interact with several companies during your internship process. Consider an Internship folder on your computer with subfolders for each company you’ve interacted with. The company subfolders could include artifacts such as:

You might receive multiple internship offers. Each offer is different. Consider the pros and cons of each offer. The company subfolders will help organize your thoughts. Decide which aspects are important to you.

Here are some factors to consider:

If these factors are important, ask about them during the interview, except for compensation. Most technical internships compensate interns, usually at a flat rate that is not negotiated. Do follow up about compensation with the intern recruiter, but it’s not a topic for the interview.

Sometimes the stars don’t align. You may get an offer that is an adjacent field. For example, Tommy, one of my Computer Science undergraduate mentees, received an internship that was closer to Data Science. Given the dearth of internship offers, I encouraged him to take it.

I asked him to review this blog entry, and I’m expanding this section based upon his reply, which included:

One thing I think I’ve learned would be to accept anything relatively related to what you want, even if it’s not the textbook “perfect opportunity”. For example, I took that offer which ended up giving me a great experience, a job offer and arguably most importantly, something I could talk in depth about in any potential future interview.

I technically also took a software engineering internship that wasn’t paid. Although it was a start up, which didn’t even get to officially release the app, my résumé says software engineering internship, and I can talk about it as if it was “the perfect opportunity” in interviews.

I guess what I’m really trying to say is that the biggest piece of advice I wish I was told when I was starting is to take advantage of any and all opportunities that come your way. Whether it was just being a Resident Assistant (RA) in the dorms, or something as genuine as my internships, I have been able to really talk myself up during interviews from them.

Even an unpaid internship like Tommy’s has value. Most undergrads pay thousands of dollars each semester to learn Computer Science. Think of an unpaid internship as a free education.

Regardless of what you choose, you can’t go wrong. You’ll learn something new. Even if it’s not a perfect fit, it’s only a three-month commitment.

Success

Congratulations. You received and accepted an internship offer.

In most of my experience with interns, their internship didn’t immerse them in a complete Software Engineering experience. They were given independent projects rather than working directly with a production team. This isn’t bad, but it’s not quite the same experience as a regular team member.

As for what to do during your internship:

Alternative Path

Sometimes the job market is like a game of musical chairs. The song stops, there’s a mad scramble, and you’re left standing.

Not everyone gets an internship. No one had internships in the summer of 2020 when COVID first hit. Companies may be struggling financially or reducing headcount.

An internship is valuable, but it is not the only path to becoming a strong Software Engineer.

If you find yourself without a traditional internship, look for opportunities with faculty. A professor may have some grant money to hire a research assistant for a semester.

Treat this period without an internship as an opportunity for independent study. Some possibilities are:

These ideas are not mutually exclusive. Many reinforce one another.

There are countless, often free, resources for all of these on the internet.

Include what you learned and accomplished in your résumé. Document what you produced in GitHub.

Full-Time Position Pipeline

Sometimes an internship is a three-month long interview. Many interns are given full-time offers upon graduation, but this isn’t always the case.

If you are interested in a full-time offer, make that known professionally toward the end of the internship. Do not assume they know. Express appreciation for the experience and ask what you would need to improve to be considered for a full-time role.

Many interns were offered full-time positions at my last company. My wife’s company, on the other hand, had an extensive internship program, but they never extended full-time offers.

Summary

I’ve used dating as a metaphor for the internship process. Receiving an internship offer is like starting a serious dating relationship with someone new. It may be a bit awkward at first, but you’ll settle into a routine.

And much like dating, the internship process can be a bit depressing. There can be a lot of rejection, but remember that in both dating and internships, you only need to find one match. You do not need every company to say yes. You only need one door to open.

Most strong students are rejected multiple times. Rejection is normal and rarely personal. Prepare well. Show up. Keep improving. Your opportunity will come.

Previous: You Studied Computer Science. Your Career Will Be Software Engineering.

Next: Acquiring and Onboarding Your First Job

Home: Design Pattern Evangelist Blog