C++ team: Tailoring our Engines to Always Serve the Customer

Posted on 13/10/2021, Teodora Stojšin

Interview with Head of C++ team, Principal Engineer, Jan Plhák

Jan (Jenda) Plhák worked on Nomad, a product that is the representation of a mathematical problem. The main goal of this product was to find the most efficient way for a traveler to visit all of their selected destinations. Thanks to that, our customers do not need to spend hours searching for the optimal solution, when they need to travel to more than one destination. 

We talked with him about Nomad, what he and his team are up to, their main goals, how the travel industry and Kiwi.com look for the future, and much more.

Hi Jenda, you have worked at Kiwi.com for quite some time. Would you mind sharing a bit about your role at Kiwi.com and your career journey?

I studied Mathematics and later joined Kiwi.com to build the next-generation routing engine. That was quite a success and so I proceeded to build a team that handles various services responsible for building itineraries and responses to user requests. We try to tailor our engines to always serve the customer with the best possible content which is hidden in a sea of millions of possible combinations. Later we moved on to other projects like Nomad, Ground transportation, various Machine Learning tasks, etc. Currently, I’m acting as Principal Engineer and Head of the C++ team.

How did your background and previous work experience impact your path to joining Kiwi.com?

Prior to joining Kiwi.com, I worked for a startup called Bileto. It was quite similar to Kiwi.com, but instead of flights, we focused on Ground transportation. One day I was coming back to Brno and I thought that it would be nice to change jobs and find new inspiration. The next day I got a call from our CTO Jozef Képesi, asking if I wanted to go for a beer to discuss work and that was that. I joined Kiwi.com the next month. 

Ground routing is quite different from flight routing but it’s not an entirely different sport and my previous experience with it actually helped me a lot getting the first version of our engine up and running. I suppose my education in Mathematics and Informatics played some part as well. lt has been useful to have good foundations in Algorithm design and Computational complexity theory. 

We’re still fighting the Covid-19 pandemic and we had to reshape our plans many times since it started in 2020. As we have many plans for post-Covid times, would you like to share some of the plans related to your area? 

One of my long-term goals is to push for further development of our Ground transportation vertical. Just before the pandemic hit, we finalized a big internal reshuffle to enable the unlimited scalability of our Ground content. Due to Covid, we had to reprioritize. My hope is that when the world comes back to normal, we will be able to come back to this project and ramp up our Ground sales.

Apart from that I obviously have some other projects in mind, especially some exciting ML-heavy tasks, but that is yet to be disclosed.

What are you most excited about for the future of traveling and the future of Kiwi.com?

First of all, I hope that the Covid pandemic will slowly go away and we will be able to travel freely next summer. I’m a big traveler myself and my life has been heavily affected by the restrictions. When it comes to Kiwi.com, I’m happy that the company is nowadays putting a much bigger emphasis on our brand and its promotion. I think that we have a good product and that it’s beneficial to shift our focus from B2B2C to pure B2C where we can provide the best customer service.

You were responsible for Nomad’s creation, a feature that helps travelers to build the journey of their dreams. What does Nomad mean to you?

Nomad has always been a favourite project of mine. I came up with the idea because it is a natural extension of the Multi-City search and algorithmically, it’s just awesome. I must say that we never made a huge profit out of the project, especially during Covid, but in the industry, it has been something completely new. For many people, it put us on the map. On top of that, my team got to play with an algorithmically interesting problem, which is something we enjoy very much.

What are some of the most interesting challenges you are solving nowadays? 

One thing that we are currently finishing is a transition towards real-time routing. Originally we precomputed all advantageous itineraries, including virtual interlining itineraries, between all airport pairs. It sounds a little impossible: the input graph has 6 billion time-dependent edges.  But, we were able to do it every two hours. This worked well, but after a while, we’d come to realize that there are some drawbacks. First of all, there is an issue with customizing the content to the user and its requests. If you precompute, you only have what you precomputed and that’s it. If the user wants something else, bad luck. 

The other benefit is that lowering the data latency allows us to react faster to price volatility and disruptive events. It wasn’t easy to build as the demands on response time and reliability are pretty high, but eventually, we managed to squeeze out the performance needed using clever algorithmic design and micro-optimizations. It took a group of our engineers more than a year to develop and put it to production, but we already see that it has been worth it.

What is the home office policy in your team?

The policy is to do whatever suits you. We are mostly working remotely, but I think that in the future we will converge on some hybrid system of 1-2 days in the office and complementary home office.

How do you usually spend your day?

As I’m moving forward in my career, I tend to spend less and less time doing actual coding in favour of figuring out what we should do next, analyzing data to make the right decisions, generally tending to my team or talking to various other teams in the company and either supporting them technically or negotiating projects. It gets very hectic now and then and at such times I always try to retreat to coding, away from people, to clear my head.

After so many years in the company, in your opinion, what makes Kiwi.com unique or special?

One of the main reasons I’ve stayed at Kiwi for so long is because our team is great. The people are very capable and yet friendly. And not only our team but with many of the surrounding teams we have good chemistry as well. That makes it very easy to work and you don’t get bored even after a very long time.

Interested to learn more about the technical nature of Kiwi.com and work with our engineers? Check our open positions.