How to ace a developer’s interviews marathon ?

Donia Chaiehloudj
9 min readDec 14, 2020

Getting a job in tech is not so hard, but getting the challenging role in a company with who you share the same values, and, above all, honourly paid could be a more complicated journey! A few months ago, my mission as a contractor was coming to an end. Disappointed ? Yes I was. I really liked my daily job and my beloved team. However brutal this announcement was, I took it as an opportunity to finally join a major company. This was the beginning of my marathon. As a throwback, I am sharing today my tips and experience.

Step 1: Clarify your expectations

You should define what your next move looks like. List your strengths and what you are looking for. For myself, I was aiming to be a backend software engineer playing with cloud technologies and facing microservices architecture.

Step 2: Resume, cover letter and profiles

The resume is the facade of your professional life, determining if you will get an interview or not. There are a bunch of resources to get a nice and readable resume. I used cvdesignr which enables you to have your resumes in different languages and online. The tool has a useful duplication option and is pretty user-friendly. I have also read about canva. In my collection, I have a long and a short version of my resume that I can propose to recruiters. Two of my friends double checked it to make sure that there were no typos or errors.

Concerning the cover letter, I wrote a generic one that I could easily adapt to focus on the experience to fit a specific offer. Make it reviewed also by friends, mentors, colleagues, whoever is able to bring you a critical look. I got inspired by several articles such as How to write a cover letter as a software developer ?

LinkedIn is a powerful tool to develop your network and definitely find a job. I set up my profile open to work and made it consistent with my resume. I also had an amazing recommendation from my tech lead. So, you can ask colleagues or teachers to leave a recommendation and also recommend skills. I found this article from Volt summarizing the tips to get a nice and attractive profile.

I also updated my profile on Github with a brief description and turned some private projects public. You can participate in open source projects by resolving small issues in public repositories. By the way, my Github link appears on my resume and so does my LinkedIn account.

In summary, make all your profiles consistent and active.

Step 3: (Re)activate your network

Network is really important. It is composed of friends, classmates, teachers, colleagues, ex-colleagues, colleagues’ friends or people you met at a conference, basically anyone you know and appreciate. LinkedIn is your best ally. Send messages to those key people, explain your situation briefly and what you are looking for with your resume attached. I would go with something like this:

“Hey, I hope you are doing well! Just to tell you that I am actively looking for a new position because …, so if you hear about something that could match my profile please let me know! You can find my resume attached. I will keep you posted if something moves on here! Thank you….”

Step 4: Let’s apply

There are a lot of websites today to find opportunities. Here is a short list of where I applied :

There are so many of them, depending on what you are looking for! Actually, you’ll find a dedicated website for each preference. The traditional way is still to apply on company websites. In the case of an appealing offer, I took the time to adapt my resume and the cover letter when needed.

Step 5: The interview process

A few days later, I began to receive answers!

How does the company hire ?

I faced a lot of recruitment processes but basically they follow this kind of pattern. First, a phone screen interview with a recruiter (30 minutes call to check that you are the real person behind the resume and give you details about the job) then a take-home assignment. If this step is satisfying, an HR interview follows, as well as a coding challenge, a design interview and a technical conversation with a tech lead/manager. You can find many resources describing these interviews and how to prepare, I found this one pretty rich. Nevertheless, I would like to give you my approach.

Phone screen interview

Be ready to talk about yourself. I suggest practicing pitching yourself in 5 minutes. I am a talker so it is not really a problem for me to explain my professional experience. But if you are shy or not comfortable with selling yourself, practice. Practice alone, practice with a friend, with your family. Practice. At all steps, you will be asked to pitch yourself. I took advantage of the lockdown, to have some keywords on my notebook during the interviews to make sure I was on track.

You will also have the usual questions and the final question about salary expectations. Having a number or a range is necessary. To determine it, I used Glassdoor, the salary of my colleagues and always asked more than I wanted. To adjust the expected salary, I took into account the location of the company, the size and the reputation. In any interview, I was asked if I had questions. So, make sure you prepare questions that are relevant to your interviewer and also define if the job fits what you expect!

HR interview

The HR interview is a deeper version of the phone screen conversation. I picked training questions in articles as Top interview questions and answers or Interview questions and answers. We practiced with my dad playing the recruiter while I tried to fit the offer and stayed honest. Also HR recruiters expect from you to use the STAR method. If you are unfamiliar with it, please read What is STAR interview response ?.

Take home assignment

Some companies give a take home assignment to submit or ask for a personal project fulfilling the given requirements. My advice is to have a personal project on your Github to display your abilities to code and also to show how you organize, document, test and package your code. Setting up a CI is definitely a plus. It is also important to have code reviews from peers you estimate. Those tips can also be applied in the case you have to submit a specific assignment. A recruiter gave me this list of advices that I believe relevant:

  • Don’t ignore the packaging (code easy-to-run and readme) ;
  • Think about the code readability (style, structure, comments) ;
  • Archi : we invite you to use existing tools/library ;
  • Efficiency : what about performance (good data structure ?) ;
  • Test : good set of tests that may cover edge cases.

