Landing a SWE Internship: Finding the Right Fit

Codebase
Berkeley Codebase
Published in
9 min readMay 2, 2021

--

Photo by Zhifei Zhou on Unsplash

Now, we’ll be going over the final steps of the recruitment process: going to onsite interviews, managing negotiations, and choosing between multiple offers.

What is an onsite?

An onsite is a series of interviews, usually towards the end of the recruitment process, where you’ll travel to the company headquarters and meet managers, recruiters, and engineers from the company. Onsites generally consist of a series of technical and behavioral interviews.

Not all companies have onsites in their recruitment process, so be sure to ask your recruiter if there are plans for one!

What does the typical onsite look like?

The schedules and structure of onsite interviews vary from company to company, but most will follow this general format:

  • A few technical interviews: these will look similar to previous rounds in the process; refer to the Technical Interview section of Acing Your Interview for more details.
  • Lunch with engineers: these aren’t assessed, but are a time for you to try out the company food, get to know other engineers, and ask questions about the company.
  • Something behavioral: you may have a conversation with a recruiter, a manager, or an executive, depending on the size of the company; refer to the Behavioral Interview section of Acing Your Interview for more details.
  • A design interview: you may be asked to work on a whiteboarding, collaborative exercise, where you design a system, database, or algorithm for a complex problem.

The unique part of onsites is the opportunity to have in-person interactions with employees and to assess the work environment. So, a huge part of on-sites is judging whether your working style and personality match the company’s culture. Many people who interview you will be asked if they think you are someone they’d enjoy working with, so keep this in mind as you go through the day!

How do I prepare for an onsite?

Technical Interviews

Please refer to the Technical Interviews section of Acing Your Interview in more detail.

In general, technical interviews at the onsite are similar to those preceding this step in the process. The main difference is that you’ll be sitting with the engineer during the interview. In this case, it’s key to focus on your communication with the interviewer; they’ll be judging not only technical skill, but also if they would enjoy being your co-worker and teammate.

Behavioral Interviews

Please refer to the Behavioral Interviews section of Acing Your Interview in more detail.

As mentioned previously, onsites focus not only on skill, but how well you would integrate and contribute to the company culture. Make sure to be informed about the company mission and values before coming to your onsite.

Design Interviews

Design interviews don’t focus on actual coding and debugging ability, but rather more abstract problem-solving skills. For the most part, interviewers will give you a tough real-life problem that faces practical constraints such as scale and capacity. Your job is to think through and design a system that could solve the problem and also address the practical constraints. The specific topic of these problems varies from company to company. Some companies will ask you to design a database schema in order to store data for a relevant product. Some problems will involve distributed systems or algorithms.

During the interview, you’ll often be whiteboarding and asked to explain your solution. Just like your technical interview, communication is key. Because these interviews vary widely, the best way to prepare is to ask your recruiter for any relevant context and what the general topic of the interview will be. We’d also just recommend brushing up on general topics such as databases, distributed systems, architecting a product, etc., and using online resources. Check out this resource here.

What should I try to get out of an onsite?

Now that you’re able to see the company firsthand during the workday, it’s a good time to reflect on if the company is a good fit for you. Remember that this is the last step until an offer, so it’s the best time to see what it would be like working there for a summer or long-term in your career. An onsite is not just a time for them to interview you, but for you to interview them!

Understanding Company Culture

Start by assessing company culture. Does the company share the same professional values as you? Can you see yourself integrating with the team and finding a safe space to learn and collaborate with others? Ultimately, you’ll be spending a lot of your day in the office, so it’s important to enjoy the people that you work with and feel comfortable in the space.

Understanding Management Styles & Growth Opportunities

Especially early in your career, it’s important to have good managers who can help you learn and grow. The engineering managers, VPs, and even CTOs that you meet while interviewing will probably be the ones giving you projects and opportunities that will help you grow as an engineer; make sure that their plans and general vision align with what you would want for yourself.

Work-Life Balance

While walking around the office and interacting with employees, ask yourself: are people interested in their work? Do they look happy? When asking employees questions, note if they’re interested in their projects and in their day-to-day work; this can be a big giveaway.

It’s also important to note that different companies have different work-life balances. Feel free to ask employees questions to gauge what work-life balance looks like at that company and judge if it’s suitable for you.

Types of Problems

What types of problems are they working on? Are you interested in working on them? Each company has different products, tech stacks, and problems to solve. It’s important that you enjoy the process, and find the work your company is doing meaningful.

Looking Ahead

Since you’re nearing the possibility of receiving an offer, feel free to ask recruiters and managers long-term logistical questions: What office or city would you most likely work in? What teams are looking for interns or new grads? If you do get an offer, how long will you have to make your decision? Now that you’re close to the end of the process, it’s important to start looking ahead.

Post-Offer Negotiations

Congrats! At this point, you’ve received an offer (or maybe even multiple?!). Pat yourself on the back — the end is close, but we’re not quite there yet.

