Graduated students often wonder what is stopping them from being called in an interview. Let's say you're a very good programmer. But the recruiters don't know that. To prove your skills and your worth, you have to get called for the interview first. This is where a strong profile comes into play. By profile, I mean your LinkedIn, GitHub and your overall brand as a programmer. In this article, we will discuss different tips on how to improve your profile, these are the same ways I followed myself.
The process can be divided into mainly two categories - building your brand and networking.
Building your brand
A strong GitHub profile will speak for itself
Try to build some unique projects, it doesn't have to be for academic purposes only. In fact, doing projects on your own is the best approach to learn and grow. All those projects should be recorded in GitHub, using proper commits and workflow. What I mean is, don't do the whole project at once and publish it under a single commit. Your commits should reflect the development path.
Avoid hotel management or library management type of stuff. Those are very common, easy to implement and complete code is available on the internet. It is tough to build unique projects, in that case, do some common projects but make it more challenging. Want to make a to-do app? Fine. Instead of making a simple to-do app, make it collaborative. With just a simple collaboration feature you just introduced a challenging aspect in your project. You should try to incorporate challenging stuff in your projects so that recruiters know that you can create innovative solutions. The projects should have a visual component that anyone can use. For example, think of the recruiter as your customer. He should be able to use your project and benefit from it without knowing technical details. So, if you're making a web application, keep a live version running online for demo purposes.
Try to avoid frontend-only projects
Most companies look for full-stack roles. Besides, only front-end work narrows down job opportunities. So, try to incorporate the backend. If you think of yourself as a mobile application developer, it's better to switch from that because it's only frontend work (Using Firebase doesn't make you a backend expert). You should also know the backend and do projects using databases and stuff.
Preach your projects
Don't just do projects and relax. Spread it. Use Facebook, LinkedIn and most importantly, Reddit. Try to gather Stars for your GitHub projects. Some Reddit pages where you can showcase your projects are r/webdev , r/python and r/programming. In your post, explain what the project does, what kind of problem it solves and most importantly, what kind of challenges you faced and how did you solve it. It's even better if you can attach a demo video of your project.
Get involved in open-source contributions (optional)
This will drastically boost your profile. You can read this comprehensive guide on how to start contributing to open-source projects. With such contributions, you will learn how to understand a large codebase and work in a team-like environment. Of course, noteworthy contributions should be mentioned in your resume.
Please note, getting started with open-source contributions is difficult. If you don't like it, then don't stress over it.
Build the homepage
GitHub now offers an amazing way to introduce yourself. You just have to create a repository with your GitHub username, like this. This is the best place to showcase your work. You can find some inspirations in Awesome GitHub Profile Pages repo. Add your intro here. Pour your full creativity into this.
Most importantly, don't forget to pin your top projects on the GitHub front page.
Share your knowledge with the world
If you don't have a tech blog, start one. Write about the stuff you learn day to day. Blogging will help you reinforce your learning. You can write articles for beginners like you, or advanced articles if you feel confident enough. When other people see your blog, they will understand how you think and how you solve problems. But be careful not to publish wrong information. To start your blog, you can use Hashnode or Medium whichever you prefer.
Alternatively, you can start your own YouTube channel if you feel like it. Even better, you can do both. I know about one of my co-workers who got called by Amazon just because she had an awesome YouTube channel teaching computer science.
Whatever you do, preach it. Use the platforms described earlier. People should know about your blog.
Internships and part-time jobs
As soon as you can, get involved with internships and part-time jobs during your academic life. This will boost your profile without any doubt. The best way to get into internships or part-time jobs is via networking. Keep a good connection with your university seniors and related online groups and platforms.
A simple and minimalistic resume
Create a simple resume, don't add any icons or fancy designs. To create a resume, I would recommend either Novoresume or a Latex-based resume. You can find Latex resume templates in Overleaf. The resume should be a single page, either double column (equal weight) or a single column. Your photo is not necessary. Your resume should contain the following sections in order (assuming you're a fresh candidate in the job market)
- A small introduction about yourself, as concise as possible. Describe what kind of role you're interested in and how you can add value to a company
- Skills (Technical, specifying soft skills is not important)
- Experience (include any part-time, full-time, remote or freelance jobs experience). Nobody cares if you were the president of your university's Computer Society or Debating Society. These are not experiences)
- Projects (A small description of each project along with what tools/tech stack were used to make that project). Also, add the GitHub link to your project. Don't add the demo link here. Your GitHub's readme page should contain the demo link
- Achievements (Any contests or hackathons you participated in and made an impact)
Also, at the top of your resume, don't forget to give your LinkedIn and GitHub profile links. Be careful of your grammar and spelling.
When writing about your experience, follow the action-outcome rule. So instead of writing this:
Implemented feature X in the application
Implemented feature X in the application which helped the company retain 2X more customers
Grow your network
Participate in hackathons
Whenever you get an opportunity to get into a hackathon, do it. Regardless of whether you're prepared for it or not. Use it as an opportunity to connect with other developers and important tech people. This will help you grow your network and your recognition.
Hackathons will also teach you how to work in teams and come up with innovative solutions within a strict time constraint. It will test your patience and discipline. You can select some of your friends with whom you will consistently participate in these hackathons. Don't forget to mention any noteworthy events in the Achievement section of your resume
LinkedIn says it all
Your recruiter will first look into LinkedIn. Keep your information updated. At a minimum, your profile should contain a photo, a cover photo, a small introduction, experience, honors and awards and languages.
For each company experience, try to describe what you did using the action-outcome rule described earlier. I see many people make the mistake of putting social and club activities in their LinkedIn experience section. That is a mistake and it puts a question mark in your professionalism. LinkedIn has a separate section called 'Volunteering Experience' where you can put those things. Remember, it's okay for a fresh graduate to not have any solid experience.
As you know, you can set a title with your LinkedIn profile. Instead of writing
Software Engineer, you should write
Aspiring Software Engineer. Similarly, use
Aspiring Data Scientist instead of
Data Scientist. In this way, when you sit for the interview the interviewers will go easy on you because you didn't actually claim to be an engineer who has zero experience. It further clarifies that you're not boasting or over-confident.
Build valuable connections
Please don't treat LinkedIn as Facebook. It is not the place to add your Facebook friends (although you can and that's totally fine). You should focus on building connections with people who have the same job interest and who are already working in those job sectors that interest you. Don't miss the chance to connect with HRs and recruiters of bigger companies.
If you have some target companies (which you should) that you would like to work for, get connected with the people who work there.
Don't hesitate to reach out to strangers
The primary goal of LinkedIn is to connect you with other professionals, so don't hesitate to initiate first conversations.
In fact, when you are going for the job market. Do the following:
- Connect with the people from the target companies
- Endorse them for few skills
- Ask them in the message for referrals by introducing who you're and showcasing your skills.
At first, it might seem a bit lame to endorse people you don't know. But you have to understand how endorsements work. That person is already working in a good company and other people have already endorsed him for his skills. You can select the option "Heard from other people about his skills" when endorsing.
You will see that more than 50% of people will either reject or ignore your referral request. But that shouldn't stop you from continuing.
You can follow this message format to connect with people by leaving a note:
Hello, I am X. I am really impressed with your profile. I'm interested in a similar job sector/your company so I would like to connect with you.
You can follow this message format to ask for a referral:
Hello, I am X. I have been following your company for a long time and I'm also impressed with your profile. I see there are some job openings right now. Here is my GitHub profile (put your GitHub) and here are some of my noteworthy projects I would like you to check out (put some of your project demo links along with GitHub code). I would be very grateful if you can refer me for the X job position. Thanks in advance. Looking forward to hearing from you.
Ask for recommendations
LinkedIn has a section for recommendations. Having some recommendations will attract more recruiters to your LinkedIn profile. Try to get recommendations from industry professionals. These people can be your manager during your time of internship/part-time, CEO/CTO or even coworkers. If possible, try to get recommendations from a high ranking professional. It's better to have only one recommendation from a highly qualified professional rather than five normal recommendations. You should target to have at least three recommendations in total. Although not much important, you should also ask people for skill endorsements.
Not needed. You can gather Coursera certifications as much as you want, but it won't help you get a job. However, your projects and your skills will.
The above-discussed things are general guidelines and it doesn't mean you have to follow all of them. For example, you can do fine without starting your own blog. The same goes for open-source contributions. Everybody doesn't have to follow the same path to become successful. Some people might get a job just via networking. Some might need to do both networking and branding. It varies from person to person where luck is an important factor. But ideally, you should try to tackle as much as possible.
Preparing for interviews
Now that you know how to make your profile attractive, time to prepare for interviews. Different companies have different interview procedures:
- Some companies will assess only your data structure and algorithms knowledge
- Some companies will assess your technical competency, critical thinking and teamwork capabilities through long discussions about your projects and past experiences. Also giving you tough projects under an extremely strict time constraint.
- Some companies will do a combination of 1 and 2
If you know about your target company's interview procedure, you can prepare accordingly. But it's always a good idea to prepare for a global scenario. You already did project works. Be prepared to answer questions about the projects you put in your resume.
Now it's time to sharpen your basic computer science knowledge.
To sharpen your knowledge on data structure and algorithms, allot 6-8 months before attempting the first interview of your life. You will do only DSA (data structures and algorithm) problems in this timeline. You should use Leetcode for interview preparation. Try to do around 100 easy and 100 medium questions. Then continue solving more of your choice. Although how many questions and what type of question you want to solve is purely subjective. Don't stress over it if you're not good at it. Most companies will ask easy questions, even some companies will ignore it altogether. With the preparation of 6-8 months, you can also attempt FAANG company interviews. There's a myth in South Asian countries that you have to be a competitive programmer to get into FAANG companies, which is not true. Getting into a FAANG company from a foreign third-world country is always tough, because in that case, the company's expectation bar is very high, no matter what you do. For example, if you're applying to Google from Bangladesh, their expectation bar will be very high just to get called for an interview. On the other hand, if you're a US citizen, the expectation bar will be standard and you will get called fairly easily. Maybe you're worthy of FAANG company, but to prove that you have to get called into the interview first. Here, a strong profile comes into play again, how you got the strong profile (either competitive programming or projects/open-source contributions or job experience) doesn't matter.
That's it for today folks. Don't forget to leave your feedback and questions in the comments below. If you want more articles like this, subscribe to/follow my blog. Thank you. Have a nice day!