Disclaimer
This will be a collection of lessons I learned while searching for my internship. The lessons I learned might not be useful to you. Following anything listed here does *not* guarantee success, and at best can give you some things to think about to optimize within your own search. This post is also pretty casual, it should feel more like a conversation than a "blog post". Also this is mostly for new grad/internship searches. If you are looking for experienced roles, this may have a few lessons you can use, but I don't know. Please excuse grammatical mistakes.
Assumptions
I'll start with some things we can safely assume when applying.
- You will get a lot of rejections. > 90% of the positions you apply for will probably end in a rejection or ghost
- Chances are you will apply to > 50 positions prior to getting an interview
- Your resume is never going to be perfect, always iterate
Introduction
The summer 2023 application season was my summer of lessons. I applied to > 250 positions, had 3 companies reach out of which I got 0. I simply was not prepared and did not do my due dillegence in applying. Summer 2024 I applied to 52 positions, had 9 companies reach out, 3 offers, and 1 conditional offer (conditional on acquiring a TS/SCI Clearance). Let's walk through the various lessons I learned during this time. (organized as sections below).
Resume
Your resume might be the most important thing in your application. It is the gatekeeper between whether you ever enter the interview pipeline of a company. You will always read about those stories about how someone made a resume that looks like the Google search page and got a position at Google or made their resume look like the spotify homepage and got a job at spotify; while it is possible to make it unique and make yourself stand out, these are extreme outliers.
You can expect a recruiter (at medium/large size companies) to look at a minimum of a thousand resumes for a job posting, so it's good to make sure your resume is something that not only can a computer parse, but also a human with ease. The typical layout if you are new grad or still in school getting a degree is
- Education
- Experience
- Projects
- Skills/Awards
There are a lot of good examples here. The order you list these in is not a deal-breaker. You should generally make this decision depending on how much experience you have vs how good you feel like your projects are.
Some things to know about resumes and jobs
When you apply to a position you enter an Application Tracking System (ATS). ATS is an incredibly important part of your process. This is where a recruiter would get a chance to look at your resume and choose whether you should move forward in their process or not. The ATS will also include a resume parser which just parses your resume to try and find important information from it and see if you might be a good fit for a position.
So, after creating your resume, you should put it through a parser or three to find our how well your resume parses. There are several ways to do this:
- You can find a company (that you are not applying to) and start an application, go for "Apply by resume" and see how well your resume parses on their system.
- Workday is a good example of an ATS for this. Lots of companies use Workday
- Look up
resume parser
online and follow a couple of the links, see how well your resume parses and what things you can work on.
Things to keep in mind while writing your resume
- Keep it concise, ideally one page.
- Proofread your resume; spelling and good grammar are important (I cannot tell you how many times I've looked at someone's resume and it is filled with incredible horrid spelling).
- Try to cater the resume to each job you apply to. If you really want a job, take the time to tailor your resume to it.
- Try not to overthink the small things, like whether to put the company before the position or vice-versa. Things that won't make much of a difference are generally user choice.
- Avoid adding too much detail; it goes back to being concise.
- Quantify achievements wherever possible (e.g., "increased sales by 20%," "led a team of 5").
- Highlight relevant skills and experiences that match the job description.
- Use a clean, professional format with consistent fonts and spacing.
- Include links to your LinkedIn profile, portfolio, or personal website if relevant.
- Avoid using overly complex or fancy formatting, as it might not be ATS-friendly.
- Be honest; do not over-exaggerate and especially do not lie about your experiences or skills.
- Update your resume regularly, even when you are not actively job hunting.
- Get feedback from peers, mentors, or professionals to improve your resume.
- Use strong action verbs to describe your experiences (e.g., "developed," "managed," "led")
Projects
A short word on projects. As you tailor your resume to certain positions, try to make sure your listed projects somewhat pertain to the position you are applying for. For general purposes a good way to do this would to have copies of your resume. Lets say you are applying to ML, Full Stack, Clouds roles. You can have a resume with ML based, full stack based and cloud based projects and then tailor them further to specific roles. It's also good to show depth within a subsection, so having multiple cloud technologies listed for a cloud role might be a plus even if the position has AWS listed. Personally, I find it better if people list projects they did as personal/research projects rather than class projects but this is more of a personal preference.
Jobs
Now that you have a resume ready for some applications, lets talk about jobs.
Thankfully, finding jobs to apply to is the easiest part of the entire process. There always seems to be treasure trove of jobs to apply to out there. This section will mostly be tips I found to be useful.
- Learn how to use "Google Dorks". It can help with job searching. For example,
site:amazon.com "software engineer" AND position
or "software engineer" AND (position OR hiring)
or site:github.com "software engineer" AND (position OR hiring)
has a lot of Github repositories filled with different positions with open spots.
- Utilize your network, do you know someone who works at a company you would like to work at?. Reach out to them, ask about their role, how they like the company and if they are willing to refer you to the company.
- Apply, apply, apply. Don't just spit-apply, rather apply to as many positions as you feel like you could be successful at. (Notice I did not say "apply to positions you qualify for", if you see a position that you could grow into then apply. Do not worry about matching every single requirement).
Dealing with recruiters
Reach out to recruiters, the worst they could do is not give a response. You aren't going to get a response if you don't email and if you do and get ghosted then at least you tried. Some tips on emailing/messaging recruiters.
- Keep it short and concise: I can not stress this enough, imagine how many emails they get.
- Be clever with your subject line: This can make or break whether your email will even be opened or not
- Track your emails: To see how many times your email gets opened and/or forwarded. Mailtrack.io
- Follow them on LinkedIn incase they post of an opening that you are interested in. Go ahead and send a connection request as well, always add a note (think of this as your elevator speech).
- Highlight Key Points: In your message, quickly highlight your most relevant experiences and achievements. Include a link to your LinkedIn profile or resume
- Personalize your email: Say hi with their name, mention the company and why you would be a good fit
- Show Enthusiasm: Convey genuine enthusiasm, sound human.
- Follow up after 2+ weeks. One follow up is enough
- Recruiters read enough GPT emails in their life, sound human and genuine
Interviews
Congrats, you've landed an interview. When you land an interview, ask your recruiter what you should expect and how many interviews. If you are an intern applicant, you may only have 2-3 interviews, however, if you are a full-time applicant then you may have 6-10 interviews. This is a good chance to take a moment to appreciate how far you've come.
Interview Prep
Take a moment to research the process of the company you are interviewing with, the more you know prior to interviewing the better off you would be. Some questions to consider would be
- How many interviews will you have
- Which order will your interviews come in?, will you do behavioral -> technical -> ? or technical -> behavioral or something else?
- For your technicals, do companies tend to ask Leetcode style questions or do they have a different process?
- Are the interviews virtual or on-site?
- What questions do you have? (always have questions to ask)
Once you feel like you have found out as much as you can then you can fully start planning for your interview. Prepping for interviews is typically separated into two categories:
- Behavioral:
- STAR Method: Use the Situation, Task, Action, Result (STAR) method to structure your responses to behavioral questions.
- Common Questions: Prepare answers for common behavioral questions such as "Tell me about a time you faced a challenge" or "Describe a situation where you worked as part of a team."
- Reflect on Your Experiences: Think about your past experiences and how they demonstrate your skills and qualities.
- Technical
- Practice Coding Problems: Use platforms like LeetCode, HackerRank, and CodeSignal to practice coding challenges if you have a leetcode style interview. If your interview is projet based, try building out a project of the same style that you anticipate prior to the interview
- Review Core Concepts: Make sure you are comfortable with data structures, algorithms, and system design principles. Especially System Design, seems to be quite overlooked
- Start with Leetcode easy, do about ~30 easys then do the Neetcode Blind 75
- Mock Interviews: Participate in mock interviews with peers or use services like Pramp or Interviewing.io to simulate the interview environment.
- During the Interview
- Stay Calm and Confident: Take deep breaths, listen carefully to the questions, and take your time to respond. You do not need to have an answer to every question on the spot, it's okay to talk your way to a solution
- Be Honest: If you don't know the answer to a question, it's better to be honest and express your willingness to learn rather than faking an answer
- Engage with the Interviewer: Show enthusiasm and engage in a conversation rather than just answering questions. Each interview you do, even technical ones, are behavioral
- Ask for feedback and next steps at the end of your interview
- Post-Interview
- Reflect on the Interview: Think about what went well and what you could improve for future interviews. Don't over-analyze though, its okay if you made mistakes
- Follow Up: If you haven't heard back within the timeframe given by the interviewer, it's okay to send a polite follow-up email.
Remember, whether or not you get an offer is not a reflection of your value as a person.
Mental Health
Job search can be mentally taxing. It's important you take the time to take care of yourself. It's okay to take a couple days off from applying to take care of yourself.
- Take Breaks: Avoid burnout by taking breaks and doing activities you enjoy as the opportunity arises
- Seek Support: Talk to friends, family, or a mentor about your experiences and challenges
- Find someone who is also applying and go on this journey together. Bounce ideas off each other and keep each other motivated. It feels a lot less lonely if someone else is also applying with you.
Closing Thoughts
By this point, you have the lessons I learned as I was searching for positions. I'm not the most qualified person to make this blog post, but I hope it gave you something to think about. If you have any feedback for me, please reach out here.
You should also figure out what to optimize for, striking a balance between having super tailored applications but for a few companies or having more general applications for lots of companies.