03 July 2021

Launching the First Data Science Product at felyx

During my graduation internship at felyx, I was engaged in launching the first data science product of the company: A Battery Swap Recommender. The Battery Swap Recommender is one of the most complex systems I have architected and engineered, and I am incredibly proud of what was delivered.

Felyx is an e-scooter sharing company. Customers can reserve and start e-scooters using a mobile application. The batteries of the e-scooters deplete over time. One of the highest costs within the Operations department of felyx is the battery swap operation. Currently, the operational staff manually decides which e-scooter batteries are going to be swapped and when.

The Data & Analytics department developed a GRASP algorithm to prescribe routes for the battery swaps. The goal of this project/research is to optimise and integrate this algorithm into the backend and workflow of felyx.

The assignment was more ambitious than I initially thought. Besides, the nature of the assignment was different than had been discussed during the interviews. The algorithm needed performance improvements, which resulted in additional challenges during the beginning of the project.

The project was not only integration but also an improvement upon the algorithm. Nonetheless, the assignment was related to subjects that interested me. It did challenge me and made me think harder about software engineering aspects that are typically not covered during school projects, such as scalability and maintainability.

The first months were challenging for me. Switching from a relatively relaxed schedule to 40h per week naturally took some getting used to. Fortunately, the previous internship experience made this switch somewhat easier.

Besides adjusting to a new schedule, you always have a period where you need to find your way within a company: familiarise yourself with the way of work, the people and the codebase. For that part, the global pandemic did not make this any easier; making connections with colleagues is more difficult when the primary means of communication is digital. In the beginning, it was hard to not feel like an outsider. Luckily over time, I found my groove, and at that point, my effectiveness increased.

What I realised even more during this project is that building a product is not the most challenging part. Determining what to build is the real challenge; requirement elicitation is hard! There are no simple shortcuts or magic solutions. People are quick to voice their opinions, and everyone has an opinion. Without tracking requirements and changes, you'll quickly lose sight of what you are trying to achieve.

Furthermore, the primary language of the backend of felyx is Go, and the frontend framework is Vue. I was not familiar with Go, neither with Vue. Fortunately, my previous programming experience made it relatively easy to pick up these technologies. Although the languages themselves were picked up quite quickly, sometimes it was hard not to get lost in the details, and context switching between three programming languages muddied the water even further. I found the best remedy for this is to take a step back, have a little walk, and then look at the bigger picture in the form of the many diagrams to recapture what I was doing again and tackle the problem with a refreshed mind.

My supervisor gave me significant responsibility and was encouraging and positive at all times. He made it clear what was expected of me and was accessible to answer my questions.

All in all, I look back positively on the graduation assignment at felyx. I am happy with the delivered product and enthusiastic about how it will (hopefully) be built upon in the future. It has been such a growing experience for me, especially in terms of system design and seeing the bigger picture.

I chose felyx as a graduation company because I wanted to experience first-hand what challenges a successful startup faces. All of the lessons I've learned here at felyx can and will be used in all of my future challenges.


Share article