Alternating background image
What You Should Know to Acquire Your First SWE Internship

Make Internship Hunting Easier

Are you struggling to find your first software engineering internship? Have you not started? Perhaps you've started but you've been inconsistent in your efforts, mustering a few solid (or even unfocused) hours on a given day or week only to become demoralized in the coming days or weeks. Do you question whether you are even cut out for the yearly software engineering internship competition? Do you wonder if maybe your school, your projects, or your intellect simply are not up to the task of software engineering?

If you fall into some permutation of any one of these descriptions, then you are in the same boat that I was in just half a year ago. I know from personal experience that it feels bad to be in that boat. I could feel someone's evaluation of me change in real time when they asked, "But have you gotten any internships?" and I would answer, "No, not yet; I need to keep looking." The most common response was a sad nod and a change of topic. There was a palpable sense of shame when talking to those who already had the success I wished I had. The good news for all of us is that with consistent efforts, it is absolutely possible to get your first internship and then fall into an entirely different boat.

In this article, I'm going to firstly explain the number-one factor you need for success in your internship hunt and other ways you can move the needle in your favor; secondly, who I am and what my circumstance was, and therefore why I'm one to talk, for anyone who's really curious; lastly, I will provide succinct answers to basic questions I wish I knew before I began the internship hunt.

The Most Valuable Tips for Securing Your First Internship

My Number-One Tip: Have Belief

The absolute best advice that I could give anyone for securing an internship is to not consider the possibility of not securing an internship. Do not even consider it: It's not a possiblity, and it never will be. If you're second-guessing this advice, stop now.

Thoroughly, in my experience, those who believe that internships are

  1. nearly impossible or at least very, very difficult to acquire,
  2. follow rigged systems controlled by inhumane or corrupt applicant-tracking systems (ATS),
  3. are uniquely susceptible to nepotism, unlike other industries,
  4. or are in some other way reserved for a certain set of people (e.g., those who satisfy a DEI criterion, those who attend institutions in the Ivy League, and so on)

do not obtain internships.

This is not to say that some of those are not factors in determining if you land an internship. You are absolutely right if you think that the equality x + Ivy League education > x + no-name-school education holds in employers' eyes; yes, I have heard firsthand that an Ivy League education is a competitive edge and even a compensation premium. But I've also heard that the best are always hired. You can control so many other factors with such great magnitude that you can move the odds back in your favor, regardless of what your current circumstance is right now.

That's because getting an internship is multifactorial; it's not one thing—it's not sheer coding skill alone, it's not school alone, it's not projects alone, and it's certainly not belief alone. This all said, out of all the factors, this one is the most important: Have the belief that you can accomplish an internship. Not having this belief is perhaps the greatest detriment to success because it has a huge knock-down effect on your effort and resilience. Your belief in your success completely changes how you navigate your search, stick it out, and if you even begin one. If you don't believe in the ability to accomplish a task, you will feel lethargic in attempting to win. And if you don't believe, why should an employer?

If you spend your time commiserating with professors or fellow classmates about how difficult the internship search is, you are creating an expectancy effect (I recommend The Expectation Effect by David Robson for more information about expectancy effects) for yourself which suggests you will not obtain an internship and that the search will remain difficult in perpetuity. You will also spend precious time on idle talk that you could be spending on internship applications. Every 10 minutes you spend thinking about how difficult the search is is an application or two that could have been submitted and already under review.

So, to summarize, this is what you should think: You need a finite number of applications to eventually win an internship, and you only need to win once. Believe that it is doable, and take responsibility for your outcome.

Regarding Self-Doubt

You will almost never have all the cards stacked in your favor. I didn't. You might have it worse. You might have it better. If you do have it worse, it's probabilistically almost certain that many, many other people exist who had it worse and still succeeded. Most of them didn't suddenly develop Einstein's intelligence or have a windfall inheritance that allowed them to afford the best tutors; instead, they put consistent work in to develop their skills. Will you?

Other Essential Tips

