- Published on
Resume tips for early career devs
I see my juniors making the same mistakes in their resumes that my friends and I did. I rewrote my resume many times while applying for different internships in college, so I thought I should write down what I know.
Most of the advice below comes from one simple fact. Someone is going to look at your resume for just a few seconds and decide whether to take you forward. So you need to make it easy to see your strengths and your relevance for the role.
Looking for TL;DR? Skip to key takeaways
Image by storyset on Freepik
Guiding principles
- Make it easy to read. Highlight your strongest projects and achievements, and make them bold.
- Keep the design consistent. Don't use too many colors or fonts. Less is more.
- Order the sections by what's most attractive about you. Some things are worth far more than others, so
Internship >> Interesting Projects and/or good DSA profile >> Education/Courses/Certificates. Keep education on top only if you believe that's better than your internships or projects, ideally if you haveCGPA >= 7.5and are from a reputed college. If education isn't your best front, focus on internships, projects, and DSA instead. You can put education towards the end and maybe even skip it. - Keep it to one page. Your resume is there for someone to instantly decide whether to take you forward. What helps is that they can instantly see what they were looking for. Alter the spacing and font size to fit more or less content, while maintaining a decent margin and good readability. If you want to write a detailed intro of yourself, write it on your blog or GitHub profile README.
- Nobody expects managerial skills from a fresher. No good company asks for them in an early career engineer role, so focus on technical skills.
- Know when it's good enough. Don't over-optimize. ATSapplicant tracking system, the software companies use to store and filter resumes checkers are fake, as this tweet by an ex Engineering Manager of Uber explains. In reality your resume gets looked at by an actual human (HR), either before interviewing or after a coding round when hiring in bulk. Once it's good, switch your effort to getting a referral, which gets it in front of that human within hours or days.
What goes in each section
Skills
- Never rate yourself in a tech stack. Writing "Python (3/5)" or "Express (intermediate)" is bad.
- Rather just mention whatever tech stack you're familiar with.
- You can split this section into Languages, Frameworks, and Tools. But feel free to keep them as one.
Social profiles
- Add links to your LinkedIn, Twitter, and GitHub.
- Most recruiters will focus only on GitHub. So try to have some good projects and green squares (commits) there.
- If you do DSA or CPcompetitive programming, timed contests on sites like Codeforces and Codechef, add those as well and highlight the number of problems solved or your rank/rating.
- It's really important to understand that DSA and CP are very different. DSA is mostly standard LeetCode questions but CP is Codeforces/Codechef competitions.
- CP is a sport. It's not for everyone. But those who master it find it easy to crack DSA rounds.
- Also, don't hate DSA. Try to see the beauty of the algorithm instead of hating the grind.
- Instead of solving thousands of problems you may choose to solve selected problems on platforms like Neetcode.
Experience (internships)
This is the most attractive part of your resume. If you don't have one, improve the other parts (projects and DSA) and grab an internship based on those. That loop is the whole idea behind building proof of work.
For everything around getting the internship rather than writing it down, I have two separate posts: what to do while you're still an undergrad, and how to pick the startup once you have an offer.
Side projects
- Most interviewers don't expect super cool (or unique) projects from freshers. It's great if you can, but you don't have to.
- What they definitely expect is that whenever they ask you any question related to your project, you should be able to give a detailed answer.
Where to find ideas:
- Write code to solve your own problem. I always wanted to track my time so I built this.
- Bots, extensions, and scripts are generally easier to build but can lead to great projects, like the iitbh-cgpa browser extension built by my friend Ambar and used by ~200 students now.
- Search for datasets on Kaggle that you find interesting and try to make sense of them using stats and visualizations.
- Pick projects from Youtube/Udemy/Coursera courses and extend them to add a few more features and make them different, even if slightly.
Then write a blog about the project and post it on Medium and Dev.to. It shows the interviewer you went the extra mile to document your work, and it improves your writing and your reach at the same time.
Resume-driven development
- You don't need to learn something just because it's "cool" or "in-demand".
- For example, Kubernetes is powerful but every team doesn't need it. Because it's a buzzword, many students run after adding "Kubernetes" to their resume even if they don't know the basics of it.
- It's okay to learn something out of curiosity, but don't do it because it's "cool". Have the right principles in place.
- Instead of such buzz words, focus on fundamentals of OS, networking, concurrency, parallelism, etc.
Where and how to apply for jobs
Use these sites:
- WellFound (previously AngelList and great for remote jobs)
- Work At a Startup (YC backed startups)
- Setup LinkedIn alerts for your favourite companies
- Influencers who post good job opportunities on LinkedIn and Twitter (very good source)
- Telegram groups, really good source if you're in India:
It's always better to take a referral. It helps you skip the competition and at least get noticed by HR. Anyone would be happy to refer you if your resume is good enough, because they get a large bonus when you join and stay beyond the probation period (mostly 3+ months). So never shy away from asking.
Just shoot 5-10 LinkedIn connection requests to people at the company you wanna work for and ask if they can look at your resume and tell you whether they'd refer you. Be respectful and have a good CV, many people would reply. People on the internet can be more kind than you imagine. Say something like this:
Hi [name], I hope you're doing well.
I came across a job opportunity at [your-company] and would appreciate it if you take a look at my resume and
let me know if you can refer me.
{/* Link to the job posting (additionally mention the job id if there's one) */}
{/* Attach your resume or give a link to the same */}
Link: https://company.example.com/careers/job/4 (Job ID: 4)
Resume: https://drive.google.com/my-resume.pdf
Thanks a lot!
Templates and example resumes
Templates I like:
- Awesome-cv (Latex based)
- Deedy-Resume (Latex based, use overleaf.com)
- awesome-cv-templates
- Templates in Google Docs and Canva
Resumes worth reading:
- Mine
- Deedy's (Founding Engineer @ Glean)
- Some good CVs that I collected
Further reading
- Career advice for ambitious undergrads, for the college years.
- What I tell my juniors about joining a startup, for picking between offers.
- FAQs related to GSoC, for getting started with open source.
From elsewhere:
- Tech Interview Handbook
- CSS Tricks on writing a technical resume
- Tools like Resume Parser and ResumeWorded will give you a score. Remember the score doesn't mean much, since ATS checkers are fake.
Key Takeaways
- Order your sections by what's strongest about you. Internship beats projects and DSA, which beat education. Education goes on top only if it genuinely beats the other two.
- ATS checkers are fake. A human reads your resume, so stop optimising for a filter that was never there and spend that time on referrals instead.
- One page. Someone decides in seconds whether to take you forward, and a second page doesn't help them decide faster.
- Never rate yourself out of 5. "Python (3/5)" tells an interviewer less than just writing Python.
- Don't learn things for the resume. Kubernetes on a fresher CV you can't defend in the interview is worse than not having it at all.