Recently, I received my master’s degree in February 2016. Over the past few months, I was searching for my first job. In this post, I will share all information I have learnt during this long and painful period.
Hire an employee for a company is very difficult, this means it is also challenging for us to find a job. Especially, when we do not have any experience, it is even harder to get a good job. And, I hope these tips will help any fresh graduate student looking for a job as a software engineer.
This article is split into three parts. First, I will introduce how you can get experience while being a student. Then, the preparation you need to do for interviews. Finally, the different stages of the interview process.
This advice is only from my own perspective. Do hesitate to leave a comment if there are something wrong or if you think we can improve this post.
Part 1: Get experience while being a student
60% percent of your job searching should be focused on this section. Actually, you should do these during your study and before looking for any job.
Start personal projects
You should start projects outside of school. Use your spare time to build a website, mobile or desktop application. You will be more familiar with new technologies.
You do not have any idea about the project, you can start from scratch a project that already exists. Implement yourself some software is good way to understand deeply how things work. For instance, I have implemented Chip8 emulator and FAT32 file system reader.
I did not take any course about emulator or file system. You are maybe in the same situation. So, you need to find all resources (videos, images, links, articles, specification, etc.) about the system you want to implement. You need to understand every part of the system. Otherwise, you should not be able to implement it.
As you can see, these two projects are on GitHub. It is a powerful tool to host your code and show your programming level. You can see my GitHub profile by clicking on this link if you want to see other projects.
Get professional tools for free
GitHub have done partnership with cloud provider, domain name management service, email delivery service, game development tools, etc. As a student, GitHub provides these tools for free, the program is named Student Developer Pack.
Make your project open source you can save money. This tip works for everybody, even if you are not a student anymore. I list here some tool that is free when you do an open source project (not free when it is private):
- GitHub, a source code management
- GitHub, a web hosting service. Yes, yes, you can host your static website on it. For example, this blog runs on GitHub
- Travis CI, a continuous integration platform
- Coveralls, a code coverage tool
Consider your projects as products you want to sell
I also suggest you to make your personal projects available to users. You will meet some challenge you can only face when people use it. During high school, I have built a website named Fais moi connaitre.com. One version of the website have attracted more than 10 000 users. At peak hour, it could handle 200/300 users requesting 2 HTTP requests per user every 6 seconds (200 * 2 * 3600 / 6 = 240 000 requests per hour).
This means you always try to build high-performing and scalable system. You also need to secure and maintain your application. Especially when your website accepts online payment, like Fais moi connaitre.com.
You will be very close to a real world environment: you need to make your website available all the time (24 hours per day, 7 days a week), write high-quality code, find a solution to upgrade your system without impacting the users, etc. I have only introduced the technical part, there are tons of non-technical tasks: promote, attract, retain and provide a support to users.
Doing personal projects will also help you to get an internship and not only a job. During your interview, you can mention them and try to impress the interviewer. An internship is a great opportunity to work in the industry environment and have an overview how people works in “real” world. The experience you have gained during internships will be useful for your job searching. It is also much easier to get an internship compare to get a job.
You should also write a technical blog, there is a really nice article that explains very well why you should do it: Start a technical blog, it’s worth it!. The article was posted 5 years ago, the only thing I disagree is to use Wordpress. Today, we have a good alternative: Jekyll. I have written an article about why and how I switched from Wordpress to Jekyll.
This advice should put the odds in your favor for your job hunting. It should reduce your pain during your search. If you think I miss some important part, do not hesitate to leave a comment below.
The second part of this post will be about the preparation for interviews in tech companies.