Surround Yourself With Others Who Have Success

Try to befriend, acquaint yourself with, or even superficially network with other individuals who have already overcome the internship journey before. This serves not only as inspiration and affirmation that the internship search is possible, but it provides novel ideas for how you can better conduct your search and what tools you can use for preparation and interviews.

How can you do this? If you're a student, start talking about internships with the people you sit next to in class. If you don't sit next to others or said people don't bite, move your seat. Talk to teaching assistants and professors about tips, strategies, and progress in the search—all from an optimistic perspective. Use talk about internships in the same way investment bankers talk about money or Greek lifers talk about their weekend plans. Make internships a default topic of conversation. If you have difficulty doing this in person, go online and use LinkedIn, Facebook, and/or Reddit.

My Great Failure and My Own Learning From Others

Many of the tools that led me to success in my internship search were learned by a single successful acquaintance who showed me the way. Without others, I would be nowhere.

In my first technical interview ever with a real human, I interviewed for Amazon. I was asked to talk about a time in which I worked on a group project. I told my interviewer something along the lines of, "I don't have much experience working in groups. I had a group project in a statistics course, and I disagreed with their ambition. They wanted to find the easiest project to get an A, but I wanted to challenge ourselves, so after disagreeing, I left the group and joined another."

That was a bad answer, already, as I conveyed either no team skills or the opposite of team skills. Yet the interviewer either wanted to give me another chance or wanted to confirm that I had zero idea how to present myself as a team player, and asked, "And what happened to that team after you left?" I obliviously told him, "I don't really know. I didn't pay attention to them." That was it: My interview was determined, right then and there. I had lost my shot at working at Amazon. Those answers were silly of me to give, but I did not know better. I can not begrudge myself. I had almost no knowledge of the etiquette of interviewing.

It was through experience talking with others who had experience interviewing, namely my girlfriend at the time and a fellow student who had already had internships, that I learned the etiquette over time. Talking to this fellow student, I learned of the Tech Interview Handbook, a highly useful resource both for understanding what questions will come your way and also for understanding how to answer those questions. I also learned of Neetcode, a great framework for coding practice, but I offer more on that later.

It's a Numbers Game, and It Always Will Be

Let's entertain a hypothetical: You get a reference from a family member to a top-of-the-line hiring manager for a top-tier social media company; you've skipped ATS and the HackerRank challenge, but you still need to pass a technical interview and behavioral interview; because you're slightly nervous and you hadn't had experience in RESTful APIs (something essential for the open positions), you don't perform great in the technical round. Do you think you will still go on to the behavioural round? Odds are against you. This reference, like all references, served as a resume-mover. It took your resume and put it at the top of the stack. A reference will rarely lead directly to a hire. Therefore, even with the right connections, you will still need to be a quality candidate and have many options. While connections help, they usually won't grant an internship in and of themselves.

For that reason, it's important, regardless of how good a networker you are, that you apply to a huge number of companies. I ended my internship hunt applying to roughly 170 companies, and even that is a relatively modest number. I only secured human-to-human interviews with two. I got lucky that one of those companies viewed me favorably.

A More Mathematical Argument

If you are mathematically minded, and still aren't convinced that it's a numbers game, let's entertain the following scenario.

You have your current set of skills and your current resume. You have improved your skills and resume such that you stand as at least a mediocre novice, a task possible for almost anyone reading this. You have developed a project or two outside of coursework, and you have participated in a single hackathon. There are currently thousands of companies with varying bars of entry for interview looking for interns.

Some small fraction of said bars p1 = 0.02 are suitably low for you. In a given interview, questions and challenges can be immensely easy or be experienced before by you such that you are reasonably likely to pass despite any limited test-taking abilities. We can say that you have some p2 = 0.25 probability of passing these interviews such that p1 x p2 = p3 = 0.005. Thus, the chance of passing an interview if you apply to n = 300 companies is the complement to the chance of not passing any interview: 1 - (1 - 0.005)^(300) ~= 0.77.

