this guide covers the new grad swe recruiting pipeline from applications to offers, drawing from my own interviews with startups and faang. if you feel underprepared or think you aren’t “elite” enough to land a job, this is for you.
this was inspired by my friend bradley tian (berkeley'25) and his detailed early-career swe guide.
while his guide covers long-term college planning and prep, mine focuses specifically on the actual interview process, my personal experiences, and lessons learned.
i’m not a cracked, top-tier bay area cs student. i was just a low-income, first-gen kid who spent all his time playing games. my path started because of a simple comment from my aunt:
“you’re always on the computer. why not make it your job?”
with no cs foundation from my high school, college was a massive wake-up call. but trying to bridge that gap, from simply using computers to understanding how they work under the hood, is what turned a distraction into a career.
i’ve been extremely lucky to have interned at google multiple times, worked part-time at amd, and a part of plextech @ uc berkeley that gave me hands-on experience and a great support system.
i also want to acknowledge how hard recruiting is, especially for:
just keep learning and showing up. use each experience as a building block.
recruiting is tough.
my friend dylan huynh (berkeley ‘24) once told me (paraphrased):
“recruiting is a probability game. companies aren’t looking at who you are, they’re looking at numbers. all you can do is increase your odds.”
this guide will be broken up into the following stages of the interview process:
focus on gaining as much experience as you can. if one path doesn’t work out, pivot.
the important thing is to just start somewhere.
as you build projects, document your obstacles and solutions immediately.
over time, this becomes your bank of stories for behavioral interviews.
format these using the star method (situation, task, action, result), noting tradeoffs and what you would do differently with more time.
side projects show initiative and build technical depth. the key is solving a real problem rather than just using trendy tools.
i once chose golang and docker for a project just because they were popular.
when interviewers asked about the most technically difficult part, i had nothing compelling to say other than configuration struggles.
solve a real problem you care about. the natural design challenges you face along the way make for far better interview stories.
clubs can be a great way to get team experience, especially if they build products, run workshops, or compete in technical challenges. that said, clubs can be very competitive, so don’t worry if you don’t get in right away.
try again next semester or use side projects to build experience in the meantime.
internships are valuable not just for the resume, but for understanding how software gets built in the real world.
i know they can be hard to get, especially early on or if you’re coming from a non-target school.
if that’s the case, double down on your personal projects, attend career fairs, work in startups and other forms of experience to help you break in.
if you’re newer to cs or still in school, course projects are a great starting point.
try to go beyond the minimum requirements: add features, refactor the design, or optimize performance. then put those versions on github with clean documentation.
just avoid using generic course projects that everyone in your program does unless you’ve done something notably different.
teaching (ta-ing, mentoring, or tutoring) shows mastery, leadership, and communication, which are all valuable. even informal teaching counts. if you’ve ever helped someone debug a project or understand a concept, that’s already a good story to share in your behavioral interviews.
consider ta-ing for cs classes, hosting workshops, or tutoring/mentoring for societies and programs within your campus or online programs.
hackathons are a fun way to build something quickly and meet people. even though i haven’t done too many myself, i’ve heard great things because you can win prizes, meet new people, work with sponsored tech, and potentially build some great projects.
just make sure the projects you walk away with are well-scoped and documented. that way, you can reuse them in interviews or on your resume.
contributing to open source is one of the best ways to gain experience working with a real codebase. i haven’t done much of it myself yet. it teaches you how to navigate unfamiliar code, follow coding standards, and work with other contributors.
i don’t have personal experience with research, but it’s a strong path if you’re interested in depth, theory, or working closely with faculty. it can help you explore topics like systems, ai, hci, etc., and it often opens doors to grad school or specialized roles. if you’re still in school, try reaching out to professors/grad students whose work you find interesting.
freelancing can give you hands-on experience building for real people. personally, i like the idea of solving a concrete problem for a client and seeing the direct impact. if you enjoy that too, freelancing can be really fulfilling and you’ll learn to manage scope, communication, and deadlines, which are all key professional skills.
i think this is the most difficult to get in since you have to do lots of self-advertising to get clients.
in the end, it doesn’t matter which combination of these you pursue. what matters is that you’re gaining experience, building confidence, and learning how to work through real problems.
if you’re just starting out, side projects, course work, and freelance gigs are great early bets.
if you’re closer to graduating, double down on projects, hackathons, freelancing and open-source contributions.
whatever you do: reflect on what you learned, document your growth, and tell your story well. experience is less about the medium and more about how you make meaning from it.
your resume has one job: get you past the initial screen. it needs to be clean, exactly one page, and readable in under ten seconds. i highly recommend using jake’s resume as your base template, as it is the industry standard for clean, ats-friendly layouts.
this is your most valuable real estate. put your strongest assets here, whether that’s a top-tier school, brand-name internships, or your core technical skills. recruiters scan resumes from top to bottom, so make sure your hook is immediate.
don’t just list your daily responsibilities. structure your bullets as: accomplished [x], as measured by [y], by doing [z]. dig deep for quantitative data to show business impact, like latency reduced, cost saved, or system load decreased, to prove you are a valuable asset.
if you don’t have industry experience, list your class projects or club work with the same level of detail as a job. describe the system architecture, team size, and the engineering challenges you solved.
use a standard single-column layout without tables or complex graphics. automated applicant tracking systems (ats) struggle to parse fancy templates, so keep it plain text and naturally integrate key tools from the job posting.
networking is about building professional relationships, not just collecting referrals. focus on curiosity and value rather than asking for favors immediately.
keep cold messages under three sentences to maximize response rates.
“hi [name], i’m a cs student at [school] interested in your work with [team]. i saw your project on [topic] and would love to hear a bit about your experience. do you have ten minutes for a quick chat next week?”
never ask for a referral in your first message. build rapport first by asking about their projects and career path.
if you connect well, ask for advice on how to stand out in the application process. this approach often naturally leads to them offering a referral.
focus on curiosity instead of job hunting. ask about hobbies, discuss work-life balance, and talk about career goals.
most importantly, be present. don’t treat a coffee chat like a 30-minute checklist. just be human and let the conversation flow naturally. show excitement and use active listening, like repeating key phrases they use, to show you are engaged. building a multi-dimensional relationship is far more effective than just asking about work.
always send a follow-up note within 24 hours of a call. thank them for their time, mention a specific detail from your conversation to show you were listening, and keep them updated on your career progress over time.
companies are made of people. while teams want capable performers, there are thousands of qualified applicants in the market. making the effort to connect is what puts you first in line.
you will never feel 100% prepared. the secret to recruiting is doing preparation and applications in parallel to maximize your time.
if you wait until you feel ready, you will miss the hiring window entirely.
recruiting is a funnel. since it is a probability game, your odds of landing an offer scale directly with application volume.
applying and leetcoding must happen at the same time.
while you wait for companies to respond, keep studying. when the interview invite comes, you will be ready enough.
don’t wait for jobs to pop up on generic job boards.
use different resources to find roles early:
while you wait to feel ready, someone else is actively applying, networking, and taking those spots.
every day you hesitate is another day someone else moves ahead of you in the queue.
recruiter screens are simple fifteen minute calls. it is mostly a vibe check to ensure you are qualified, communicative, and not crazy.
don’t spend too much time preparing for these, your focus should remain on technical and behavioral rounds.
recruiters have a specific list of boxes to check, like graduation dates, visa requirements, and timeline alignment.
do not go deep into technical details unless they specifically ask. they are not engineers, so keep your qualifications high-level and focused on aligning with the job description.
do preliminary research on glassdoor/reddit/linkedin/etc. to check the culture and ensure it is a good opportunity for you.
when explaining why you want to join, pick out specific phrases from the job posting or the company mission page and integrate them into your narrative.
state that you are familiar with their tech stack and mention projects where you have used it.
my friend matthew nguyen (meta intern, berkeley ‘26) gave me this great mindset:
“gaslight yourself into loving the topic you’re studying.”