What are Software Engineering Internships Like?
An internship in Software Engineering is a great way to preview what the career will be like day-to-day.
What is an internship?
Internships are a limited-time employment program that provides a professional learning experience.
Traditionally, in the US, they are short-term, usually 1-3 months. Interns are often university students working while on break from college courses (though, even if you're not a student, don't hestitate in seeking out an internship).
You'll find that some internships are unpaid, but that is uncommon for Software Engineering. I, personally, would never accept an unpaid internship. Good Software Engineers are in such good demand, it should be a red flag if an internship is unpaid.
From there, it's often about the particular company's program or philosophy toward internships.
Type of Work Software Engineering Interns do
In my experience, there are two main models that teams use for their interns.
Individual or small team project
One fairly common practice is giving the intern their own project to work on during all or most of the term of their internship. Usually, you'll find this at mid-to-large sized companies whose primary business is not software.
In my experience, this method lacks the team collaboration and communication that is so critical to success in software engineering. You will likely still learn something in this model, but working in a team of experienced Software Engineers will amplify your learning in a way that this project-based method cannot.
Embedded into engineering team
The other model is having the intern plug into a scrum team just as though they're another engineer on the team. I find that this is a better way for interns to gain experience working within a team environment, and, overall, paints a better picture of what the job is like.
Experienced engineering teams have been working with and learning from each other - and honing their craft for years. They know their tooling and technologies inside and out. They have specific and automated quality and deployment mechanisms. They have well-defined project work and a well-groomed backlog.
Imagine being plugged in to a team like that with welcoming arms. They'll teach you everything you need to know to be successful in your own little corner of the product in no time flat.
Look for Something Special
Look for companies that give some real thought and energy toward their internship program. Often, they'll have dedicated early-career personnel, such as a Campus Recruiting team.
Best-in-class internships will also pair you with a mentor. A colleague that is often early-career and even a former intern themselves. They'll be your #1 resource for navigating the program successfully.
The best internship programs will have curated networking and social events to connect with other interns and engineers.
The company may allow remote work, if that's something that interests you.
Mid-to-large sized companies may even offer temporary housing or housing assistance.
I'd recommend at least one internship with a software product company. Their processes and culture are highly tuned into the most modern tooling and practices of Software Engineering. If you're interested going to another industry later, you will have experienced what it's like to be a part of a highly-focused, best-in-class software product team.
Tips to find the best fit for you
- Ask the recruiter or hiring manager specific details about how the internship works. Does it vary by team or by manager?
- Share your interests. Are you most interested in learning about front-end technologies? Are you inspired to learn about Artificial Intelligence? Be specific and you may get exactly what you're looking for.
- Ask to speak directly with the manager of the team you'll be a part of. They're likely to have their own interpretation of the internship program or very special needs in terms of talent for an upcoming project. The manager will have the berst insight into what work is coming.
Tips for a successful internship
Once you've landed the job and are plugging in with the engineering team, get specific with your manager.
Use goals to agree upon what success looks like. I recommend drafting up 1-3 OKRs and getting feedback from your manager.
If there isn't a formal mentorship as a part of the internship, ask your manager to recommend a mentor for you.
Your #1 goal is to learn. Your #1 job is to ASK QUESTIONS! If you're not asking questions, you're not learning enough.