Your Guide to Landing Your Dream Software Engineering Internship

Christina Wang
13 min readJan 18, 2021

--

Hello, I’m Christina! I’m a CS/Econ double major at Swarthmore College. I’m an incoming software engineer intern at Salesforce and have past experience as a fellow with True Ventures. I wanted to share some wisdom from my recruiting experiences that I hope can be helpful to others embarking on their journey to becoming an engineer.

This is my guide for how to land the software engineer internship of your dreams. While I can’t promise you an internship, I hope this guide can give you some direction and clarity about the recruiting process. Each section will include an overview of some tips and advice, what you can expect, and some links to resources I’ve personally found useful. Thanks for reading, I hope this helps!

Here’s an outline of what I’ll be covering in this article:

  1. What is Software Engineering and Popular Fields Within It
  2. Comparisons Between Different Types of Companies
  3. Popular and Emerging Locations for Software Engineers
  4. Where to Find Internship Opportunities
  5. The Hiring Process
  6. Increasing Your Chances of Getting an Interview
  7. The Interview Process: How to Prepare and What You Can Expect
  8. Other Helpful Resources and Tips

What is Software Engineering?

Software engineers or “SWEs”, for short, are directly involved in the product development process and are the ones developing or coding the software. SWEs have extensive knowledge of programming languages, technology frameworks, computer systems, and computer science principles (such as data structures and algorithms). They apply this knowledge to every stage of the development process, from defining technical requirements to building the product.

Want to read this story later? Save it in Journal.

Software engineering encompasses many different fields and topics. Here’s a list of some popular disciplines and what they entail:

Web Development

Web development is the field that focuses on creating websites and the performance and capacity behind them. Within this field, there are three sub-fields: front-end, back-end, and full stack development.

  • Front-End Development: Front-end development refers to the client side or user interface. These developers build what users interact with and create the look of the website.
  • Back-End Development: Back-end development refers to the server side or the applications, infrastructure, and databases that work behind the scenes to power the components that enable the front-end or user-facing side of the website.
  • Full Stack Development: Full stack engineers work cross-functionally with both the front-end and back-end. They are viewed as a “jack-of-all-trades” and need to understand how the two sides integrate with each other.

Mobile Development

Mobile developers develop software for applications on smartphones or other mobile devices. The most popular fields within mobile engineering are Android and iOS applications.

DevOps Engineering

“DevOps” or developer operations engineers manage the application infrastructure and production pipelines so that software engineers can deploy their applications.

Security Engineering

Security engineers create systems, methods, and procedures to ensure the security of a software system. These “ethical hackers” test the security of a software system and exploit and fix security flaws and vulnerabilities.

QA or Software Engineer in Test

“QA” or quality assurance engineers validate the quality of a software application by creating automated tests and processes to ensure everything is running smoothly and properly before deployment.

Not sure if software engineering is for you? Check out this article about the diverse careers in tech!

Comparisons Between Different Types of Companies

As technology is becoming the forefront of society, the demand for software engineers is at an all time high. All companies need software engineers and here is how the role varies at each type of company:

Big Tech

These are the large, public companies that’s offerings consist almost entirely of software products. Leading companies in this category include FAANG (Facebook, Amazon, Apple, Netflix, Google), Salesforce, Microsoft, Adobe, and more. While it can be very competitive to recruit for and secure internships at these companies, the payout is worth it. In addition to having a great “name brand” on your resume, these companies are known for having the best benefits in the industry and the most fleshed out internship programs (you will definitely receive lots of swag and participate in fun outings). Salaries are among the best in the industry ($40/hr+) as well. However, since you are one out of the thousands of other engineers working at these massive corporations, you may not be as impactful as you may want to be. You will be working with proprietary frameworks and a large code base, so deployment processes will move slower and your projects will be smaller. Culture varies by company and team at these companies.

Startups

