The Tech Interview Behind the Scenes: Zhivko Petrov

post cover

The Tech Interview Behind the Scenes is an HRLabs series.
Let’s take a look behind the scenes of the technical interview process from the interviewers' perspective.
Our goal is to provide candidates with valuable tips and recommendations directly from professionals who conduct interviews for various technical roles.

"Exploring areas of missing knowledge is unproductive and uncomfortable for both sides.", shares Zhivko Petrov, Staff C++ Software Engineer at LucidLink.

Tell us more about your career path.

I have a background in civil engineering, but over the past 10 years, I have shifted to teaching and programming in C++ due to the course of circumstances.

My professional experience and interests lie in system programming, robotics, game development, algorithms, and code optimization.

A significant part of my time is dedicated to nurturing Bulgarian tech talent by leading numerous software programming courses and participating in technical lectures and conferences.

As a candidate, have you had any strange interviews? What about interviews that impressed you?

A few years ago, a company I applied to had an urgent need to resolve a specific set of problems. During the interview, I presented a concrete solution and steps for addressing the issues. The interviewer (Hiring Manager) was extremely excited that they had found the right person for the role. What he missed was that, during the discussion, I noticed a series of red flags that made me decide not to work for the company. This was followed by an exceptionally high salary offer from the employer.

Unfortunately for the Hiring Manager (and for my wallet), I declined the position. As important as compensation is for our work, it should not be the only goal. One must follow their intuition and principles and remember that the interview is a two-way process.

An interview that impressed me:

For one of the companies I worked for, the hiring process included several different technical interviews. In one of them, I was placed in a real "pair-programming" situation, where I was presented with a semi-working project on a computer under the pretext that the colleague who had been working on it had taken an unexpected leave. Sitting next to me was one of the interviewers, acting as a Junior Software Engineer teammate, with whom I could converse. How much I could rely on him technically was another question. Opposite me sat the second interviewer, acting as the Product Owner, to whom I could also ask questions if needed.

I was required to work with the little information I had, deal with the setup — unknown code, unknown development environment — and complete the project implementation. By asking the Product Owner for information, using pair programming with my Junior teammate, and thinking out loud. Even though it was classified as technical, this interview definitely covered a wide range of skills by which the candidate was evaluated.

It was definitely the most interesting and productive interview I’ve attended as a candidate!

What skills and qualities do you look for in a candidate? How can a candidate stand out during the interview?

Proactivity and passion for the subject. I firmly stand behind the statement that all the candidates I have interviewed who demonstrated these qualities received much more than a "yes" from me in my feedback.

It is incredibly captivating and productive when the candidate speaks with passion about the subject being discussed.

Instead of a list of questions and answers, receiving a passionate discussion – priceless.

What questions do you typically ask in technical interviews? Do you have specific tasks or problems that you often use to assess candidates?

In every interview, I ask a few basic questions about operating systems, the programming language related to the given position, as well as data structures.

Based on the quality of the answer received, I adjust the style, depth, and direction of my follow-up questions.

My goal is not to find out what the candidate doesn’t know. Exploring areas of missing knowledge is unproductive and uncomfortable for both sides.

Everyone has a limit to their knowledge. By focusing on what they know, my goal is to find that limit.

How important are good communication skills for a candidate? How do they impact the overall interview?

Communication skills are crucial in an interview.

In my professional experience, I’ve encountered strong technicians who were rejected at the HR interview stage and/or due to cultural fit.

The reality is that even if someone possesses the necessary "hard" skills, they are still required to communicate and collaborate daily with professionals who have different specializations, levels, and knowledge than theirs.

How important is cultural fit when making a hiring decision? How do you assess whether a candidate will fit well into the team?

I usually try to slip in a joke to break the ice. Very often, candidates are stressed during the interview, and it’s refreshing to see their serious expression change into a smile.

For me, it’s important to see how a person would react to questions and messages that go beyond the typical interviewer-interviewee exchange.

At the end of the day, we are all people with different interests, hobbies, and activities. Not everything is about work.

What are the most common mistakes candidates make during an interview? What advice would you give candidates on how to prepare for an interview?

My most serious advice would be for candidates to get familiar with the company beforehand and prepare questions.

Note, I’m not referring to asking questions just because you expect it to make you stand out.

Ask what truly interests you! With the risk of repeating myself – the interview is a two-way process.

I’ll share one of the questions I enjoy asking:

“You don’t know me. Imagine that I am everything you’re looking for in this position. You hire me, and I perform brilliantly. Where do you see me in 2 years?”

After the initial surprise from the interviewer (because they are usually the ones asking such questions), you, I hope, will receive information about the company’s structure, the promotion process, and what development opportunities you have. If you don’t get an answer – you’ve already made a great transition to such types of questions.

What advice would you give to candidates who want to improve their technical skills? Are there any resources you would recommend?

If you are a beginner/junior, codingame.com is your place. It’s an extremely useful site, similar to hackerrank, that uses gamification, animation, and a competitive element to introduce you to the basics of programming, data structures, and algorithms.

This was my "recipe for success" in the early days. I’m not claiming it will be suitable for everyone.

If you are more advanced in your professional development, I always recommend developing your own open-source project.

During future interviews, you can refer to it and keep the conversation in your control. As an example of a project, I always mention developing a small game. Why the gaming industry? Because it’s interesting, and because in the field of gaming, you can find all the major concepts in programming.

Share more about the best (or worst) interviews you've conducted.

As the worst experience, I will mention a case where a specialist with over 20 years of experience in programming refused to solve a task given to him as part of the interview. The person was shocked that we questioned his experience and insisted on reviewing the task at home for a week.

As a positive impression, I will again share a case that required the candidate to write code live. The colleague achieved a satisfactory solution and was looking for ways to improve it. He asked me if he could use the internet, then checked a few facts related to the syntax and specifics of a multithreading synchronization primitive.

He successfully applied the improvements, and the result was impressive.

How do you evaluate a candidate during an interview—based solely on their theoretical knowledge, or is their approach to solving a problem/task more important to you? What other factors do you consider when making a decision?

Theoretical knowledge has its value, but it is less important in my judgment. The reason is that very often interviewers read 1-2 days of theory before the interview and speak from memory, without having "dirty hands" in reality.

For me, practice is more important.

I’ll take an algorithmic task as an example, which the candidate is expected to write on a whiteboard/IDE. No one expects you to come up with an O(N x logN) solution that you’ve memorized from LeetCode. I even admit that whether you reach the final solution doesn’t carry that much weight (for me).

Instead, the focus is on how you gather additional information, how you reason, how you write code, and whether you think about testing and future maintenance.

Share a funny story from your experience as an interviewer :)

During the peak of COVID, the interviews I conducted were remote.

In one of them, the candidate appeared on camera wearing a bathrobe.

For most of the time, I kept repeating that I didn’t understand anything about fashion, and that it must be a poncho.

Whatever the garment was, it added a smile to the process.