Coding interviews are an important part of being a software engineer. More often than not, your potential employer wants to make sure that you are fit for the task at hand. The easiest way to assess a candidate’s problem-solving and programming skills is through a simple coding interview or test, which is why you should prepare for them.

First of all, the all-time classic reference for this subject is Cracking the Coding Interview, by Gayle Laakmann McDowell. If you are truly into preparing yourself for a series of interviews, then you should get the one book that everyone keeps at arm’s reach.

Now, according to Google and Facebook interns, the interview will most likely test your knowledge of algorithms and data structures, while also finding ways to apply them to solve problems. Essentially, there are obvious things that any good programmer should know, such as:

Data structures:

• Graphs

• Binary trees

• Stacks and queues

• Hash tables

• Classes and methods

Algorithms

• Knowing how to measure and compare complexity (big O notation)

• DFS and BFS

• Search algorithms

After you’ve read up (and hopefully mastered) all the subjects mentioned above, you should hit up a competitive programming website like Code Wars or Code Forces, where you’ll get challenges fit for your expertise, and in the programming language of your choice.

But that is not all. If you are applying for a position as a junior software engineer, for example, then you should take the time to read all about the company you are applying to. If possible, try to understand their ideals, their methods, and their long term goals. Great companies put high attention on their ideas and values, which will always land upon their employees in the form of tools and experiences. Try to get some insight by contacting the company through other means, like a friend or a colleague that already works there.

Remember: You are being tested to fit a particular profile

The position you are opting for will determine the course of your entire interview. For example, Facebook senior developers are expected to employ a system-wide perspective in the way they solve problems, while also showing clear traits of leadership.

Great companies expect their employees to grow with them. Even if you specialize as a QA engineer, a good company will expect that, as time goes on, you’ll improve your skills and you’ll feel more comfortable while at work. Displaying confidence and a desire to grow and learn is always a plus, not only in coding interviews but in any job application for that matter.



What to do during the actual coding interview

First, communicate your thoughts. If you are clueless, that’s fine. Some interview questions are impossible or way too hard for the actual role you’re expected to fit. Try to think out loud, to show your interviewer the way that you approach problems. Then, after figuring out a solution, even if it is non-efficient, implement it and let the interviewer know your intentions.

It is important that you do not freeze in place. In most cases, it is not mandatory to fully know the syntax of a programming language. The go-to style of coding interview is by using a whiteboard and allowing the interviewer to write out the solution in a pseudo-code style.

Of course, if one of the job requirements is a deep knowledge of Python, then they are probably expecting you to use specific libraries and to have a firm grasp of Python’s syntax and inner workings, such as its type of binding, and so forth.

Besides knowing the essential data structures and algorithms that any software engineer that’s worth anything should know, deeply embracing the job’s qualifications will surely give you an edge in nailing the interview. Finally, add some willingness to learn and grow, and you will hardly pass unnoticed in your next coding interview.

What do Mahisoft expects from candidates during the coding interview and the whole talent acquisition process?

At Mahisoft we have a world-class-team of enthusiastic and technology-passionate Software Engineers, that work in a highly transparent, collaborative, respectful and dynamic environment where all we do is based on EXCELLENCE.  

The ideal candidates should exhibit during the whole recruitment process the following behavioral traits:

  • Excellent systemic thinking and problem-solving skills. We want people to know how to think (independent thinkers)
  • Great verbal and written communication skills. In Mahisoft we practice “radical truth, radical transparency”, so we really want people who always tell us his/her point of view specially when the person disagrees with something.
  • Ability to mentor others. In Mahisoft we believe in knowledge sharing and in everybody learning from
    each other.
  • Team-spirit. In Mahisoft we believe in “together we are better” so for us it is very important to have team players in our team.

If you want to be part of Mahisoft, send us your CV: recruiters@mahisoft.com

Latest Posts