Alexandre Bole

Team lineup builder — TeamPulse

Jetpack ComposeKotlinUI/UX
Team lineup builder — TeamPulse

During my apprenticeship at My Lucky Day, I contributed to TeamPulse, a mobile app for managing sports teams (call-ups, matches, squads). Originally focused on football, it grew in popularity and expanded to other sports. My mission covered both app maintenance and the development of a significant new feature.

Technical context

TeamPulse is an older Kotlin application with a poorly maintained codebase: many, sometimes oversized, layers of patterns and an unclear architecture made the code hard to read and evolve. I first handled various maintenance tickets, which forced me to quickly find my way around a complex project and to work carefully on the existing code — an excellent exercise in adaptability and in reading legacy code.

My main mission: the team lineup builder

I was tasked with adding, right after the players' call-up for a match, a full team-composition workflow. I started from a fairly minimal Figma mockup, which gave me real design freedom: I was in direct contact with the reviewers to propose and challenge my ideas.

Here is what I designed and built:

Preview

TeamPulse team-lineup interface

Technical choice: Jetpack Compose inside an existing Kotlin app

I built this entire feature in Jetpack Compose, embedded within the existing Kotlin application (embedding Compose screens inside a legacy codebase is perfectly possible). This choice was made together with the team because it made development simpler, more maintainable, more up to date and more polished visually than the approaches already in place.

Result & takeaways

This mission let me grow my Jetpack Compose skills, especially on rich interactions (drag & drop, free positioning) and image generation. Above all, it taught me to work efficiently within a constrained, poorly documented codebase, to make autonomous design proposals, and to collaborate with reviewers to deliver a useful, polished feature.