My experience with hiring processes
In some weeks I’ll be starting a new adventure in another company. In this post I’m sharing some tips and ideas about hiring processes after sending countless resumes, facing innumerable interviews, technical challenges, and finally being hired by a promising team.
My previous experience
Before I decided to leave my current employer I participated in no more than three hiring processes, so we can say that I had almost no experience at all in terms of how to behave and how to succeed. When I decided to start this journey I found that everyone was recommending the Cracking the Code Interview book, so I decided to give it a try with a non-exhaustive diagonal read. If you have time I recommend you to do the same (or even better, to read it entirely). It contains a lot of worthy information even if you aren’t looking for a job: it gives you behavioral recommendations, refreshes your knowledge about algorithms and data structures, and unveils the most common questions you will face during interviews.
And that’s it, this is the whole idea: Read that book, and you are done. Thanks for reading and see you in my next blog post!
Nah, just kidding. Here are my tips!
Learn to fail and fail to learn
Almost everything in life requires practice and making the best of an interview is not an exception, so you must understand that most likely you’ll be rejected on your first tries, but doing them will give you invaluable experience.
Aim high, but expect to fail. Don’t expect to be hired by Google on your first try, but it’s true that the bigger the company, the harder the hiring process will be and the more knowledge you will obtain. Take these first interviews as pure training exercises, doing so will make you:
- Learn how to talk fluidly if you’re doing interviews in a non-native language.
- You will be more fluent using connectors, rich adjectives, and adverbs.
- Learn to control your body language and make the most of it. Watch yourself through the camera if you’re doing a video call: how you move your hands, your head… if you look nervous try to fix it in the following tries.
- Learn to answer typical questions.
This is all explained in Cracking the Code Interview as some theory you can memorize, but it’s different to retain the recommended answers than actually answering them multiple times in real interviews. After a few processes, you’ll notice that talking about you, your past, and your expectations feels incredibly natural, and thinking about that “hardest challenge” almost requires no thinking at all, appearing quickly in your mind so you can explain it fluently like you’re a famous TV host.
This is the whole idea behind training. You are probably a great professional, but you need to learn how to show that to people that don’t know about you.
Watch your self-esteem
Unless you’re a heartless machine, yes, your self-esteem will be probably damaged, you’ll feel discouraged and probably you will develop an impostor syndrome. My second tip is: Don’t make this personal. When you are rejected, simply move on and just keep what you learned. Looks easy, but it is not. I have felt humiliated, sad, frustrated… but in the end, you need to learn to ignore these feelings. Also, if you have a “training” mindset it will be easier for you to build this resilient personality, as you will consider each interview as just another exercise you have to do to gain more experience.
This sounds stupid, but I think it’s crucial. When you talk, don’t do it like a robot. Move your hands, change your pitch… in other words, show humanity and feelings. If someone says something funny, don’t be afraid to laugh.
If you’re not very extrovert (like me!), you need to get over it and lucky you, there’s a science behind this. Try searching more about a technique called “Storytelling”. This is an incredible tool and a catalyzer for your communication skills. I encourage you to learn more about it, it can be the difference between looking like a murderer or looking like a nice guy whom everyone would like to work with.
If the point above seemed obvious, this will seem even more, but it’s true. If you lie, it’s going to be discovered, no matter what you do to avoid it. Lying will make you nervous and your head will start working at 200% CPU to make up with a story, and this can be smelled from far far away.
Just be yourself. If you don’t know about a topic, be honest and just say it.
“Do you know what is a red-black tree?"
“No, but I guess it’s a tree data structure?"
This is better than the following:
“Do you know what is a red-black tree?"
“Yes, I’ve worked with red-black trees my entire life”
This will not only make the interviewer ask you everything you don’t know about these trees but also will make you terribly nervous and embarrassed, something that you don’t want by any means.
Also, be nice. Most interviewers will be your future managers or even your future colleagues. If you’re a narcissist or a hater, try to hide that, no one wants to work with a jerk (you will need also to try to amend that offline, if possible!).
If you cannot be constructive, avoid criticism
This tip is the most important, and the one that will make you fail without some growth mindset. In most cases, you are leaving your company because you don’t like something about its environment, people, or methods, so it’s easy to fall into hate. If you’re not able to propose a very specific solution to the problems you observed, just don’t start blaming. Every criticism must be complemented with a reasoned solution, always. Otherwise, you’ll look like a crybaby or a moron that only knows how to complain (and not only in interviews but in life in general).
Every interviewer will make this question to you, no matter what: “Why do you want to leave your actual company?". Always. Learn how to answer this constructively. This would be a good approach:
“I didn’t like how projects were managed at my company, I proposed several times to move from Scrum to Kanban because in my opinion blablabla…"
Take more time saying good things than bad things (in the previous sentence, you didn’t like a small thing, but you started to explain two agile frameworks in exchange).
For me, this is the worst part and I could write another blog post explaining why I think companies are completely wrong when they do these dumb 2-hour hallenge that consists of finding palindromes and avoiding O(n!) algorithms. Again, Cracking the Code Interview has a lot of examples but in my opinion, reading about algorithm resolution and pretend that you can reproduce it without actual coding is like reading a brickwork book and aiming to build a house without practicing.
I recommend the following websites:
Both of them are pretty similar. What I liked about them is that the challenges are classified by difficulty, you can use several languages and the challenges are fun to solve. Many companies use these tools to provide real hiring challenges to candidates, so you can kill two birds with one stone.
Also, I recommend you getting used to pair programming. Some companies like to watch you while you do a coding challenge. At first, it can be a bit uncomfortable and awkward but take into account that probably the bar will be lowered in these circumstances, as normally the goal is to check how you behave instead of checking if you’re a super coding hacker.
Finally, you will probably need to know some basic software engineering principles if you want to succeed. Take your time to study, learn, and prepare yourself to be able to explain what concepts like SOLID, TDD, design patterns or DDD are. Someday I’ll write another post with all the books I recommend on these topics.
Writing a CV and a cover letter
My CV is published on this blog so you can take a look. ;)
About the cover letter, I know it’s hard and normally it’s a pain in the ass. What worked for me is writing one and reusing it for every position (I take SRE practices very seriously, so I’m always trying to reduce toil). To achieve this, try to write something generic enough to be able to make little tuning for every company you want to apply to. This was the structure of my cover letter:
- Paragraph 1: Which position I’m applying to and why.
- Paragraph 2: My background
- Paragraph 3: Relevant tech skills
- Paragraph 4: What I’d love to do
- Paragraph 5: Closing
As a summary, we can simply state that expertise requires practice. You are probably a great professional but it needs some training to be able to shine and show it to the world. “Be honest” should be your mantra and you shouldn’t take failures as something personal.
With these simple tips, I’m sure you’ll make it! :)