I Joined Komodo Health as a Software Engineer

Cuppatea
5 min readDec 17, 2021

Background

I first heard of Komodo Health two years ago when my friend joined as a data scientist. He mentioned to me all the cool things Komodo Health is doing with healthcare data, analyzing data from millions of patients across the entire US.

I reached out to a recruiter back in 2019 and applied for a data engineering role. I got to the middle of the interview process, but things didn’t progress further.

I gained some backend development experience over the past few years in addition to the data engineering work I was doing, so it made sense in my mind to consider software roles the next time I was on the job market. Coincidentally my recruiter at Komodo Health who gave me the first opportunity remembered my profile and approached me for a backend engineering role!

I made it all the way through this time and am working as backend services engineer on the Platform Team at Komodo Health. I thought I would share some of my experience so far.

Interview Process

HR screening interview

Setting up the first recruiter call was fast and simple. He let me know about the new round of funding that happened in early 2021, and the engineering headcount that was made available across different teams and functions. Within 2 days of him reaching out we had scheduled and conducted the HR screening interview.

During the HR screening interview, he asked me about the projects I worked on over the last two years, highlighting any backend and/or data engineering experiences. I mentioned working on the snowflake data warehouse, asynchronous task processing, and general Restful API development.

Afterwards, we discussed the alignment of my technical skills with the tech stack of Komodo Health. The tech stack at Komodo is heavily based around: snowflake, airflow and different python web frameworks like FastAPI and Flask. It seemed like a great fit.

First technical round: system design

A little out of the ordinary, but my first round was a system design instead of a coding exercise. The team I interviewed for, the team I’m currently on, is building out a universal api layer for our other internal products to access the data warehouse.

The long run vision of our system is that analysis can be executed through a manual trigger, upstream service call or timed orchestration; and ultimately this is what the system design problem was. Starting off with a very vague question we slowly builded on and interested through multiple ideas including but not limited to CRON jobs on Kubernetes, queue prioritization on rabbitMQ and using Airflow for more complicated task graphs.

My solution involved Celery Workers and RabbitMQ because this is where my experience stemmed from. To keep the web server relatively light weight I suggested that all the server was responsible for was parsing input and sending off a task to the queue. The workers would pick up the tasks in the queue specific to an external service and run the analytics job it tasked with. For timed and more orchestrated task flows, Airflow DAGs could trigger an API request to this web server and initiate a similar task to queue to output flow.

Panel round: SQL, Python, Behavioral

SQL Interview

The SQL interview went as expected: increasing level of difficulty involving different joins and testing overall knowledge of how a sql query is constructed and how sql clauses are ordered: select, from, where, group by, etc etc. I was asked a total of 4 sql questions over a 45 minute interview conducted on coderpad.io

The interview did go beyond my past sql interview in terms of difficulty coming from a backend engineering background. The third interview question involved a couple of window functions involving the basic aggregations: sum(), mean() and finally rank(). With a couple of iterations I was able to solve it

The last sql question was the trickiest. Given a table of:

patient_id | condition_id | drug_id | record_date

return all patient_id where a patient was administered a particular drug +/- 5 days to their diagnoses of a specific condition_id. Without going too much into detail, the solution involved a DATEDIFF and a self join. 😆

Python Interview

The python interview was probably the easiest for me to interpret and understand. I had 1 python problem to solve over a 45 minute interview conducted on coderpad.io

Given a list of stock candle stick data by the minute organized as a dict of metrics like (opening_price, closing_price, high, low, etc etc) , implement a function that consolidates the data to a list of candle stick data for every “n” minutes.

My solution involved a for loop that chunked iterations by the input “n”. On each iteration I performed simple arithmetic and manipulation of the data in the dictionaries like find the high of highs, low of lows, and mean of means.

With 30 minutes or so left of the interview, I got plenty of time to ask the engineer about the company, culture, projects and where the company is headed in general.

Behavioral Interview

My behavioral interview happened with a data product manager. Although I’ve heard this round of interviews happened with different people like a data scientist or tech lead.

All this round really was about was finding potential candidates that are passionate about the company mission statement: Reducing the burden of disease.

Results

My recruiter got back to me within a day actually. It was a quick and pain free process (they really are in hyper growth). They let me know the feedback from the 4 people I got the chance to talk to, let me know about the compensation package and leveling and ultimately that I got the offer!

It’s been a roller coaster ever since working on interesting things on the platform team at Komodo Health. So many new technologies and frameworks that I had not previously used; however, the part that sticks with me most is how curious and intelligent everyone here is!

More to come on what I’ve learned ~~

PS

If you’re interested in joining Komodo Health, feel free to reach out to me for a referral at www.linkedin.com/in/alexsoong

--

--

Cuppatea

Snowboarder. Gym rat. Software Engineer at Komodo Health