Sign in

Cyril Mottier

@cyrilmottier.com
647 followers 115 following 369 posts

Leadership, Engineering & Product amo.co. ex Zenly (Snap), CapitaineTrain.

PostsRepliesMedia
Cyril Mottier @cyrilmottier.com · 17/06/2026
TIL kotlinlang.org/grammar/#nul...
110
Cyril Mottier @cyrilmottier.com · 04/02/2026
Two rooms, two vibes
140
Cyril Mottier @cyrilmottier.com · 22/01/2026
It will remove the message (default behavior) or remove/keep the check entirely. We've been doing it since day 1 already. Any reason it's not done for "throw" checks @rahulrav.com?
010
Cyril Mottier @cyrilmottier.com · 13/01/2026
Look who joined the meetup 😂
230
Cyril Mottier @cyrilmottier.com · 13/01/2026
🙈
090
Cyril Mottier @cyrilmottier.com · 13/01/2026
The @parisandroid.bsky.social is about to start. Let's begin with Compose magic 🤩
1100
Cyril Mottier @cyrilmottier.com · 06/01/2026
Join us with @ParisAndroidUG at @amoamoamo HQ on Jan 13, 2026! 🚀 On the agenda: generating videos off-screen and off-main thread from Composables, why & how we switched from Hilt to Metro DI, and how to build your own Kotlin compiler plugin.
154
Cyril Mottier @cyrilmottier.com · 17/12/2025
Hidden perk of Metro DI over Dagger: no more wrestling with naming binding functions. We’ve migrated nearly our entire codebase to @Contributed* annotations cutting thousands of lines of code in the process.
031
Cyril Mottier @cyrilmottier.com · 25/11/2025
Websites like apilevels.com are useful, but nothing beats analyzing your own data. At amo, we see a radically different Android versions distribution. It completely shifts our decision process regarding usage of AGSL, AVIF, HEIC, and more.
040
Cyril Mottier @cyrilmottier.com · 19/11/2025
Tooling helps manage the complexity of large codebases. We built tools to track important metrics: ‘unused-modules’ to find deletable modules via DFS, ‘longest-path’ to calculate the longest dependency path - highlighting potential critical paths and more.
140
Cyril Mottier @cyrilmottier.com · 23/10/2025
Killing the game
160
Cyril Mottier @cyrilmottier.com · 19/10/2025
Coupe d'Europe de la boulangerie. Pièce artistique de l'équipe française.
110
Cyril Mottier @cyrilmottier.com · 17/10/2025
For example, here’s today’s snapshot from our project: only 4 modules are massive in LOC—and surprise, they all build in >15s on CI. Now that we’ve measured, we can target fixes and optimize! Data drives action.
020
Cyril Mottier @cyrilmottier.com · 14/10/2025
In a highly modularized codebase, typing full Gradle task names can be tedious. Gradle supports task name abbreviation: just type the shortest unique prefix. If ambiguous, Gradle suggests candidates. ⚠️ Use locally for speed, but keep codebase references explicit for readability!
253
Cyril Mottier @cyrilmottier.com · 08/10/2025
Jeudi 16 octobre à 12h, je serai en direct avec Mathias de The Product Crew (TPC pour les intimes) pour parler engineering et produit ! Hâte d’échanger avec vous et de répondre à vos questions. À très vite !
030
Cyril Mottier @cyrilmottier.com · 07/10/2025
We built a custom animatable, collision-aware, collapsible annotation system on Google Maps. Huge UX improvement but we lost tilt support along the way. We finally cracked the math and extended our projection calculations adding a whole new dimension to the map. Just gorgeous.
060
Cyril Mottier @cyrilmottier.com · 01/10/2025
Great animations should always add value. But if they also bring delight, that’s a win 🏆. Instead of a generic 'Search', explicitly specify what’s searchable and animate each character individually. It subtly guides users, catches the eye, and feels uniquely crafted.
040
Cyril Mottier @cyrilmottier.com · 29/09/2025
Just received "Code Health Guardian" today. Can't wait to go through it 😋
010
Cyril Mottier @cyrilmottier.com · 26/09/2025
We already had incremental compilation in the single-digit seconds range, but I’m still blown away by how much faster it is now that the entire codebase is fully on Metro. 🤯 github.com/ZacSweers/me...
1143
Cyril Mottier @cyrilmottier.com · 25/09/2025
Ever wish you could see what your friends are up to? Even when they’re off-screen? With sticky pins in Bump by amo, you can now spot friends typing in chat or sending super sends, no matter where they are on the map. ✨
130
Cyril Mottier @cyrilmottier.com · 22/09/2025
🪦 Android Instant Apps 🪦 2016 - 2025 R.I.P.
1100
Cyril Mottier @cyrilmottier.com · 12/09/2025
The agenda, the content, the library
010
Cyril Mottier @cyrilmottier.com · 02/09/2025
Flat surfaces are boring. Textures, when used thoughtfully, can transform user experience. We added subtle Perlin noise to our map tiles. Why? It helps users "anchor their eyes" to something tangible, reducing disorientation when zooming in/out. Small details, big impact. 🧵👇
281
Cyril Mottier @cyrilmottier.com · 29/08/2025
OMG, I can finally review PRs without having to manually download images to view them in the finder 💥 github.blog/changelog/20...
010
Cyril Mottier @cyrilmottier.com · 29/08/2025
Counting already 46 usages when using a quick regex looking for an interface with a @Composable Content()
000
Cyril Mottier @cyrilmottier.com · 28/08/2025
Super excited today! I just completed the migration to a new cross-platform, type-safe, and modular deeplink framework. I’ve had this in mind for years but never implemented it. An interesting challenge was dealing with modularity and supporting multiple apps.
030
Cyril Mottier @cyrilmottier.com · 27/08/2025
TIL about the 'super<Type>' expression in Kotlin. Reading a programming language grammar is always super insightful even though it's not useful everyday 😅. kotlinlang.org/docs/referen...
270
Cyril Mottier @cyrilmottier.com · 26/08/2025
Investigated a broken internal-only feature this morning. Eventually found out it was actually not in the binary anymore. That's one of the problem of extreme modularity, it is (too?) easy to add/remove a feature from an app. With great power comes great responsibility 🕷️
010
Cyril Mottier @cyrilmottier.com · 25/08/2025
Murphy’s Law is undefeated: your infrastructure will go down. But just because outages happen doesn’t mean your frontend should fall apart. 💥 Designing mesmerizing error states can ease user frustration … and buy engineers time to fix the issue.
150
Cyril Mottier @cyrilmottier.com · 21/08/2025
Bezier paths are pure magic ✨. This animation appears when your friends interact: smooth curves, vibrant gradient, particles dancing along the curve, sleek 3d effect. All made possible by the power of Bezier paths bringing UI to life.
2121
Cyril Mottier @cyrilmottier.com · 20/08/2025
When building a product, you sometimes need randomness that is repeatable (e.g. generating textures, shuffling lists). The solution is super simple: seed your random number generator with a fixed value.
050
Cyril Mottier @cyrilmottier.com · 08/08/2025
James Lovell 1928 - 2025 Guided us through the stars.
020
Cyril Mottier @cyrilmottier.com · 04/08/2025
The droidcon NYC 2025 videos were uploaded a few days ago. I finally took the time to upload the slides from the eulogy talk that @BQuenaudon and I gave about Instant Apps. Enjoy them until December 2025 ☠️… cyrilmottier.com/posts/2025/i...
120
Cyril Mottier @cyrilmottier.com · 25/06/2025
Building this signature scratchmap recap animation was a lot of fun 🤩. It involved clustering scratched hexagons with H3, smoothly interpolating camera movements thanks to a centripetal Catmull-Rom spline, and adding some flair with animated WebP hexagon explosions.
191
Cyril Mottier @cyrilmottier.com · 20/06/2025
Playing around with the UI for fun. Designing such micro-interactions and animations is a breeze thanks to Compose. P.S. If you didn't catch it, a full vinyl rotation takes exactly 1800ms. That's 33 RPM 🎶💿
1416
Cyril Mottier @cyrilmottier.com · 18/06/2025
Polishing transitions in your UI can truly elevate the user experience. They add significant value by providing feedback, emphasizing information hierarchy, guiding users, and engaging them with rewarding interactions.
1100
Cyril Mottier @cyrilmottier.com · 17/06/2025
Change of plans… Same speakers, energy and learnings. Different title 😬
1101
Cyril Mottier @cyrilmottier.com · 13/06/2025
Modularization ensures scalable codebases but also comes with complexity. How do you detect unused modules in an Android Gradle-based project? I had to build an in-house tool for this but super curious how you do it. Same for unused code.
010
Cyril Mottier @cyrilmottier.com · 12/06/2025
Properties of great internal tools: - Future-proof: maintainable, tested, strongly typed - User friendly: small/atomic actions, self-documented - Scalable: extensible, plugins - Performant: fast-feedback loop, incremental
3121
Cyril Mottier @cyrilmottier.com · 11/06/2025
We entirely re-engineered our annotation layout system to optimize readability and prevent text collisions. I can stop 😍 it. Another evidence skipping entirely Google Maps SDK for overlays/annotations rendering was a great move ✨ J2FtbyBuZWVkcyB5b3XigJk6IHdlJ3JlIGhpcmluZyE=
3110
Cyril Mottier @cyrilmottier.com · 10/06/2025
Mobile leaders, accelerate your mobile app development with rapid feedback loops. Embracing continuous delivery for internal builds is a good start. Every commit on main is downloadable. This boosts pace, quality, and simplifies bug bisecting.
050
Cyril Mottier @cyrilmottier.com · 05/06/2025
Gave my 25-year-old hi-fi to my son – it didn’t work after 20 years of dust! While checking the issue, I found a gem. What I consider the CD of my life: Daft Punk's 'Discovery'. What a blast from the past!
1150
Cyril Mottier @cyrilmottier.com · 04/06/2025
TIL too. Quick reminder, there's a setting in the app for this actually 😉
100
Cyril Mottier @cyrilmottier.com · 02/06/2025
And it works for safe and unsafe casts too.
000
Cyril Mottier @cyrilmottier.com · 02/06/2025
Remember Kotlin Elvis operator and smart casts can simplify your code – no need to assign the result of the expression.
210
Cyril Mottier @cyrilmottier.com · 28/05/2025
𝚓𝚘𝚒𝚗𝚃𝚘𝚂𝚝𝚛𝚒𝚗𝚐 is perfect to "stringify" an 𝙸𝚝𝚎𝚛𝚊𝚋𝚕𝚎. But it's way more powerful than you think. It's not just for simple separators! You can customize prefix, postfix, limit, truncate, and even transform. kotlinlang.org/api/core/kot...
020
Cyril Mottier @cyrilmottier.com · 23/05/2025
Amazed by what we’ve accomplished with Bump? That’s just the beginning! 🚀 @amoamoamo is expanding rapidly, and we’re looking for exceptional Android & iOS engineers to join our elite team in Paris. Together, we’ll create delightful and truly unique experiences.
131
Cyril Mottier @cyrilmottier.com · 21/05/2025
This PR has been waiting for weeks and it's finally merged 🙌 Sources availability-driven development 😅
020
Cyril Mottier @cyrilmottier.com · 15/05/2025
Instant Apps are not dead ☠️. In fact, they're trendy again! Join Benoit and me at @droidcon.bsky.social NYC to learn how to create the best instant experience possible.
160
Cyril Mottier @cyrilmottier.com · 14/05/2025
Did you know Android Debug Bridge (adb) has a --bugreport option? It adds frame-related information overlays to video recordings. Super helpful for debugging animations, time to first meaningful frame, dropped frames, and more!
220