July 5th, 2023 at 4:33:11 PM

Insights from 30+ interviews as a software engineer candidate

A positive candidate experience helps convert great talent to your company’s employees. But it’s not just that: candidate experience can make or break a successful employer brand, because the more you interview, the more people learn about your company - and your interviews.

To provide an excellent candidate experience, it’s important to learn from the candidates’ feedback. Today we are talking to Kethmar Salumets, a Senior Software Engineer, who agreed to share his experience being in the candidate’s shoes.

Kethmar Salumets

💡 Kethmar, tell us a bit about your career path and what you’re doing at the moment.

Initially, I began my career as a freelancer. However, for the past six years, I have been employed full-time in various startup companies, working in different roles such as front-end and full-stack developer, as well as taking on the responsibilities of a tech lead. Despite being fully employed, I continued to take on freelance projects to keep myself updated with the latest technologies and maintain my project management skills.

Recently, I have decided to take a break from my position as a tech lead in a small fintech company and am currently taking some time to rest and pursue freelancing opportunities, while exploring the job market.

💡 How did you transition from a freelance engineer to in-house?

The transition from freelancing to in-house dev has been quite natural. Since the age of 12, I have been passionate about designing and coding websites, considering the two activities to be inseparable. However, as I gained more experience and started taking on larger projects with real clients, I found that tasks like project management, communication, and support were taking up a significant amount of my time. Despite this, I persisted in freelancing for about eight years and learned a great deal.

Eventually, I came to the realization that what I enjoyed most about freelancing was the coding aspect and I wanted to further hone my skills in this area. Seeking a job as a developer seemed like a logical step towards achieving this goal. Initially, I was confident that my coding abilities were of a high standard, but as it turned out, there was much more for me to learn.

💡 How did you find your first job as a software engineer and what was the interview process like?

During my time as a freelancer, I had collected a wide range of projects in my portfolio. While applying to various development agencies, a friend suggested that to truly improve my skills and build quality products while gaining experience in fast-paced business building, I should consider joining a startup. Though I was unfamiliar with the concept, after careful consideration, I applied to Pipedrive (currently an Estonian unicorn) as a frontend developer, which was still a relatively small company at the time but highly esteemed in the industry.

Feeling confident due to my previous freelancing experience, I attended the interview, only to see my confidence plummet rapidly as I encountered a thorough five-round interview process that included both technical and soft skill assessments, as well as a home task. Though I wasn't overly concerned about the soft skills section, when I sat down with two engineers who reviewed my home task, I realized just how much I had yet to learn, particularly in writing maintainable and properly tested code. Despite feeling a little disheartened at first, I was motivated by the experience and realized the difference between “writing code” and “building a maintainable product”.

Fortunately, the interviewers saw my eagerness to improve and offered me the job. Though the initial salary was nearly 2.5 times less than what the agencies had proposed, I saw it as a way to learn and kickstart my professional career. That thinking made me accept the offer.

Looking back, I'm glad I made that choice. Although the interview process was long, it ensured both sides that there’s a fit. During the interview process, I got to learn about the company, meet with product managers and engineers, see the office and even have a session with the CEO, giving me the assurance that there’s a genuine, good person leading the company. And to me, that’s all that mattered at the time.

💡 Throughout your career, what was the worst interview experience and why?

Throughout my career, I've attended several interviews with negative experiences. However, one particular interview stands out in my memory, which was conducted by a well-known US-based company.

I applied for the role of a senior frontend engineer. The company's technical assessment was divided into two separate interviews, one that focused on full-stack development and another that concentrated specifically on React. The first interview was a pleasant experience, and I enjoyed discussing the topics with the interviewer, who was also personable and easy to talk to.

On the other hand, the React-specific interview was a less-than-pleasant experience. From the outset, I sensed that the interviewer was disinterested in conducting the interview. He communicated aggressively, and when I tried to repeat the questions in my own words (which I strongly recommend to make sure you understand the task), I was told that it wasn't necessary. I also felt discouraged to ask clarifying questions. Additionally, some of the technical questions were quite challenging, and when I wasn't able to provide exact answers or definitions, the interviewer responded with comments like "that shouldn't be so hard" or "you should have come up with that faster." Though I liked the company, I realized from the outset that this was not a teammate I wanted to work with.

While I didn't receive an offer from the company in the end, I wasn't too disheartened by the outcome. Experiences like that show me how to “not conduct interviews”.

💡 On the other hand, what was your favorite interview experience?