Startups are companies that are still finding their footing in the industry. This is the most broad category as anything from an idea to a venture-backed company raising series funding may be considered a startup. Salary will vary depending on the stage of funding the startup is at. Startup culture is often known to be intense and long hours, however, can also be extremely rewarding. Even though there may be little name recognition attached to these internships, you will have many opportunities to make meaningful contributions. Since startups are scrappy, you will be able to learn a lot and get a taste of entrepreneurship. Things move fast here and this includes opportunities to climb the corporate ladder.

Unicorns

Unicorn companies are startups that have a valuation of 1 billion dollars or more. Some companies in this category include Stripe, Robinhood, Figma, and Roblox. These companies are often mid-sized and this means that interns will be able to be more impactful. They often operate very similarly to big tech companies and have comparable salaries. However, the “name brand” may not be on par and the internship program may not be as well fleshed out compared to big tech companies.

Non-Software

It’s often a misconception that to be a software engineer, you need to work at a company that produces software. Whether it be creating a mobile ordering app for a restaurant or developing automated trading systems for a bank, all companies need software engineers. Working at a non-software company can provide a unique perspective to the applications of technology, but, they may not be the best place to grow as an engineer, as you will not be the core or focus of the business. Non-software companies will still pay software engineers great salaries, however, the benefits and work culture may not be as nice.

What is the Best Place to be a Software Engineer?

Popular Cities

Some of the most popular cities for software engineers include the San Francisco Bay Area, Seattle, New York City, Boston, Los Angeles, and Chicago. These cities are where large tech companies have established their offices at. As a result, it seems like engineering talent tends to aggregate around these hubs. While these cities offer the highest salaries for software engineers, it’s important to note that this is because of the high cost of living associated with these locations.

Emerging Cities

Some up-and-coming cities where tech companies have started to put down roots include Austin, Miami, Atlanta, and Denver. These cities currently offer a more medium cost of living, however, with the engineering talent in these cities are growing at a rapid rate, the cost of living may not stay like this for that much longer.

Where Can You Find Internship Opportunities?

Some general places you can find software engineering internships include LinkedIn, Handshake, Jumpstart, and company career pages.

  • LinkedIn is a great tool because of the LinkedIn “Jobs” section and the feed where recruiters may post about internship opportunities.
  • Handshake is a job board dedicated to college students and opportunities posted on here are from companies specifically wanting to hire from your school.
  • Jumpstart is another job board dedicated to students however, it goes one step further by providing a forum for students to communicate with each other and post questions. More and more recruiters seem to be engaging with students on this platform.
  • If there’s a company you are particularly interested in, make sure to monitor the company’s careers page. Most companies will have a specific page dedicated to university or internship postings and some even allow you to sign up for job alerts.

Since resources at startups are more sparse, they don’t always have a dedicated university recruiting team. This can make it tougher to find opportunities at these companies. Some popular websites to find startup internships include YCombinator’s workatastartup.com and AngelList’s angel.co. Many venture capital firms host job boards for their portfolio startups currently hiring and you may be able to find internship opportunities here as well. Here’s a spreadsheet that aggregates job boards from several VC firms.

Newsletters are another great place to find internship postings. Some of my personal favorites include Accelerated, Ladder, and Startup Search.

The Power of LinkedIn

LinkedIn is a popular social media networking site for industry professionals. While it’s not necessary to have a LinkedIn profile to get a good job, it’s great to have and can only help you through this process. Here are some reasons why:

  • The “Jobs” Section — LinkedIn curates a job board for you based on positions in your experience level and interest. All types of companies will post opportunities on here.
  • Your LinkedIn Feed — Connections can be extremely helpful when trying to get an internship. As more and more “LinkedIn influencers” have emerged, there is no shortage of useful advice and internship opportunities being posted to your feed.
  • Access to Recruiters — Like other social media apps, LinkedIn has a direct messaging section. Recruiters impressed by your profile may reach out to you directly through here.

Just for Underclassmen

