Job searching successfully

Pursuit new things. Be challenged. Be surrounded by people that inspires you.

Job searching successfully

This post is totally my personal opinion so if you don’t agree with it, don’t worry, there are multiple types of software engineers/developers and all of them are nedeed by the society.

I have been looking for a job for a while, doing some interviews checking on some job postings and have successfully landed a new job. These are some advice for other job-seekers in our profession.

As I am based on Madrid, take this advice as what it is, if you apply in other job culture society you can get some unexpected results.

Search for job positions in LinkedIn and Glassdoor. Submit your CV to positions that you have more than 60% of the skills that are listed. Usually recruiters are not technical personel, and list some technologies, and skills without any knowledge of the actual requirements for the job.

Thus, keep a network of recruiters as contacts. Be courteous when they offer you positions that are not a match for your profile. They can get your desire job or at least some interviews to develop a thick skin.

Big companies have their own job portals. Submit your CV to them and wait to be noticed (unless you know somebody inside).

Your CV will only pass the first filter a bunch of times so, apply to many positions and do the interviews.

Note that I do not consider making a door-to-door job search, leaving CV in the front-desk of companies. Most of the recruiting happen via internet or your ex-coworkers and other contacts.

Recruiting companies

Contact recruiters of recruiting companies. Not only because they work by searching jobs for people like you but to know what’s your value, what you can improve to make your profile more desirable, etc.

They are experts in what the market demands and getting that knowledge is helpful when deciding how to improve yourself as a software engineer.

MOOCs, personal projects, etc

Spending your free time doing some MOOCs can be a waste of time. MOOCs are good to get some superficial knowledge about a topic (programming language, framework, topic, etc.). However, it is very difficult to convince somebody of your skills in that area only by having completed a course.

That is why a personal project can help you justify your skills. But, in my experience, a good personal project takes a long time and if you are not ready to spend most of your free time doing it, you’ll soon start questioning yourself about the point of your effort.

A project will help you show your skills but, it is not common that any recruiter or even technical personel to take a look to your code. Only has happened twice. The first time was when doing interviews for startups.

Networking

It is easier to having someone vouch for you for a job than to convince a company that you’ll be a good worker there. That’s why “networking” is important.

Keeping a good relationship with ex-coworkers and ex-bosses is good for your career (and good for your psyche). Do not burn bridges, and try to be the most profesional worker you can.

They could recommend you for jobs or you can use them as past references, in case you are expected to include them in your submission.

Interviews

Interviewing is a skill that can be developed, that’s why I said “develop a thick skin”. Most of the time you will not pass to the next step of the interview process. Note I don’t say “fail”, because there are multiple reasons you are not a good match:

  • There is a cheaper candidate.
  • There is a better/more experienced candidate.
  • The position was closed during the interview process.
  • You had a bad day and “bombed” the interview.
  • The questions were impossible to solve for you.
  • … Any other reason you can imagine.

You have to be prepared to receive the bad news and learn form the experience. Usually you won’t receive any feedback (because of legal liability).

Many interview process have a step where you’re asked to do a “small project”. In my experience, you’ll have to spend more time in this project than they claim, and it is only used for eliminating fake CVs.

In my last job search, I rejected some interview process because they wanted me to develop trivial or non-interesting projects. If I’m going to spend my weekend doing a project to show to you that I’m good doing what I do. I expect this project to be challenging, something that makes me learn about a topic, and even show in my portfolio (github/gitlab).

Between interviews, study algorithmic problems with CTCI, leetcode or whatever source of problems that make your head spin.

Be challenged

I enjoy being challenged in my job, and can get bored if I’m doing the same again and again. My opinion about how hard have to be your job is that you should be learning something each week. It can be a new tool, algorithm, feature of programming language, etc. As soon as the months pass and you are not learning anything, you know it’s time to go.

Some say that 2 years is the minimum period you should be in a company before deciding to change jobs. My take is that with 1.5 years is more than enough, but you should set a limit of time to start searching for a new job. Take in account that (in my experience), finding a good job can take at least 6 month, so don’t wait until you feel burnout to start looking.

IMPORTANT: Do not stress yourself

Do not stress yourself with the idea of looking for a job. If you have a job that is boring but pays reasonable well, and feel depressed, do not start looking for a new job. Work on your mental health (having professional help can be a good idea) and when you feel ready, start “the grind” again.

Final advice

  • Do not leave your job before having another one.
  • Job search is a good push for profesional improvement.
  • Staying in a dead-end job can be harmful for your metal health and career.
  • Be profesional during the interview process and try to learn something in each of them.