That is to say, with these incredibly conservative statistics, you have a 77% chance of passing at least one interview, and all you essentially have to do is ensure you're doing the basics as a software engineer candidate and applying to many companies. That's pretty good. And while the reality is more complicated, of course, this reality includes the fact that your probabilities are not fixed, and that your probabilites are going to be better than the mathematics would suggest. Each day you devote effort toward acquiring an internship, your p3 increases, and you can always, always increase your n. Out of places to apply to? Apply to the same places, again. Reach out to more senior employees over LinkedIn. Network at career fairs. You won't ever truly run out of opportunities.

LeetCode, HackerRank, and Other Coding Platforms are Your Friend

Do not be fooled by individuals who tell you that LeetCode and its adjuncts are not necessary. This line of thought is popular among many undergraduate students. In my experience, this remark conveys either inexperience or a lack of goal to acquire a software engineering internship.

It is always necessary that you use at least one coding platform at least once. Coding platforms are the tool of choice to test nearly all software engineering applicants, and it is necessary to determine whether you currently possess the requisite skills to pass a coding interview. If you can complete Hard challenges without sweating it, go ahead: Do not use coding platforms. Chances are though that if you're reading this, you are not a prodigy. In fact, if you are like the vast majority of candidates, you will not have adequate skills at first. Medium and Hard coding challenges will often stump you. In this case, the best way to get necessarily better at coding challenges is through continued practice using coding platforms to enhance your skills and enhance the likelihood you have to pass your technical interviews.

Avoiding a Common Coding Platform Pitfall

Something that I learned over a year and half after I was first introduced to LeetCode is that coding challenges often require advance knowledge of algorithms or techniques that you often will not (and practically could not) possess, and because of this, coding challenges have pedagogically superior orders of completion as opposed to random orders of completion.

I once browsed problems on a whim in a way that did not allow each problem to build on any previous. I spent far longer stumped than learning. Doing random problems on LeetCode is like trying to teach a child mathematics randomly, teaching them multiplication before addition—not a good idea. Use a platform like NeetCode that provides a logical roadmap for the completion of problems such that each problem builds on each other. This is what I did for my interview preparation, and it greatly enhanced my learning and the ability to apply my skills.

Coursework in Algorithms is Hugely Beneficial

If you have the opportunity to take a course in algorithms, particularly more advanced algorithms, I recommend you do so. Courses in algorithms will greatly enhance your problem-solving ability, exposing you to new ways of looking at data structures, recursion, and general logic inherent to all coding tasks. Advanced courses can serve as strong substitutes for coding platform practice and provide necessary foundations for skills that top-tier companies like Google look for in candidates.

Go into an algorithms course taking it for granted and you will willfully make yourself a truly worse candidate. A hatred for algorithms is a hatred for coding practice, and a hatred for coding practice is a great way to ensure you don't get an internship.

Improve Your Resume Through Projects and Participate in Hackathons

Projects demonstrate interest in software engineering, creativity, the ability to collaborate in a team environment if they are developed in such, and they very often serve as the basis for the majority of any conversation about your qualifications. If you have strong projects and have meaningfully contributed to them, you may even encounter a recruiter at a career fair who immediately brandishes you as "someone who gets stuff done, knows exactly when to pivot when ideas aren't working, and can operate during stressful scenarios."

This above quote is essentially what was said to me at Boston University's spring 2024 career fair by one recruiter who was particularly captivated by a project I and two others collaborated to make in fall 2023 semester's BostonHacks. The project was a relatively basic stock sentiment-analysis web application that used the pre-built FinBERT model and did some relatively basic web scraping. The final project did the basics of what we set out to do. It wasn't revolutionary, it wasn't beautiful; it was just good enough. Yet this recruiter's reaction, while slightly extreme, was not totally outside of the norm. Most people seemed very impressed by the project. The truth is though, with a little background knowledge under your belt, you could have easily been a part of the project too and been met with the same reception.