I've had numerous interview experiences over the years, and I appreciate the opportunity to attend them as it's a skill that must be developed. Even when I'm in a comfortable position, I like to know my value, and who knows, I may come across an offer that makes me consider.

However, my favorite interview experience was with a US-based company called Edgio, when I applied for a lead developer position approximately a year ago. While I don't recall the entire process, I believe it involved calls with the VP of engineering, HR, and the CTO.

There were several reasons why I enjoyed the process so much. Firstly, I felt a sense of complete freedom to discuss any topics. After each call, I was given enough time, around 10-15 minutes, to discuss various topics. Additionally, all the interviewers were very positive and open-minded.

Secondly, the technical challenge was a highlight of the experience. Essentially, I was given a task to solve in a couple of hours, after which we reviewed and discussed the solution. I was able to complete the challenge, and instead of waiting for the feedback, we had a call right away to discuss the solution. This allowed both sides to learn from one another.

Thirdly, I appreciated that they had put in effort to check my background. During that period, I was actively running a YouTube channel dedicated to developers. While in the final call, we talked about my background, technical topics, and delved deeper into why and how I started my channel. They asked specific questions about the content of my videos, which was heartwarming as I felt an effort was made from their side, and I also got to express my passion for the topics.

Overall, I felt that there was a good match, and they made me an offer. Though I didn't end up joining the company for personal reasons, it was a difficult decision to decline after such a pleasant experience. 

💡 There’s a never ending discussion about the test task part: should there be one at all, should it be a homework or a live coding session, etc. From a candidate standpoint, what do you find most efficient?

In my opinion, the type of technical assessment that a company uses should depend on the person and the company itself. Some may prefer takeaway tasks, while others may prefer live coding exercises. However, the test task should never take more than a few hours. It is puzzling to me when companies require senior developers to build a full application as a test task. A good technical interviewer should be able to extract the necessary skills during a conversation (or a very customized tech task).

Personally, I enjoy live coding exercises the most. They are typically time-boxed and provide me with an opportunity to discuss ideas, ask questions, and demonstrate how well I get along with the interviewer. However, for those who experience anxiety during live coding, the experience discussed in the previous question can be a great option.

Ultimately, companies should be mindful of the amount of time they take away from candidates during the assessment process. They should prioritize the skills they want to test and determine the best way to test them. If a company insists on requiring candidates to spend more than four hours on a task, they should provide appropriate compensation.

💡 I know that you had experience interviewing at both Estonian and foreign companies. Do you think there’s any difference in the approach?

Good one. I’d say it depends more on the size of the company than the country. That said, in Estonia, I feel things move faster, regardless if it's a big or small company. Maybe because the talent pool is small.

Also, in Estonia, I’ve also had more offers just because people know me, making the recruiting company be able to drop some interview rounds.

💡 When you are in the shoes of the interviewer yourself, what is your interview style?

As a tech lead in my previous position, I had the opportunity to develop and conduct numerous interview sessions. This allowed me to test various approaches to find the most effective one.

My interview process always had three goals: to validate that the candidate was a fit with the team, to assess their technical ability or potential (depending on the position), and to ensure that they left the interview feeling positive. To achieve these goals, I treated interviews as casual conversations. Although I always had prepared questions, they were delivered in a way that felt natural. My aim was for the candidate to feel as though we were simply discussing various topics in a friendly environment, rather than being interviewed. This approach provided me with valuable insights into their technical thinking and personality.

For the test task, I opted for a live coding role-play approach. Beforehand, the candidate was provided with a small codebase that they could familiarize themselves with. During the live coding session, we solved a real-life scenario, with the aim of simulating pair programming. The feedback from candidates was overwhelmingly positive, particularly regarding the fact that the task was related to real-world problems.

Overall, I found this approach to be highly effective in achieving my interview goals and ensuring that candidates left with a positive experience.

💡 What advice would you give to the recruiters and hiring teams?

The people who represent the company during interviewing have a great impact on how the company’s perceived in the developer community. Trust me, developers share that kind of knowledge.

Also, think the interview process through (especially the technical task). What are the skills you actually need to test? Is it feasible to achieve the goals in the given time? How much time would it require from the candidate?

And last but not least… communicate! Even if it’s a “NO”, send an email. The worst thing a company can do is ghost the candidate. It’s disrespectful and will result in negative feedback.

Kethmar, thanks so much for sharing your insights! I’m sure there are learnings that our followers will take with them, and in such a way we will make hiring better together.

Searching for the best talent?

olga@beeskneeshire.com
LinkedIn2024 © beeskneeshire.com