No Internship This Summer? Here's What I Would Do Instead
If you didn't get a CS internship this summer, the goal is not to pretend it doesn't matter. The goal is to build proof anyway.
The summer between my freshman and sophomore year, I didn't have a software engineering internship. No manager. No return offer to chase. No company Slack. No midpoint review. Nothing that made the summer feel official.
At the time, that was scary. I knew from being around Knight Hacks that most freshmen don't get internships, so it wasn't like I thought I was the only person this had ever happened to. But knowing something is normal doesn't make it feel good when it's your calendar that's empty.
It was also kind of exciting, though. There was no one telling me what to work on, which meant there was also no one telling me to stop. I didn't have to ask for overtime. I could just do more.
That summer ended up mattering a lot more than I expected. I helped build DormDevs, worked in a research lab, maintained LootCode after it got real users, did some LeetCode, and tried to turn three unstructured months into something I could actually talk about later. A year after that, DormDevs and LootCode came up in almost every serious recruiting conversation I had. My research came up too, especially for NVIDIA.
I'm not saying this because not having an internship is secretly better. It's not. Internships help. They give you structure, mentorship, a name on your resume, and a clean way to prove you can work on real software. But if you didn't get one this summer, your summer isn't automatically wasted. You just have to be way more intentional with it.
Don't let it beat you down
You missed one recruiting cycle, not your entire career. That sounds obvious until you're the one watching everyone else post offer announcements. Then it starts feeling like some final judgment on whether you're good enough for CS. I get it. Rejection makes people weird. Silence from applications might be even worse because at least rejection confirms someone looked at you.
But most students don't get the internship, especially early. Freshman internships are hard to get. Sophomore internships are hard to get. The market is noisy, the funnels are brutal, and sometimes your resume just wasn't ready yet. That doesn't mean you're cooked.
It does mean you should be honest about what happened. If you didn't get interviews, your resume, projects, application timing, or network probably weren't strong enough. If you got interviews and didn't pass them, you probably need more technical or behavioral reps. If you applied to ten places in March, the answer is not that the universe hates you. You applied to ten places in March.
Don't turn a fixable problem into an identity crisis. You can learn without an internship. You can build without an internship. You can grow without an internship. It's just harder because nobody is forcing the structure onto you.
That's the part people underestimate. An internship gives you a schedule by default. You wake up because someone expects you online. You make progress because someone is going to ask about the ticket. Without that, the accountability has to come from somewhere else. Usually, unfortunately, yourself.
Set your priorities before the summer disappears
Three months sounds like a lot of time in May. It isn't.
You tell yourself you're going to rest for a week, then get serious. Then the week becomes two. Then applications start opening again and your resume is still the same resume that just didn't work.
I'm not saying don't take a break. Please be normal. Go outside. See your friends. Go to the gym. Sleep like someone who isn't trying to speedrun burnout. But don't let "I deserve a break" quietly become "I disappeared for the entire summer."
My schedule wasn't some insane grindset thing. I'd wake up, hit the gym, and spend a few hours at my computer on and off. Some days I worked on a DormDevs client. Some days I worked on my research project. Some days I did LeetCode. Some days I read LootCode feedback and figured out what people were asking for.
Every now and then I went out with friends. Balance matters. But I tried not to let more than three days go by with nothing getting done. That was the whole system. Not perfect. Not aesthetic. Just enough to keep the thread alive.
By the end of the summer, you want a better answer to "what did you do?" than the one you have right now. That's the bar.
Make an internship, DIY style
If you strip away the branding, an internship teaches a few things: how to build software for someone besides yourself, how to deal with requirements you didn't invent, and how to ship something, maintain it, and fix it when reality disagrees with your first version.
That's basically the software development lifecycle. SDLC if you want the corporate acronym. Planning, building, testing, shipping, maintaining, improving. The important part isn't memorizing the acronym. The important part is understanding that software doesn't end when the code runs on your machine.
A lot of student projects stop there. The app works locally, the README looks okay, it goes on the resume, and nobody touches it again. An internship usually pushes you past that point. If you don't have one, try to create the closest version you can.
For me, that was DormDevs.
DormDevs was a small company I helped start where we found businesses that needed websites, connected them with student contractors, and handled the hosting, domains, maintenance, and client relationship side. It was very much a freshman-year business in some ways, but it taught me things I wouldn't have learned from another tutorial.
Clients don't care that your tech stack is cool. They care that the site works. They care that it looks like what they asked for. They care that it doesn't break when they need a change two weeks later. They care about timelines, costs, and the random requirement they forgot to mention until after you thought you were almost done.
Annoying, yes. Also the point.
You learn customer requirements fast when an actual customer is involved. You learn maintainability fast when you're the one who has to go back and fix the thing you rushed. You learn communication fast when the person on the other side doesn't know or care what framework you used.
That came up in interviews later. Not because DormDevs sounded like some huge company. It didn't. It came up because it showed ownership and agency. I had examples of working with real people, shipping work that had to stay online, and dealing with requirements that weren't handed to me in a class rubric.
You don't have to start a company to get that. Build a tool for a club. Help a local business. Make something for a professor. Find a community you're already in and solve one annoying problem for them. The point is to make your work accountable to someone else. That's where the internship substitute starts to become real.
Build a product, not a resume project
For the sake of replacing an internship, you should think less like "project" and more like "product." A project is something you finish. A product is something you maintain after people start using it. That difference matters more than the stack.
LootCode was the first thing I built that really felt like this. It started through Knight Hacks Project Launch as a gamified LeetCode thing with a fantasy campaign, code grading, progression, and a bunch of D&D-ish flavor. The idea was simple: practicing DSA is miserable, so what if it felt more like a game?
Then we posted it.
It got attention on Reddit, picked up tens of thousands of page views, and ended up with a few thousand real users. Not theoretical users. Actual people coming back, trying problems, asking for features, complaining when things didn't work the way they expected.
That changes how you think. Suddenly the questions are not "does this look impressive on my resume?" The questions are: what breaks when people actually use it? What languages do they want supported? Where are they getting confused? What feedback keeps showing up? What can we ship without making the whole thing worse?
Over the summer, we maintained it. Added programming languages. Read feedback. Fixed issues. Thought about the product from the user's side instead of only the builder's side. That's where the learning was.
When you talk about that in an interview, the conversation is completely different. "I built this to learn Next.js" is fine, I guess. "I built this, thousands of people used it, here's what broke, here's what we changed, and here's what I'd do if it kept growing" is a real story. Recruiters and engineers can feel the difference.
So if you're staring at an empty summer, don't build ten tiny things you don't care about. Build one thing with a real user in mind. Pick a niche. Find the pain point. Ship the smallest useful version. Put it somewhere people can react to it. Then take the reaction seriously.
The goal isn't to perfectly replace an internship. The goal is proof that you can build something reality gets to touch.
If you need structure, go find it
Not everyone should spend the summer alone trying to build a product. Some people are good at self-directed work. Some people are not there yet. That's fine. Be honest about it. If you know you're going to abandon the project the second it gets hard, put yourself somewhere with more structure.
Research can be good for that.
That same summer, I worked in the UCF Computational Bioinformatics Laboratory on RNA sequencing, alternative splicing detection, gene quantification, and a bunch of Python I probably wouldn't have written on my own. I had never taken a biology class before, so the domain wasn't exactly my comfort zone. That was useful.
I was used to running my own show. With DormDevs, I could take charge. With my own projects, I could decide what mattered. Research was different. The problem existed before I got there. The constraints weren't mine. The people around me understood the domain way better than I did. I had to work inside that.
It taught me how to operate under requirements I didn't set, which is basically the whole job at an internship. It also pushed me into technical work I wouldn't have picked for myself. Parallelized Python for RNA sequencing pipelines isn't the first thing I would have chosen for a side project, but it gave me a much stronger technical story later. For NVIDIA, that mattered.
Open source can fill a similar role. I didn't do OSS that summer, so I'm not going to pretend I have some personal story there. But the reason I recommend it is simple: working in a codebase you didn't start is a skill. Most students are bad at it because most student projects start from an empty repo.
At an internship, you almost never get that luxury. You join something already alive. You read other people's code. You follow conventions you didn't create. You make a change that has to fit into the system instead of bending the whole system around you.
Research, open source, serious club projects, campus tools - the format can vary. What you want is constraint. Somebody else involved. A standard you have to meet. If your summer has no structure, borrow some.
Prepare for the next cycle before it starts
The next recruiting cycle is closer than it feels. If you wait until applications open to figure out why the last cycle didn't work, you're already late.
If you didn't get interviews, fix the top of the funnel. Rewrite your resume. Make the projects easier to understand. Switch to a clean template if your current one is fighting you. Apply earlier. Talk to people before you need something from them.
If you got interviews and didn't pass them, practice the part that exposed you. For me, that was LeetCode. I did some that summer, but I should have done more. I left too much of it until interviews were already happening and almost got caught with my pants down a few times. Not ideal.
Don't do that.
You don't need to become a DSA monk, but you do need enough reps that the interview doesn't feel like the first time you've ever thought under pressure. Work through patterns. Talk out loud. Do mocks if you have people around you. For behavioral, know your projects well enough that you can talk about them without sounding like you're reading your resume back to the interviewer.
That's another reason building real things helps. The stories are easier to tell because they actually happened.
What you want by August
By the end of the summer, you want to be able to answer one question: what changed?
Not "I learned a lot." Not "I watched tutorials." Not "I applied to stuff." Something concrete.
I built a product and got users. I shipped websites for small businesses. I worked in a lab and learned a domain I knew nothing about. I contributed to a codebase I didn't start. I fixed my resume and started getting more responses. I practiced interviews until mediums stopped feeling impossible.
That's the point of the summer. Progress and proof.
DormDevs gave me ownership. LootCode gave me users. Research gave me technical depth. None of those were internships, but all of them gave me material I could use when recruiting came back around.
That's what you're trying to build. Not a cope. Not a motivational quote. Material.
The summer is not wasted unless you waste it
No internship isn't ideal. I'm not going to pretend companies don't care or that you should be weirdly grateful for rejection. If you wanted one and didn't get one, let it sting for a bit.
Then move.
Pick the thing that hurt you this cycle and make it less true. If your projects were weak, build something real. If your resume was weak, fix it. If your interview skills were weak, practice. If you had no network, start putting yourself around people building things.
An internship helps a lot. But your growth as a developer isn't dependent on a company giving you permission.
You still have the summer. Use it.
— Dylan Vidal
Back to all posts