Position spotlight: Machine Learning Engineer
In today’s post, we hear from Felipe Besson, Senior Machine Learning Engineer, on his work with the Discovery team.
Can you please give us a brief summary of what your job entails?
I work as a Machine Learning Engineer, a role that can have many different responsibilities depending on the company. Here at GetYourGuide, I’m part of the Discovery team, and our mission is to help travelers find the best things to do in their destination. As a Machine Learning Engineer on this team, I work on the following areas:
Machine Learning: I work very closely with Data Scientists, helping them design, implement, and deploy models into production
Data pipelines: We need a lot of data to make the wheel spin and have an impact on points 1 and 2. So, we need data pipelines to collect search metrics, build training sets, and feed our ranking algorithms.
Has your role changed since joining GetYourGuide? If yes, how?
When I joined GetYourGuide 2 years ago, the Discovery team was called the Search team and it was made up of just myself. I was (and am) very passionate about the challenges that come with Search, so this position was a great opportunity for me. At the time, I spent most of my day working on backend web tasks. This gave me the opportunity to strengthen my programming skills, which are also key for Machine Learning Engineers. Over the last two years, it has been inspiring to see the Discovery team grow to 16 people making an even greater impact on travelers’ lives by tackling a wider scope of tasks.
How would you describe your team’s working style and dynamic?
The Discovery team is responsible for the traveler's entire discovery journey. It covers all UX experience and also all the data and backend pieces, so customers can find what they want when they book. Since we have many different projects happening in parallel, we use an agile methodology based on Kanban. We also have typical agile ceremonies like stand-ups and retrospectives to keep us on track and continuously improve our process.
What does an average day as a Machine Learning Engineer look like?
My day can be very different depending on the stage of the project I am working on. At the start of a project, I spend most of my time doing research, collecting and analyzing data, and discussing solutions with the team. At this stage, I might need to simulate ranking algorithms and analyze some metrics. Then, when we have the conviction our idea might help our travelers we design an experiment and start developing an MVP (Minimum Viable Product). Our stack to develop the solution is very complete and it includes Scala, Spark, Elasticsearch, among other technologies.
Although an MVP should be a simple solution to validate our hypothesis, it might require the implementation of data pipelines, changes to our ranking logic, and all the integration needed to put the solution into production. We then deploy the solution, delivering it to our travelers, normally through the use of an A/B experiment. After the experiment finishes, we analyze the results. If the experiment is successful, we might need to implement a more scalable and robust solution. This more robust solution could need new data pipelines and more production code.
What is the most challenging aspect of your role?
I have many technical challenges, which is very motivating. In my opinion, applying Machine Learning on Search and Recommendations moves the needle on improving the quality of relevance and ranking. Here at GetYourGuide, I have the chance to work with Learning to Rank (LTR) and trying advanced ranking algorithms.
Prioritization is also very challenging. Not all hypotheses become an experiment in the end and it’s important that I pick the more promising hypotheses to research. Then, building an MVP is the key. When building an MVP, it’s challenging to find the balance between the amount of time we can spend and the complexity.
What is the most rewarding aspect of your role?
I like that I’m involved in many stages, from research to development. It’s very rewarding to create a successful experiment and see that we are helping travelers find what they want. During this process, I also have the chance to work with very interesting people, and I learn a lot from them.
What advice would you have for someone who would like to work as a Machine Learning Engineer at GetYourGuide?
Experience with Machine Learning algorithms and techniques is very important. However, good data and software engineering skills are equally important since part of the job is building what is needed to deliver the data solution in production and at scale. At GetYourGuide, passion about the product and focusing on how we can improve is also a requirement.
What is your favorite thing about working with GetYourGuide?
I would say autonomy. Inside the team, we are always aligned with the business goals, but we have ownership in what and how we execute our projects. Autonomy only makes sense with trust and I’m given this trust on a daily basis.