Shipping a new version should be one command
Releasing a new version of a desktop app is a lot of small steps. I wanted it to be one command instead. Here's how the whole thing fits together.
I'm a Senior Android Engineer in Berlin with 6+ years building mobile apps at scale, most recently at Kayak and Zalando (50M+ downloads).
Outside of work, I love learning new things and building solutions.
I'm Oladokun Oladapo, a Senior Android Engineer based in Berlin. Over the past six years I've built and led Android work at Kayak, Zalando and Decagon, from server-driven UI powering millions of users to the automated test frameworks that keep releases fast.
I lean on Jetpack Compose, Kotlin coroutines and flows, and a strong architecture foundation: MVVM, MVI and Clean Architecture. On the side I build my own products, most recently Leovidly, a desktop studio for video creators.
Find me around the web:
Software Engineer, Android
Kayak · Berlin, Germany
Mar 2026 – Present
Migrating the Android app to Jetpack Compose and Kotlin, modernizing navigation with a Kotlin DSL and refactoring legacy architecture.
Building internal Android developer tools for the engineering team.
Owning features end to end, from refinement to release.
Software Engineer, Android
Zalando SE · Berlin, Germany
Apr 2022 – Feb 2026
Led Compose-based work to modernize Zalando's app: search flows, advanced filters and product catalog experiences.
Spearheaded the Dynamic Page System, server-driven UI enabling rapid experimentation for millions of users.
Owned high-profile projects end to end, from TDD and implementation to A/B testing, rollout and monitoring.
Built an automated Espresso and Maestro framework that cut manual regression testing and sped up releases.
Mentored and onboarded engineers through code reviews and documentation.
Software Engineer & Android Stack Associate
Decagon · Lagos, Nigeria
Oct 2019 – Mar 2022
Delivered the GroundForce app from concept to production with a pixel-perfect Compose UI and animations.
Applied Clean Architecture (MVVM/MVI) and modern Android components for maintainable, scalable solutions.
Led client and internal Android projects alongside designers, backend engineers and product.
Contributed to Android training curriculum used across global companies.
Android Engineer
Babybliss (Decagon partner) · Lagos, Nigeria
Nov 2020 – Jul 2021
Drove 1250% user growth in six months through feature delivery and app optimization.
Cut crash rate ~18% and churn ~30% with UX improvements and bug fixes.
Led a major UI redesign and version upgrade for a more modern, smoother app.
The Android craft I bring, from architecture to release.
Compose-first Android, from UI and animation to performance and stability.
Idiomatic Kotlin with structured concurrency and reactive flows (plus RxJava).
MVVM, MVI, Clean Architecture and server-driven UI at production scale.
Kotlin Multiplatform, plus React Native and Flutter when the project calls for it.
Espresso, Maestro, JUnit and TDD, wired into GitHub Actions pipelines.
REST and GraphQL, A/B testing, monitoring and dependable release cycles.
Products I've built and shipped.
A desktop studio for video creators: niche research, scripting, storyboarding, thumbnails and export in one app. It's my own product, built end to end.
Kotlin Multiplatform and Compose Desktop on the client, with an embedded browser, media pipeline and on-device ML. A Kotlin Spring Boot backend handles auth, billing and AI orchestration. I designed the architecture and shipped it solo.
Have a project, a role, or an idea worth talking about? I'd love to hear it.
Notes on Android, Kotlin, and the products I'm building.
Releasing a new version of a desktop app is a lot of small steps. I wanted it to be one command instead. Here's how the whole thing fits together.
Starting from what code signing even is, because when I began I didn't know, and every guide assumed I did.
In case someone's wondering what Leovidly is built on. The few choices I'd defend, and the couple that cost me more than I expected.
I set out to write a small tool to automate my B-roll and get back to my real project in a couple of months. It didn't stay small.