Recently, I have been asked to be part of the recruitment process in the company I work for. While it is not my first time doing this type of processes, it's my first time doing it outside the "startup world". Unlike startups, here we have established strategies and protocols to follow together with the human resources department, besides, unlike my previous experiences I do not have the full control of the recruitment process itself. There are several stages on the interview process where I am on the fence being a spectator of how the recruitment will perform in other steps aside from the tech interview.

Getting into the point, I have perceived few cases where I feel huge impotency to not be able to talk with the people before they enter to the interview to try to help them to perform in the best they can. In some cases, I felt we as company miss folks that just need some advice to unleash excellent potential.

In the following post, I will try to give you some tips as I were with you before the interview started. From now on let's define a timeline where we are in the moment just before you to join into the meeting to show off that you can perform as a software developer within the company.

The super hero pose

This comes from Amy Cuddy in her TED Talk be aware from minute 13:00 if you want the TL;DR version of the video. But basically, the deal is that your brain is a complex part of the human being that can be influenced to perform in a better way through something not that complex... your body language. In that sense, the idea is to load yourself with a little bit extra of confidence and energy before going into the challenge by posing like a superhero for honest few minutes, your whole being enters in this "confidence state of mind".

While you are on it, what you want is to conceptualize some of you advantages and strong points, you want to tell your brain the story of why you are capable of being where you want to be. Between those facts you want to embrace I will give you a couple of extra ones:

  • You are already a winner and part of a small group. There is a lot of demand for people that can solve problems through code (or even solve problems at all). There are numbers on the internet around studies of the lack of software engineers for the amount of work there are. Cheers!! you are special in case you didn't know yet.
  • When you are in a talk the company is investing a lot in you, engineer time and money in general to being able to explore you, in this movie you are the protagonist.
  • There is no way at all that this experience can turn out bad, it would be always an opportunity to level up as professional and meet people from the industry (prepare in beforehand some of the questions you would like to ask the people interviewing you).
  • Probably some of the interviewers can be even more nervous than you are. Never forget that we all are learning from each side of the interview, being the one that leads the state of calm in the interview will give you automatically extra points.

Once you really digest that information, take a deep breath and RELAX, that's a key point.

Your soft skills

While you are probably in the tech stage of your interview process, the communication skills are something that will always influence the way the people think about you. Internalize that and let the people know how cool is to work with something like you. To do it, you don't need to say anything explicit related to it, just make sure to smile, say "hi", be honest, full-fill yourself with good vibes, be honest with your answers and let the best part of your personality be there with you along with the whole session.

Let your mind to be read

Candidates often fall rapidly in a cage of loneliness, is like often people forget about the fact that they are being watched and interviewers need and want to explore how you are in this professional environment. Having that in mind, please do not be afraid to speak and being explicit in your process of thinking.

Even if the final output of your solution is wrong the fact of the walkthrough the interviewers through your thinking is a super valuable skill that can compensate if your technical execution doesn't find the solution.

A lot of times, and it is particularly true for Junior interviews the interview you will be involved is a sort of representation of a "pair programming" session, with that being said make sure to be comfortable speaking out loud on the iteration of the solution for the problem. The idea can be easily described with two examples:


Interviewers describe a problem for you to solve
You: ...
You: ...
You: ...
You: ...

5 awkard minutes later

You: "I will do X"

In the other hand, you can have something like:


Interviewers describe a problem for you to solve
You: Mmmm ok... I see, let me think about the things I have anidentify the problem
You: I can divide the problem into these pieces of X, Y, Z.
You: I will start with X and then we can figure out how to refactor ineeded.
You: What do you folks thing?

As you can see the two examples are very different and only the later one feels more like a conversation. This later example is the one that you want to seek.

Iterate with confidence

You need to understand that everything you say out-loud doesn't have to be perfect. Propose approaches and ask for feedback. It will allow you to keep the calm state and show that you are comfortable making mistakes which is part of the iteration towards the final solution.

Don't get scared if at first, you feel the problem is super complex. Iterate and speak out loud about the way you will identify the problem and how you will break that problem into smaller ones. Keep a pace, there is probably enough time to solve the problem, give yourself time to think and question yourself while elaborating the plan and only then start to write code.

There is an awesome book called Problem Solving 101 which is excellent to have strategies for us to tackle problems. The shift that you can introduce to your mind is to conceptualize that your process matters. You need to think about the variables you have, what the real problem is? how can you split the problem? and all those tips that can help you to navigate towards the solution.

Don't rush yourself

It is worse to have a bad abstraction than not have an abstraction at all.

Carry with that sentence forever with you, abstractions injects a certain level of complexity and you don't want to rush yourself to buy complexity, you want to show you are capable to bring value to the table and that you solve problems not that you can easily create more problems. One awesome thing to do to stick yourself with a plan, layout ideas and as a bonus let people know the roadmap of your idea is to use comments. Imagine you are being told you need to filter fruits and vegetables from an array:

const input = [pineapple, onion, lettuce, apple]; const main = (input) => { const output = []; // check if the element is a veggie // if is veggie do not push into result // else push into result return output; }

Of course, it is a very simple example, but as you can see after my comments you can more or less know what would be the approach I want to take to filter the fruits (omit the fact you can do it with a single JS method)

Enjoy

For real, you need to enjoy the process, whatever happens, take the opportunity to know more about the people in your industry, ask for processes that they have, probably you will find things that can work for you in the future. Be positive and allow yourself to shine in some way or another.