Many big tech companies offer internship opportunities specifically for underclassmen that would like to learn more about a career in software engineering. These programs are often more developmental than traditional internships. They provide lots of mentorship and opportunities to learn and grow. Here are some examples of programs for freshmen and sophomores:

You can view more opportunities for underclassmen here.

Opportunities for Entrepreneurial Students

Some leading venture capital firms offer summer fellowships for undergrad students interested in technology and entrepreneurship. Venture firms pair fellows to intern at a portfolio startup and offer exclusive events to network with leading entrepreneurs, VCs, and tech executives. These unparalleled programs push you to learn and grow out of your comfort zone, and provide you with a network of up and coming tech founders and venture capitalists.

True Ventures Fellowship

  • Eligibility: Sophomore and Junior
  • A 10–12 week summer fellowship where you will work for a True Ventures backed startup and convene with other fellows in your cohort to participate in speaker events and workshops with experienced venture capitalists, founders, and leaders in technology.

8VC Fellowship

  • Eligibility: Sophomore and Junior
  • A 3 month summer fellowship where you will work for an 8VC backed early stage startup and attend events to meet notable entrepreneurs, executives, and investors.

Kleiner Perkins Fellowship

  • Eligibility: Junior or Senior (For New Grad Roles)
  • Work with a Kleiner Perkins backed startup and attend events to learn from founders, entrepreneurs, and investors. Fellows have the opportunity to receive $100,000 in seed funding for their own startup.

The Hiring Process

We’ve covered everything you need to know before applying, so now let’s dive into the hiring process. This process can be separated into these two sections:

  1. Getting an Interview (this is the hardest part!)
  2. The Interview Process

Getting an Interview

As students apply to 10s (if not 100s) of positions every recruiting cycle and companies are looking at 1000s of applicants just to fill a small number of positions, getting the interview can be the hardest part of the recruiting process. Here are some ways to increase your chances:

Networking and Cold Emails

Networking is the process by which you form professional relationships. From sending a cold email to someone at the company (or even a recruiter) and scheduling an informational interview call, you may be able to learn more about the job or even receive a referral. This is important because companies receive thousands of applications. Any chance to stand out is important. When looking for people to connect with, try to find someone with something in common with you such as the same school, similar interests, or mutual connections to increase your chances of a warm response.

Conferences

For underrepresented groups in tech, conferences are a great way to meet companies face to face and learn more about the role. Some popular conferences include the Grace Hopper Conference (for women) and National Society of Black Engineers (NSBE) Conference. In addition to directly connecting to recruiters, companies will add you to their conference-specific resume book and will interview candidates on the spot. It’s very possible that you may walk out of the conference with multiple offers! While these conferences can be pretty expensive, some companies will provide scholarships and many colleges have funding allocated specifically for students to attend these sorts of conferences.

Resume

Recruiters spend only a few seconds looking at resumes before determining whether or not you are a good candidate for the position. Therefore, it’s important to have a good resume. It’s important to know that direct experience in the industry will be weighted the most, however, it is not a requirement. Here are some tips on how you can stand out:

  • Don’t try to make it fancy. Keep all your formatting consistent and easy to read.
  • GPA doesn’t matter as much as you may think. Many tech companies won’t even ask for your transcript, however, some companies do have a filter for GPAs. Keeping your GPA above a 3.0 should suffice.
  • Quantify your impact. Since your resume is all text, numbers will stand out. The “XYZ formula” (Accomplished [x] as measured by [y] by doing [z]) is a good way to do this.
  • Include a skills section detailing all the coding languages, technology, and software that you know at the top, after the education section. Don’t lie though because everything on your resume is fair game during an interview.
  • If you don’t have direct experience in the industry, personal projects are the best way to show your skills and interests. You can use labs from your computer science classes, however, I think that creating your own projects from scratch is the best way to learn. Additionally, they will be more impressive and interesting to talk about in an interview. To get started, for example, if you wanted to do a project in React, you can simply search up on Youtube “React project tutorial” and you’ll find lots of results. Follow a tutorial, add on some extra features yourself, and now you have project to talk about! To stand out, don’t choose basic ones like a “To-do app” or “Calculator app”.
  • Include all of your links. This can include LinkedIn, your personal website, Github, portfolio, etc.