And what really mattered were not the key details of the project but that I could recount the planning and iterative development of my important contributions, and that I was enthusiastic when telling the story of the project's development—the initial brainstorming, the voting on our ideas, the midnight wave of uncertainty and temptation to call it quits early, and then our ultimate success. A strong GPA and solid charisma won't earn you the same receptivity. Projects, particularly group projects, will.

To make these projects while maximizing your time efficiency, I highly recommend that you participate in hackathons. Hackathons are great for a number of reasons:

  1. You meet other software-engineering-focused people who go above and beyond in the field.
  2. You expose yourself to what's possible in terms of teamwork, productivity, and ideation.
  3. You gain new skills in high-stakes, high-stress, time-constrained settings.
  4. Circumstantially you are often forced into roles which you are less comfortable with, and you will often learn these roles quickly.
  5. The net manhours invested in a project in the hackathon and thus scope of the project will be a large factor times what you could do by your lonesome. Projects that would take weeks to painstakingly find time for and implement by yourself can suddenly get done in a single weekend.

How to Prepare for Your Interview

If you want to perform best for your upcoming interview, you need to assess what type of interview it is first and foremost. If it's not apparent in the communication sent by the interviewer, then you can possibly find a company's interview process online.

For example, the company which I am interning at, MathWorks (the creators of MATLAB), roughly outline their typical five-step interview process for interns here. Failing that, you should directly reach out to the interviewer asking them what you can expect. Sometimes this will be met with silence, and for that reason, it is best to simultaneously review anecdotes online on forum sites and similar resources.

After you've done your due diligence in finding out what the interview will be like, you will know whether it's primarily technical, behavioral, or a series of interview rounds which run the gamut.

If Technical...

Practice Problem Solving, Obviously

Review your algorithms and data structures. What your personal review looks like will depend on what you have learned in the past. In my opinion, now is not the time to be learning new content. Efficiently refresh yourself of what you should know based on what you've historically learned. Even more importantly, spend at least an hour each day leading up to your interview doing coding challenges. It depends on your pre-existing expertise and practice, but you should feel comfortable solving LeetCode Mediums. They should not feel overwhelming to you.

Personally, I became quite comfortable solving coding challenges, and I didn't fail a single HackerRank or HackerRank-like coding challenge invitation from interviewers in fall 2023. I breezed by MathWork's HackerRank coding challenge, scoring the most-efficient solutions for each of the problems. But when it came time for a face-to-face technical interview, I hugely struggled. I didn't solve the assigned problem which had equivalent difficulty to the others I solved prior. I had prepared for literally dozens and dozens of hours in isolation, and yet I could barely write a coherent while-loop.

What was my problem?

Be Sure to Practice Narration Too

Something that I overlooked that will necessitate your steady practice is speaking aloud your thought process while simultaneously solving. With only day-of practice in speaking aloud, I found the task of solving a novel coding challenge while narrating the process in a high-stakes interview impossible to manage. I could not maintain my own cogent train of thought. I had a dozen questions racing through my mind at any given moment.

Am I speaking too much? Should I explain every line? If I don't speak, will they think I'm cheating? Is my narration unusual?

The only way to overcome these questions is to answer them ahead of time through advanced practice. I didn't, so I compromised my focus and induced undue cognitive load.

Be aware that even in a "technical interview", you will be rated behaviorally as well. How much varies by company, but usually the first 5-10 minutes and the last 5 minutes where you introduce yourself and are expected to ask questions, respectively, are essentially entirely behavioral; even during the technical interview, you are being evaluated on your communcation and behavior. As you solve the problem, or try to anyway, the interviewer is evaluating how well you could work on similar problems in a team environment. Any given interview is not just whether you can solve problems efficiently; it's whether you show strong potential to perform as a colleague.

If Behavioral...

Know Your Resume, From Top to Bottom

You will be asked extensively about your resume, particularly your projects, which should be front and center as a software engineering applicant. Review your resume over and over again, expounding on each line, each bullet in your mind, until you are sure you could describe your resume in detail to someone without having any actual sight of the resume yourself. The resume should be entirely engrained in your mind's eye.

