Thoughts: Maximizing chance of getting a job offer
People like to ask about things like: "How do I write a good CV?", "Why am I not passing job interviews?", etc. Well the truth is only the company themselves will ever know what the real reason is. Some companies are nice enough to give you some feedback or reasons as to why they didn't pick us, but sometimes those answers can be pretty vague with no actionable items for us.
Folks new to the workforce tend to think that there is some kind of a formula to get hired. While that might be true to some extent, the reality is every company/job is never exactly the same. Personally, what I find really helpful is to try understanding this process from the perspective of the employer, so that's what I am going to talk about here.
In general, companies are hiring because they need people to contribute to their company. If it sounds obvious, that's because it is! Contributing comes in many forms, depending on the company and the expectation of the job. To simplify, let's just say contributing basically means providing values to the company. So essentially, when a company is hiring, they are looking for people who they think would best provide values to the company.
With this perspective, the answer to "How do I maximize my change of getting a job offer?" becomes much more simple: show the company that compared to the other candidates, you are the one that can provide the most value to the company. The hiring process includes several opportunities for us to convince the company about this, starting from our CV/resume, initial interview, assignments, technical interview, all the way to the final interview.
Okay, cool. What are the practical things I can do now that I have this information then?
The answer is a lot! We just have to take some time to research and think about it, and it'll eventually be obvious. The best way to start is by researching the tech stack that the company is using. Let's try an example.
Say we found out that the company is using Next.js and the job is a senior position that expects mentoring some less-experienced team member. We can start by tailoring our CV to it shows to the company that we have what they are looking for. We can highlight our Next.js related projects in our resume . We can also tell stories about our experience guiding/mentoring less-experience members in the team as well.
Remember that tailoring doesn't mean lying on resume! If we don't have the relevant experience yet, don't put that in the CV as it will be hard to explain if it comes up in the proceeding interviews. If we don't have the relevant experience and would still really like to get the job at the company, we should start putting aside time to acquire the relevant skills so we can put ourselves in a better position when applying. Remember that, especially at a more popular company, there are a lot of competition involved. In these cases, the companies have more options and logically they would pick the candidate that looks the most valuable to them.
Since most of the time this kind of question is asked by entry-level folks, here are some tips on how to show prospective employers that you are valuable as a less-experienced worker:
Research the company tech stacks, get familiar with them.
People familiar with the tech stack can be onboarded more easily, thus start being productive and providing value earlier. If the company is using React, learn React! And don't just stop there, look at other open source projects that use React, what other things do they use? TypeScript? Jest? Get familiar with them as well! Seek to understand how they work as well, you don't have to get in-depth, but at least understand it to answer questions like: "When/why should you use TypeScript?" to some degree.
Do some personal side-projects using the company tech stacks.
Doing this shows the company that the applicant is familiar with the company tech stacks. It also shows that the applicant puts in some time for self-learning, which is essential for growth in tech-related jobs.
Also, when you work on projects, chances are you encountered some issues that you would need to solve. Having experienced solving these issues can help you to come up with an answer when asked a hypothetical question during a technical interview.
Research what the company does (their products/services)
Writing code is just a small part of a software job. Having the domain and product knowledge is important to determine what code to write and how. Also, when you do this, you might even come up with an idea on how you could make an improvement to the product/service! That could be something to talk about during the interview if the opportunity comes up.
Find out about the company cultures and values
Companies generally prefer someone staying for a long time. Having to offboard employees and find replacements is wasteful. If the company knows that we have researched their culture and we feel like it's a nice culture to have in a workplace, that can be seen as a good thing to have.
No company is perfect. Understand what kind of culture you prefer, what you can tolerate and what you absolutely can't stand.
Don't be afraid to put in the extra effort
If you really like the job and the company, spending extra effort during the interview process for a potential, say, 3 years of a ride with the company is a very high-reward investment, especially for a fresh graduate. Getting into the right work environment can expose you to many different things and greatly accelerate your growth, which in turn becomes your leverage for future job interviews.
Don't be too afraid of potential bad working environment. Most companies have 3-month probation period, in which you can resign from the position without consequences. Though if the company doesn't provide probation period, tread carefully.