Coding Challenges

Before you receive an interview from a company, they might have you complete a coding challenge. This is to weed out applicants and assess your coding skills. The difficulty, length, and style of the questions will vary company to company. Some platforms that companies use to distribute coding challenges include HackerRank, CodeSignal, and ByteBoard. You should prepare for these like how you prepare for technical interviews.

The Interview Process

Congrats, you’ve reached the interview stage, what can you expect from now on?

What do Interviews Look Like?

The number of interview rounds and types of questions asked will vary by company. The two main categories are behavioral and technical interviews.

  • Behavioral interviews are used by recruiters to assess a candidate’s communication skills, culture fit, and to verify the experiences on their resume. In these interviews, it’s important to answer questions with a clear structure to demonstrate why you are passionate about and qualified for the role and company. The STAR method of structuring your answers with the “Situation, Task, Action, and Result” is a great framework to use. Resources like Glassdoor and Candor are helpful in learning more about the company and finding out the types of questions you may be asked in an interview.
  • In addition to assessing you through behavioral questions, companies will also want to evaluate your technical skills. Technical interview questions will be focused around your knowledge of the basic data structures and algorithms. In addition to doing coding questions, some companies may ask you systems design questions about the requirements and architecture behind software products. Technical interviews will be similar for most companies, so there are lots of great resources to help you prepare.

Technical Interview Preparation

There are lots of resources out there, but here are some that I specifically found most helpful:

  • Cracking the Coding Interview: This is sort of like the “bible of preparing for coding interviews”. This book helps you understand the interview process, the various problems you may encounter, and has several example questions and answers for you to practice on.
  • Leetcode: This is a website where you can practice coding questions. You can practice problems for different types of data structures and concepts and even see what questions are asked by which companies.
  • Youtube: In my opinion, Youtube is a highly underrated resource for preparing for interviews. I used Youtube to hear about interview and internship experiences at companies I was applying for, viewing deeper explanations about certain Leetcode questions, viewing mock interviews, and refreshing myself on various concepts.
  • Mock Interviews: Doing mock interviews can be extremely helpful to practice solving coding questions on the spot during a real interview. Some websites where you can do mock interviews with other job seekers include Pramp and Interviewing.io.

Other Great Resources

There are lots of other resources that helped me through the recruiting process, here are some of my favorites:

  • Cscareers.dev: a discord where students discuss their recruiting processes with each other and report internship salaries
  • r/cscareerquestions: a subreddit where students and industry professionals discuss all things CS
  • r/csmajors: a subreddit where students discuss all things CS and internships
  • Ladder: a social networking website for students looking for jobs and internships
  • Women of Rewriting the Code Facebook Group: a Facebook group dedicated to empowering women in tech
  • Levels.fyi: a website where you can view salaries for different positions and levels at different companies

General Tips

  • Don’t be afraid of working at smaller companies or startups as an underclassmen. You’ll get more responsibilities and you will learn a lot.
  • Seek discomfort. Since internships are for the short term, use them to explore your different interests. This way you won’t be stuck when you graduate to a full time position.
  • Don’t be afraid to ask for help. Reach out to your friends, other students, alums, and professors!
  • Don’t take rejections too harshly, it’s a numbers game!

You made it to the end! Thanks so much for reading and good luck in your recruiting process! If you’ve found this helpful, please feel free to leave a clap!

Here’s my LinkedIn and Personal Website

See every link mentioned in this article:

--

--

Christina Wang

CS/Econ Major @ Swarthmore College '22. Interested in all things tech, product, and vc.