You can display your resume in a split-screen window on your computer or reference a hard-copy if need be, but it will signal to your interviewer that you have with little knowledge about yourself, presumably the topic you should be most expert on. Flickering eyes that scan left and right repetitiously will signal unpreparedness. A resume should serve as only the tip of the iceberg to potential exposition an interviewee shares, so needing help to reply at this stage is a red flag.

Pay special attention to the section of your resume dedicated to projects. You will be grilled on them.

Formulae Are Your Answers

Understand that the majority of questions are not natural questions with an expectation of natural answers. Like with e. mail, there is a certain etiquette, or formula, for both sending and responding. You don't write this:

Hey prof I forgot to put my homework in gradescope can u help please? im really sorry

You instead write this:

Dear Professor X,

I hope your day is well. I accidentally forgot to submit my homework to Gradescope on time, and I was wondering if there might be any type of exception for this. If there isn't, that's okay. I appreciate your understanding.

Sincerely,

Y

Similarly, when an interview asks, "What is your greatest weakness?", they are not genuinely expecting an honest answer. The most popular method to answer involves prevarication: The interviewee answers with a weakness and then must proceed to answer with how they are fixing said weakness. The interviewee is disallowed from simply stating a weakness as might be assumed from the short question.

A more optimistic interpretation posits that the interviewee is not prevaricating but rather the interviewer is using idiomatic language to reference a larger question, which in this example is, "What is one weakness of yours that you are currently fixing, and what are you doing to fix it?"

Do not interpret questions too literally. Ensure that you understand what the expectation is for how interviewees answer, and look at how your competition answers these questions. Ask yourself, What do people online say about responding to these questions? Almost all of the questions that could ever be asked to an interviewee have been asked, and strategies have been drafted for responding to each one.

Finding Your Formulae

Until fall 2023, I was unaware that questions such as the above, or "Tell me about yourself," weren't so straightforward as they may seem. The way I overcame my inability to read between the lines was to practice answering sample behavioral questions, repeatedly referring back to the prevarication present in the correct answer to, "What is your greatest weakness?"

The bottom line is that you do not want to make yourself look bad; except to make yourself look good. You only suggest a weakness, for example, if it indicates that you are humble, which is actually a strength that outweighs your given weakness. Ultimately, companies want you to sell yourself. Why are you of all people the best candidate for the position? You need to be your own salesman.

I highly recommend the Tech Interview Handbook to find a strong set of example behavioral questions to practice. I personally gathered approximately 60 questions in sum and refined my mental map until for each question I had a suitably strong but still semi-improvised answer.

Test Your Formulae With Someone

Once you have your formulae, should you be able to, practice them with someone socially attuned. Before I did this, I often accidentally painted myself in unfavorable lights that detracted from my broader points. Having a fresh, detached perspective can easily detect these shortcomings, allowing you the opportunity to correct them.

Preparing For The Worst Case

Something that the Tech Interview Handbook won't do is read your resume and know what your weaknesses are. Unfortunately, interviews will. To test you, interviewers will specifically target your weak spots.

In my case, I had largely gained front-end-focused extracurricular experience and hadn't been exposed to middleware, APIs, or back-end development, and my education was predominantly what could be called "theoretical." Could you guess what interviewers asked?

Can you describe what back-end platform you chose for your stock-sentiment tool? What would you say are the pros and cons of using the back-end architecture you opted to go with?

Because I had forced myself to reckon with the questions I most dreaded being asked, I was able to answer these questions easily. I already had often asked myself similar questions in bed before going to sleep. I answered honestly: "I have limited back-end experience so I could not really answer that, and I acknowledge that that is a weakness of mine, but I will be taking a databases course next semester to broaden my understanding." It can be that simple if you're prepared. Notice how I included an apparent solution in my response.

I will be taking a databases course next semester to broaden my understanding.

In Either Event...