At this point, I had a notebook with all my notes of the interviews and information from the preparation. I also built a Trello dashboard with all the technical tasks and labels for each project. I set up a calendar with the interviews and the deadlines to prioritize my tasks.

Coding challenge

Glassdoor is a community tool where candidates share their interview experiences, you can find the questions and exercises you might be asked. During the phone screen, do not hesitate to ask the kind of exercises they give, advice or topics that might help.

As I was applying for Golang jobs, I bought the book The Go programming language to review my basics and Go deeper. Also I have a daily digest from Medium about Go and I registered to the John Calhoun newsletter and the podcast Changelog.org.

There are a lot of resources on the web to train, the recommended ones by the recruiter from Datadog during the prep are Leetcode.com, Geeks for Geeks, Code Chef, Project Euler, More algorithmic challenges! and I also used Codility, Code chef, Coding game. The most used platform during my interviews was Coding Pad. Make sure prior to the interview to familiarise with the platform. During the interview, ask questions to get all the requirements and think out loud to make sure the engineer understands your logic. I also created a public repository with all the resolved exercises !

Design interview

It is a tricky one. It is based on your knowledge of technologies and your experience. It requires a lot of knowledge about different technologies and what choices you will make in which situation. So, I basically watched design interview prep videos, read articles, took notes and drew schemas in a dedicated notebook.

I had only two different design interviews during my processes. The first one was actually pretty amazing with a head of ops and monitoring. He was not here to trick me but really to see how I think and was okay that I did not know certain patterns. I will not go into details about the other one, I was pretty embarrassed and the feeling with the interviewer was pretty bad. The platforms used were Google Drawings and Excalidraw.

At the end of the interview, they expect you to show how you think and your tech culture at your level of experience.

Technical conversation

I did not really prepare for this step. What you can expect is to discuss technically what you did in your previous experiences and talk about concrete situations. I genuinely invested myself in my last job, so I am able to discuss technologies used, the whys, design choices and what was my part in the project. I know when and where I failed, succeeded and have concrete examples of my professional experience.

To conclude this step, I will say that, for each interview, I have done research and prepared technically — be organized. If you already did interviews with companies you are not interested in, this is the right time to make a selection and drop some of them. Have people around you that support you, partner, mentors, friends, colleagues, all of them were there for me during those months and it was precious.

Step 6: The closing

Rejection

It is normal to be rejected, Abadesi Osunsade said in the “Young, diverse & ambitious women” masterclass of 50InTech bootcamp: “Rejection pushes to growth, is an opportunity beyond your comfort zone, a challenge to yourself. If you fail, it means you learn.” Everything is said, I learnt so much during these past months, I trained myself, I read articles about subjects I did not know anything about. I learnt new technologies and also started looking into frameworks that I hadn’t considered earlier, even though I had been working with them for two years. Yes I cried, I am not going to lie but today I am so proud that I did it. So, just accept it, get feedback and go beyond.

Positive answers

Hopefully you are going to get offers. Ask for delay if needed, to give answers. Let the other companies know that you have already received an offer, they are most of the time comprehensive and will accelerate the process.
In my case, I accepted an offer and signed a contract, eventually cancelled it for a better offer.

The human resource recruiter will call you to announce you the good news and will probably talk to you about salary. Here, whether you are satisfied with what they offer or not, you can start the game of negotiations.

Negotiations

I will definitely recommend you the bootcamp of 50InTech “What I really really want — Negotiate salary. Get a yes.”

Finally, I would say compare salaries on Glassdoor or just check on Google any information that could be helpful. You can connect with people in that company on LinkedIn. Ask your colleagues or ex-colleagues about their salary and the money you might earn. Always ask more than you want at the beginning of the process and have a target in mind. Do not give up, build the list of your arguments. I did not hesitate to say when another company offered me more (which was true).

In brief, prepare at each step, stay curious and enthusiastic. I believe that you create opportunities in your life so take advantage of all the acquaintances that you have. I hope you ace your marathon!

Photo by Andy Beales on Unsplash

Here is a non exhaustive list of the companies where I entered in the recruitment process: Darwin recruitment, Datadog, EGM, HelloFresh, Isovalent, Mediakeys, Movio, RockVista recruitment, Sqreen, Stakha, Symphony, Refurbed, Thalès Alenia Space, Zalando.

--

--

Donia Chaiehloudj

Golang software engineer and tech event organiser! When AFK you can find me swing dancing, sewing or hiking.