Interviewing at Halodoc - Engineering roles

Engineering Roles Oct 30, 2020

At Halodoc, we are obsessed with the idea of engineering the future of healthcare and we want each of our prospective candidates to understand and share our belief. While we embark on this mission, we are  constantly on the lookout for awesome folks to hop onto our ship and take this mission to greater heights.

If you are interviewing with us and want to know more about our process, we wish to keep you well informed about what to expect, so that you have a great interviewing experience with us. This is typically the interview structure for most of the Tech roles (Developers, Testers). However, for leadership roles, the interview loop outlined below may vary as per the competencies of the specific role.

Resume Screening
We typically look for candidates who have a strong background in building applications at scale, and are obsessed with providing the best experience to our customers. We appreciate a single page quick summary of your recent experiences and a brief explanation about your career aspirations.

Exploratory Call
In an exploratory call, we discuss the roles and responsibilities of the position and check if the candidate has the relevant experience to match it. This is a high-level overview call done with senior candidates.

Coding Assignment
At Halodoc, we want everyone in engineering roles to be adept with code; and display a high degree of craftsmanship at it while doing so. In this round, a prospective candidate is handed out an assignment with a real world problem statement. We encourage the candidates to take a look and go through the requirements mentioned in the assignment. Then the interviewer will provide a quick summary of the requirements and the expectations. Please feel free to get the required clarity on the assignment. This assignment is evaluated against a set of predetermined criteria. We’re looking for code that is functional, clean, modular, readable, maintainable, performant and unit testable. We encourage candidates to first discuss the approach with the interviewer before jumping in to code the solution. You’ll have about 2 hours to complete this assignment.

Problem Solving
This discussion focuses on evaluating how you think through a problem, model it and come up with an optimised solution. You are evaluated against multiple aspects of software engineering including problem-solving techniques, application of data structures and algorithms, your overall thought process/approach towards solving a problem etc. We’d generally encourage you to provide a pseudo code to your solution. Thinking out loud and explaining your reasoning behind why you think what you think are some of the traits we’d really appreciate. This round typically lasts anywhere between 45 - 60 minutes.

System Design
This again is a 45 - 60 minute discussion with a senior member from our engineering team, where we will focus on evaluating the candidate’s ability to build software systems. This discussion can cover a vast area - from data modelling, user facing components, APIs, data storage solutions, deployment architecture, security, monitoring and operational characteristics like latencies, throughput, page load times etc. We encourage the candidate to seek clarity in terms of requirements by asking the right set of relevant questions. Likewise, we look forward to have a clear understanding of why you chose a certain way of doing things in your approach to the solution. We believe there is no right or wrong ways to build a software and engineering is all about making a call among a billion trade-offs, so please feel free to take decisions backed by data and your experience in the approach.

Hiring Manager
This discussion is going to be with a leader from our engineering team and will be about you, your industry experience and your career aspirations. The main purpose of this interview is to evaluate if a candidate’s aspirations and thought process aligns with Halodoc’s core values that we share and strongly believe in -

  • Be fanatical about solving for patients
  • Halodoc > Team > Self
  • Have a bias for action
  • Challenge status quo
  • Strive for individual mastery

H.R Round
We will focus on behavioural indicators in this discussion to assess the culture fitment of a candidate. Discussions regarding job benefits can be taken up in this round.

Debrief
The hiring committee comprising of leaders in our engineering team invest a significant amount of time and effort in going through the feedback for each round of your interviews. After careful deliberations we take a call if the candidate is fit to have a great time with us and vice versa. We make every effort to get back to our candidates on the next steps within a week of interviewing with us.

Every person you talk to will invest the first 5 minutes in introducing themselves and their roles and responsibilities. They will leave about 5 minutes at the end for questions. We encourage you to make use of this opportunity to get an insider’s perspective directly from a Halodoc engineer.
You will have a point of contact (recruiter) from our team that you can reach out to, for all your queries during the entire hiring process.

What’s our tech stack ?

More often than not, candidates are curious to understand what tools and arsenal we engage with and some of the interesting problems we are currently facing. As a fast growing company, we are faced with new and different kinds of challenges every day and we continuously evaluate and adopt the tools that accomplish our mission in the best possible way, but here’s an overview -

We are predominantly a microservice based architecture. Our back-end services are mostly built using Java, GoLang and store data in MySQL, MongoDB, DynamoDB and Elasticsearch based on the use case. We use a host of AWS and GCP cloud services and have containerized our applications in Kubernetes. Our client modules use Typescript, Kotlin, Swift, Firebase analytics, Appium to provide the best user experience to our patients. All of our code is pushed to Gitlab and we use Jenkins to automate our build and deployment cycles. Our developer infrastructure and tools have enabled us to safely and confidently make changes in production as and when required.

Check this out to get more insights about some interesting problems we are solving.


Tips for the interview

We want to give candidates interested in joining us every possible opportunity at succeeding. Here are few of the tips which if followed would enable us to better evaluate your performance during the interviews.

  • Think out loud - We focus on your path to a solution as much as the correctness. Explaining your approach allows the interviewer to understand your thought process and enable them to course correct or provide hints as necessary.
  • Seek clarity - Feel free to get enough clarity while solving a problem and explicitly call out the assumptions you would make, if any. We are impressed when candidates ask the right set of questions. That will help   a great deal in minimizing the difference between interviewer expectations and candidate solution.
  • Find a quiet place for interviewing with a good internet connection and keep your camera ON at all times during the interview (if it's an online interview). We value “Integrity without compromise” in everything that we do. So, please avoid the temptation to search online during the interview (instead of saying “I don’t know”), unless your interviewer has given you consent to do so.
  • Time management - Invest a judicious amount of time in finding an optimal solution. Brute forcing and jumping into solutions even if it seems to be relatively easy, is something we discourage in our day to day work as well. If you cannot think of a better solution in a reasonable amount of time, start implementing a working solution and then improve upon it in the remaining time period. It is better to have a non-optimal but working code than just an idea.
  • Bug fixing - Plan and spend some time in reviewing and testing your own code before the interviewer finds any shortcomings out for you. It indicates that you are looking to repeatedly get better at what you have built.

Ahead of the interview, please do check about Halodoc online and from other sources, do spend some time exploring our website  (You could use Google Translate plug-in to translate it to English). Also, do read up on our Tech blogs page on some of the cool tech problems we have been solving on a day-to-day basis. All this will give you enough context to ask a good set of questions about us during the interview.


How to apply ?

Our careers page lists the current positions we are looking to hire and is frequently updated with new requirements. Don’t see a position here but you think you could somehow bring to the table - what it takes to engineer and build the future of healthcare, feel free to drop a note to careers.india@halodoc.com. We invest a significant amount of time to look at the profiles of all candidates interested in joining us and try our best to respond within a couple of weeks.