Interview met Ilja Booij, CTO van JOIN Cycling: De technologie achter de beste wielerapp

Terwijl de wielrenners in Zürich strijden om de regenboogtrui, werkt het team van JOIN Cycling hard aan het verbeteren van prestaties van renners wereldwijd met behulp van geavanceerde technologie. In een exclusief interview deelt Ilja Booij, CTO van JOIN Cycling, hoe zijn team innovatieve oplossingen ontwikkelt om wielrenners van elk niveau te voorzien van gepersonaliseerde trainingsschema’s. Hij biedt een uniek kijkje in de manier waarop de app continu wordt geoptimaliseerd door moderne technologie en diepgaande data-analyse, en hoe deze technologie de sportprestaties van duizenden renners naar een hoger niveau tilt.

Welke IT-specialisten zijn er bij JOIN Cycling in dienst, en welke specifieke rollen vervullen zij binnen het team?

We ontwikkelen op dit moment met 5 mensen aan de app en backend. Hiervan werken er drie aan de app, 1 op Android, 1 op iOS en 1 op beide platforms. Aan de backend systemen werken we met 2 mensen, waaronder ikzelf. We proberen zoveel mogelijk kennis over zowel frontend als backend te delen met elkaar. Eén van de manieren waarop we dat doen is door code reviews door het hele ontwikkelteam te laten doen. Op die manier blijven we allemaal op de hoogte van elkaars werk en kunnen we, waar nodig, kritische vragen stellen. Op deze manier kunnen we nauw samenwerken, wat ook belangrijk is omdat we een groot deel van de tijd vanuit huis werken. Naast het ontwikkelteam hebben we 2 mensen op data-analyse. Zij kijken onder andere naar trainingsdata, om bijvoorbeeld theorieën te toetsen over de effectiviteit van bepaalde trainingen en trainingsplannen.

Welke technologieën en tools gebruiken jullie voor het ontwikkelen en onderhouden van de JOIN-app, en hoe zorgen jullie ervoor dat deze up-to-date blijven?

Wat betreft de app maken twee native apps, in Swift op iOS en Kotlin op Android. We ontwikkelen beide apps in hetzelfde tempo, zodat nieuwe features  en verbeteringen tegelijkertijd beschikbaar zijn voor klanten op beide platforms.
Op de backend gebruiken we Kotlin op de JVM (Java Virtual Machine). Java was al een bekend platform voor ons en door Kotlin te gebruiken kunnen we makkelijker code en kennis delen met de mobiele apps. Op de backend proberen we verder vrij veel uit te besteden wbt hosting, zonder daarbij ons helemaal vast te leggen op de oplossingen van één enkele aanbieder. In de praktijk betekent dit dat we onze backend applicaties als containers deployen in een extern beheerde omgeving, een managed relationele database gebruiken en ook data opslaan op blob storage (AWS S3 op dit moment). Broncode en builds doen we in Bitbucket (https://bitbucket.org), en van daaruit deployen we ook nieuwe versies, zodat we zo weinig mogelijk handwerk hoeven te doen. Dit maakt het mogelijk dat we meerdere keren per dag updates uitrollen. Als ontwikkelaars blijven we allemaal geïnteresseerd in nieuwe ontwikkelingen die ons leven of de app makkelijker en beter kunnen maken, maar omdat we een klein team zijn, blijven we ook erg kritisch. We zullen dus niet zomaar iets nieuws doen omdat het nu eenmaal kan, maar zodra we besluiten om iets te implementeren gaat het meestal snel.

Hoe verzamelen en analyseren jullie de data van gebruikers om de trainingsschema’s te optimaliseren, en welke IT-systemen ondersteunen dit proces?

In onze backend-database komen verschillende bronnen van trainingsdata samen. We ontvangen de uitgevoerde trainingen van Strava, Garmin en Wahoo, waarna we er direct een eerste analyse op doen. Samen met de data die gebruikers in de app invoeren, updaten we hiermee de individuele trainingsplannen van de klanten. Voor een overzicht van de trainingsdata en analyse over grotere hoeveelheden trainingsdata gebruiken we een database die meer geënt is op analytisch gebruik, waaraan dan weer PowerBI dashboards zijn verbonden om informatie duidelijk te kunnen weergeven.

Welke uitdagingen hebben jullie ondervonden bij het integreren van externe platforms zoals Strava en Garmin, en hoe zijn deze opgelost?

We ontwikkelen de integraties met externe platforms (Strava, Garmin, Wahoo, TrainingPeaks en The Athlete’s FoodCoach op dit moment, binnenkort ook Zwift) zelf. Er zijn opties om dit via tussen-platforms te doen, waardoor we zelf maar één koppeling zouden hoeven ontwikkelen, maar dat brengt weer andere problemen met zich mee en heeft ook nog een behoorlijk kostenplaatje. Gelukkig is de documentatie van de meeste platforms best goed op orde, dus de implementatie ging over het algemeen vrij vlot. Bij de koppeling met Wahoo waren we onderdeel van de beta-groep, waardoor ook mee konden helpen de API te ontwikkelen. In het algemeen zijn de API’s van deze platforms ook stabiel, dus hoeven we vrijwel nooit dingen te wijzigen, tenzij we zelf een feature willen veranderen of uitbreiden. Met Strava hebben we eerder wel wat issues gehad doordat onze rate limits te laag waren voor het aantal gebruikers. Gelukkig heeft Strava ons daar nu veel meer ruimte gegeven zodat we dat probleem de komende jaren niet meer zullen hebben.

Hebben jullie plannen om in de toekomst IT-personeel uit te breiden? Zo ja, welke functies denken jullie dan te moeten invullen om de groei van JOIN Cycling te ondersteunen?

Om te beginnen werken we graag in een relatief klein team, zodat we de lijnen kort kunnen houden en iedereen erg betrokken is met het hele product. Als de huidige groei blijft doorzetten, dan zullen we op de backend wel meer mensen gaan nodig hebben, bijvoorbeeld data- en infrastructuurspecialisten die meer kennis hebben van de opslag en het gebruik van grote hoeveelheden data. Op langere termijn willen we waarschijnlijk ook meer met ontwikkeling op web gaan doen en dit is een specialisme waarvoor we nu niet voldoende kennis in huis hebben.

Profdesk © 2024 | gerealiseerd door De Digitale Marketing Specialist | Privacybeleid