Regardless of whether the interview is largely technical, behavioral, or both, you should scour the internet for relevant questions from the company and information on the interview process. Two of my favorite sources are GlassDoor and Reddit.

I used GlassDoor to help prepare myself for both the behavioral and technical questions that MathWorks might have asked me. It clarified what would be one of their biggest questions: "Why MathWorks?". That is perhaps their most important criterion for hiring someone. Interviewees would need to have a definitive reason for joining MathWorks. While this result maybe isn't shocking, I've heard in others' cases with different companies (like CapitalOne) that their interview questions were identical to those seen on GlassDoor and that practicing the questions guaranteed their strong interview performance.

Who Am I to Talk?

A Little Background

My name is James Davin, and I'm an undergraduate student at Boston University (BU) studying Statistics & Computer Science. I'm a senior who was supposed to graduate in spring 2023, but I'm now graduating fall 2024, a year and a half late. I am a high school dropout, and my first step after obtaining my GED was getting an associate degree from a community college in film and television. During my time at community college, I spent most of my time procrastinating. After a half-year hiatus spawned by both laziness and an aversion to the online learning environment spawned by COVID in which I worked part-time at a grocery store, I was accepted into Boston University (by God's tender mercy).

My Time at Boston University

At Boston University, I immediately realized that I wasn't working at the rate I needed to become a premiere film director, so I tucked my tail between my legs and switched my major to STEM. Though I had the prescience to change my major, I didn't go above and beyond in my new major for most of my time. I maintained a decent GPA (it currently stands at 3.69/4.00), but I focused most of my efforts on gaining experience with dating. I was not an overachiever in the major by any means. Here's a breakdown of what I did each semester:

  • Fall 2021:
    • Took three courses. (Semester) GPA: 4.00.
    • (CS) Extracurriculars: None.
  • Spring 2022:
    • Took four courses. (S) GPA: 3.93.
    • Extracurriculars: None.
  • Fall 2022:
    • Took four courses. (S) GPA: 3.15.
    • Extracurriculars: None.
  • Spring 2023:
    • Took four courses at Pontificia Universidad Católica de Chile (PUC). (S) GPA: 3.35
    • Extracurriculars: None.
  • Summer 2023:
    • Retook multivariate calculus, as I struggled with it at PUC.
    • Completed a little over half of the Meta Front-End Developer Certification. Learned HTML, CSS, JavaScript, and React.
  • Fall 2023:
    • Took three courses. (S) GPA: 4.00.
    • Extracurriculars: Joined CS honors society Upsilon Pi Epsilon (UPE); participated in a mini-hackathon, HackHarvard, and BostonHacks; began work on my personal website; became a course assistant for an introductory CS course; co-developed the UPE recruitment website, and began using LeetCode and HackerRank regularly.
  • Spring 2024:
    • Took four courses. (S) GPA: 3.85.
    • Extracurriculars: Worked as a course assistant again.

I enumerate all of this so we can see that before fall 2023, I actually didn't do much at all. I wasn't a star student, and I didn't have any extracurriculars to brag about. If you're interested in learning more about my path, I elaborate below.

Initial Mediocrity

During summer 2022, I worked at a restaurant and started to code a baby Python chess project. In the winter break of 2022, I continued both pursuits. In this, I added few real skills from my coding, and the chess project wasn't a meaningful resume boost.

I began applying for internships during that fall, 2022. I applied for roughly 50 internships before choosing to study abroad. I received one human-to-human interview, with Amazon. I proceeded to bomb the behavioral portion, giving opposite-to-correct answers that conveyed a self-centric teammate, and I didn't do much better on the technical portion.

At that time, I received many coding challenges and non-human interview invitations. However, I passed up a majority of them up because of a sense of dread for being automatically screened, a feeling of inadequacy, and because I thought I deserved better than to be automatically screened. This latter stance was not a logical or rational opinion, but merely an emotional one—a cope.