Negotiation isn’t extremely common for internships the way it is for full-time offers. Regardless of your offers, reaching out to your recruiter to negotiate your offer is something that we encourage you to try. It’s better to go through a bit of stress or awkwardness by emailing your recruiter about the issue when you come out a few thousand dollars ahead on the other side.

At this point, the company that’s given you an offer has likely spent thousands on the recruiting pipeline to choose you out of all of the other applicants that applied. As a result, they often don’t have a problem paying a little extra for your salary to have you take the offer instead of putting another student through the entire pipeline again.

Research

The first phase of negotiating involves gathering more information. Are you being paid a fair price for the internship? Try to look at what the company has paid interns in the past. Glassdoor and other online forums are the best resources for this.

Contact Your Recruiter

Once you have all the information you want, it’s time to reach out to your recruiter! It’s often better to talk to them over the phone compared to email because it puts them on the spot. Listed below are a few strategies that might be helpful when talking to your recruiter.

  • If the offer you got is much lower than the research you did in the first step, bring this up. Make sure you cite data!
  • Having a higher competing offer greatly increases your chances of having the upper hand when negotiating.
  • Being a college student is financially difficult for many of us. Letting your recruiter know this is often a good idea, as it’s the primary way an increased salary will affect our lives.
  • Remember that negotiating isn’t just a salary raise — you can try to negotiate things like extra perks, a housing/transportation stipend, or placement on a team within the company that you like.

The most important rule to keep in mind is to be respectful to your recruiter throughout the entire negotiating process. Good luck!

Choosing the Best Offer

If you’re lucky enough to get multiple offers, it can be difficult to choose the option that’s right for you. There are multiple factors to consider and ways to get more information about the company than previously discussed.

Talk to People

The best way to decide what’s right for you is by obtaining more information and talking to people from the company.

The first place you should go to get an honest opinion on the workplace is your friends or second-degree connections — LinkedIn is super helpful here. If you can’t find anyone you know, it’s a good idea to try to find a Berkeley alum that works there.

If you can’t find anyone from Berkeley, your last resort should be to message people who’ve worked at the company’s internship and still go to college. It’s usually best not to ask your recruiter to connect you to people because those people are generally told to convince you to come on and may be less forthcoming with any criticism they have.

Questions to Ask

Below is a list of questions that you may find helpful in guiding you towards an informed decision in picking the right opportunity for you.

  • Which company or team seems to be working on more technically challenging or interesting questions?
  • Does a company use a stack or language that you’re unfamiliar with? Is it something that you want to learn?
  • What is the social vibe at the company you want? Are employees friends, does the company have social events, and did you feel at home talking to interviewers?
  • If you’re a senior, does the company commonly give out return offers?
  • Does the company work in an industry that you think is valuable to learn about?
  • Is money a concern for you? Would taking one internship ease costs of living/student debt/other financial concerns over another? Make sure you factor in housing, transportation, and food costs into this calculation.

Miscellaneous Thoughts

In the end, you can’t go wrong. You’ve received offers to places and have done a great job throughout, and there’s no “right” or “wrong” choice; it’s not binary. Your experiences may be slightly different at both places, but you’ll still further your career and improve your technical skills. If you can’t choose logically, just go with your gut!

Closing Thoughts

Find a Community

Overall, the SWE recruiting process can be difficult, discouraging, and filled with rejection. Going through this process with a community or a support system can lessen stress and lead to more success. Keep in mind that recruitment can be a touchy subject for some, so we’d encourage everyone to be mindful about recruitment toxicity during conversations. For instance, bragging about offers or compensation can often make freshmen, sophomores, and even juniors feel behind. On the other hand, offering to talk about your experiences and giving advice can make others feel more comfortable and supported.

Practice Makes Perfect

As with anything else, starting recruitment earlier and going through more recruiting cycles always helps to give you more experience and confidence. A common technique is front-loading applications and interviews for companies that you aren’t as invested in so that you feel more prepared as you start applying to companies you like. Doing mock technical interviews with friends and giving each other pointers can also be very helpful. Additionally, going through recruitment cycles during your freshman and sophomore years, whether they end in offers or not, will give you much more confidence going into your junior year recruitment cycle.

It’s a Numbers Game

Recruiting in the tech industry is essentially a massive numbers game. Given the sheer number of amazing companies and the massive pool of qualified applicants, it can often require applying to hundreds of companies before hearing back from any. Creating a reasonable schedule (submit 20 applications a day) and sticking to it is usually a good way to keep yourself accountable and eventually start hearing back. The main takeaway here is to not take rejections and ghosting personally; companies receive so many applications and so much of the process has to do with luck and factors outside of your control. While it may be hard getting over hundreds of rejections, remind yourself that everyone who seems to have found success has gone through this too, whether they chose to share their failures or not. Good luck!

Written by Isabelle Zhou and Warren Wang

--

--

Codebase
Berkeley Codebase

Software development @ UC Berkeley — Building a community for meaningful industry impact. https://codebase.berkeley.edu/