When I decided over the 2022 winter break to study abroad between February and July 2023, I was secretly gleeful that I could no longer look for internship opportunities or other career-development programs. I could simply say, "Well, you know, my study abroad goes into July, and few will hire an intern who has less than two months available to work." I never actually researched whether what I said was true.

Sudden Success

When I came back from my study abroad in summer 2023, I was set to graduate in spring 2024 with no opportunity for a summer internship. After much conversation with various college advisors of various expertise, I felt it important to acquire one. I delayed my graduation by a semester to go all in on acquiring an internship for summer 2024.

So what did I do? Exactly what is says on the tin. I participated in three hackathons, worked on two websites, joined the CS honors society, and did a lot of coding challenges. I was able to easily stay on top of my academics because I was only taking three courses. It was a simple change of priorities. I was not concerned with maintaining a four-course courseload, a high GPA, or dating, and as a result, I was able to radically focus on and improve in the areas that employers were concerned. In a single semester, I made myself marketable.

I know others find themselves in similar situations. Zero extracurriculars and no research. Negligible confidence. A sense of dread. I eventually succeeded with some key changes, and I know you can too.

Miscellaneous Questions

When should I start applying? When should I stop applying?

Start applying now. If you are reading this article, you are capable and ready. It doesn't matter your year in school; the sooner you start, the better. Don't stop until you have secured an internship you are satisfied with or you have entered into the May of your desired summer season.

Are career fairs worth it?

Indubitably, yes. They sharpen your social skills, highlight flaws in your pitch and resume, and they offer an opportunity to connect with recruiters and employees who can be vital to your success later on. In general a majority of jobs are never posted and most go to those who network.

If I have some lack of experience, should I address it in the interview?

In my case where I had changed majors and studied abroad, I felt compelled to give some context as to why I made the decisions I made and how they were meaningful to my development. Rather than dwell on the absence of an internship, I turned conversations toward other topics, such as how I grew through my radical difficulties studying mathematics in Spanish.

Is there leeway in an interview?

Yes. I know firsthand as I performed poorly on my technical interview for MathWorks. In the end, there were enough pros to offset my suboptimal performance, including that the interviewer believed in my ability to solve the problem had I been provided hints. This is not say there is much leeway, but there certainly is some.

Do HackerRank and other coding platform tests rank you based on speed?

Yes, they do. I presumably lost at least a few interview opportunities not knowing this, thinking that correctness, honesty, and cleanness were the only factors considered. I would sometimes have perfect solutions but receive no follow-up.

In the event you have already solved the assigned coding challenge's problems inefficiently but are unsure whether you could solve at least one of them more efficiently, I believe that uncertainty implies you should submit as-is and move on. The chance of exhausting the timer without upgrading the efficiency of your solutions is not worth the apparent penalty to me.

I have received follow-ups despite having inefficient solutions, but I have never received follow-ups when I completely exhausted the clock.

If it's already summer and I didn't land an internship, what should I do?

An Important Warning

If you are financially stable and do not have an immediate need for money, you are highly, highly advised: Do not work a job that does not enhance your resume for software-engineering. You will set yourself back by spending valuable time that could go toward increasing your marketability and skillset. More than likely, your future internship and software engineering job will pay much more than any job you could work right now. You will maximize your long-term earnings by forgetting about any movie theater or bowling alley you used to or would like to work at.

I say this firsthand and not with any snide. I happily worked as a server across many months, and the topic did not once come up in any interviews, nor did it stay on my resume once I collected enough experience in major-focused extracurriculars. Jobs such as serving will provide short-term earnings but they will cost you far more in the long term.

The Alternatives

You have many options, and here I will list a select few:

  1. Serve as a course assistant or teaching assistant for summer coursework.
  2. Study summer coursework at your university in relevant fields (e.g., computer or data science).
  3. Enroll in online coursework through Coursera, Udemy, or other providers.
  4. Complete projects or a project on your own, demonstrating proficiency in in-demand technology (e.g., React or MongoDB).
  5. Participate in undergraduate research.
  6. Join workshops, fellowships, or other various professional development programs.