My Ideal Job
- Strong technical culture
- High impact
- Remote friendly
- Small teams
- Teaching & Sharing
- Side projects
Teaching & Sharing
Open source libraries
- Chicago Roboto PAPA: Performance of Android Production Applications
- Droidcon SF MILK: a user-centric mobile performance model
- DevProdEng Showdown S1E2: Android at Scale
- Ask the Expert Live leak investigations
- Android Makers Pull requests 👨💻, yoga 🧘♂️& avocado toasts 🥑: 7 ans d’engineering à Square
- The Sandbox Investigating Leaks in the Firefox App with Emily Kager
- Bugsnag Engineering Leadership Forum 2019 Hacking Bugsnag for Fun and Profit
- Droidcon SF PokeLeaks: Gotta Catch ‘Em All 🐤🔍 (workshop)
- Droidcon NYC Shark: Diving into the guts of LeakCanary’s Hprof parser
- Android Makers, Paris LeakCanary 2: Leaner, Better, Faster, Kotliner!
- Droidcon SF Human Centered API Design
- Droidcon NYC Human Centered API Design
- Square (internal), SF Usability & API Design
- MCE, Warsaw There is no good tech lead
- Uber Meetup, SF Memory Leak Hunt
- Square (internal), SF How to Create and Deliver a Successful Tech Talk
- Droidcon SF Despaghettifying the hairball
- Droidcon SF Codelab: Make a Cash Flow-Positive Photo Booth!
- Droidcon NYC Tech Talks for Humans
- Gradle Summit 2017 AARAWR! Fantastic bits and where to dex them
- SF Android Meetup AARAWR! Fantastic bits and where to dex them
- Devoxx US, San Diego Nuking Nasty Memory Leaks
- Snap Inc., Los Angeles AARAWR! Fantastic bits and where to dex them
- DevFest Nantes LeakCanary, et ensuite ? Détricotage de fuites mémoire Android
- DevFest Nantes Tech talks: Uploadez vos idées vers d’autres êtres humains
- GOTO Copenhagen Nuking Nasty Memory Leaks
- General Assembly, SF Panel on sourcing Android devs
- @Scale, San Diego All apps shall crash. Deal with it.
- Devoxx France Sharper Better Faster Dagger ‡
- Devoxx France Bouchez vos fuites mémoires avec LeakCanary!
- Mix-IT, Lyon Crash Fast & Furious
- Realm Meetup, SF DIY: Build Your Own Dependency Injection Library
- Droidcon SF Sharper Better Faster Dagger ‡
- Square Presents Moderator, panel discussion on the Journey of Android Engineers
- Øredev, Malmö Crash Fast & Furious & Detect all memory leaks with LeakCanary!
- Droidcon NYC Detect all memory leaks with LeakCanary!
- Box Mobile Open House, Los Altos Crash Fast: Square’s Approach to Android Crashes
- Square Presents, SF Detect all memory leaks with LeakCanary!
- AppsWorld NA, SF Panel: Developing apps for the Android market
- Airbnb Meetup, SF Crash Fast: Square’s approach to Android crashes
- Mobile Central Europe, Warsaw Mortar & Flow
- Devoxx Belgium Crash Fast: Square’s approach to Android crashes
- Droidcon Paris Interview (fr)
- Droidcon Paris Defragment your apps with Mortar (fr)
- Devoxx France Square: data collection to decision making (fr)
- Droidcon London Square OSS libs
- Paris Android UG Square OSS libs
- Droidcon Paris Keynote: Facebook vs Square
- Devoxx France Android Bad Practices
- LyonJUG Android Live Coding
- Devoxx Belgium AndroidAnnotations
- Open World Forum, Paris AndroidAnnotations
- DuchessFr, Paris Hands-on Android
- Devoxx France AndroidAnnotations
- Paris Android UG AndroidAnnotations
- ParisJUG Code Story Ultimate Randori Night
- FOSDEM, Brussels AndroidAnnotations
- September 2022 Using an Activity from a Hilt ViewModel
- August 2022 WhileSubscribed(5000)
- April 2022 Of sharks and heaps of sticky marshmallows
- January 2022 Tracing main thread messages
- January 2022 Fixing simpleperf broken records
- December 2021 WorkManager multi-process for libraries
- September 2021 Launch Response Time
- May 2021 Leak investigation: Rx disposal race in SQLDelight
- April 2021 Android Vitals - Tap Response Time 👉
- April 2021 Tap Response Time: Jetpack Navigation 🗺
- March 2021 Introducing Curtains
- January 2021 Waldo, where’s my UI?
- December 2020 Android Vitals - How adb measures App Startup 🔎
- November 2020 Android Vitals - Profiling App Startup 🔬
- October 2020 Leak detection: Android Studio vs LeakCanary ⚔️
- September 2020 The real size of Android objects 📏
- August 2020 Android Vitals - Rising to the first drawn surface 🤽♂️
- August 2020 Android Vitals - Is this a cold start? 🦋
- August 2020 Android Vitals - Why did my process start? 🌄
- August 2020 Android Vitals - When did my app start? ⏱
- August 2020 Android Vitals - First draw time 👩🎨
- July 2020 Android Vitals - What time is it?
- July 2020 Android Vitals - Diving into cold start waters 🥶
- June 2020 Beware PackageManager leaks!
- January 2020 Instrumenting Firebase Test Lab
- July 2019 Story of an Android Q Leak: attachment crazy town!
- September 2018 Building a photo booth for Droidcon NYC
- July 2018 LeakCanary 1.6 🐤
- October 2017 Keeping the Daggers Sharp ⚔️
- March 2017 Ok Google, Charge $2 for Coffee
- November 2016 No Cause for Concern — RxJava and Retrofit Throwing a Tantrum
- September 2016 Android leak pattern: subscriptions in views
- May 2016 Introducing Square’s Register API for Android
- December 2015 Welcome to the (Color) Matrix
- August 2015 A small leak will sink a great ship
- July 2015 Dude, Where’s My char?
- May 2015 LeakCanary: Detect all memory leaks!
- October 2014 Advocating Against Android Fragments
- December 2013 A journey on the Android Main Thread — Lifecycle bits
- October 2013 A journey on the Android Main Thread — PSVM
- October 2013 Square Cash - you owe me money!
- April 2013 Transparency with JPEGs done right
- April 2013 Chathead Basics
- January 2013 Android String Placeholders
- December 2012 Android Adapter Good Practices
- December 2012 Happy Birthday AndroidAnnotations!
- December 2012 Renaming the Android Manifest package
- November 2011 Paris Android Dev Lab
- Octobre 2011 Coup de balai : déblayer les branches d’un repo Git
- March 2011 GWT : Big Fat deRPC
- Mai 2010 CAS et Grails, sans sarCASmes !
- Android Leaks Épisode 59 – Rappelez le plombier, on a un poireau 2.0
- Les Cast Codeurs Podcast LCC 222 - Interview sur Android avec Pierre-Yves Ricau et Romain Guy
- Android Leaks Épisode 32 – Le poireau acéré
- Fragmented 088: Offensive programming with Piwai from Square
- Android Leaks Épisode 7 – On a un poireau, appelez le plombier !
- Fragmented Google IO 2016
- Android Developers Backstage Episode 32: Leak Canary
Software Engineer - Square
February 2013 - Present Android San Francisco
I got in touch with Square after contributing to their open source libraries. I moved to the San Francisco office to work with the best Android engineers.
I contributed to every release of Square Point of Sale for Android since March 2013.
In June 2013 I led the Android software side of the new Square Reader.
In August 2013 I led a HackWeek project: SQUA(RED), a special red edition of the Square reader to fight AIDS. Our great hardware team made that a real product.
In March 2014, I started leading the engineering effort to bring Square POS to Android Tablets. I made sure to implement new features on mobile as well, as I believe the screen size frontier is much less clear today, and features should be ubiquitous.
In August 2015 I wrapped up my work on the Android Tablets team, which had grown from 1 to 6 engineers. We were done catching up with the iPad and started focusing on building new features. Our work was the app foundation for the Square Register.
From September 2015 to January 2016 I worked on a super cool secret project that I cannot mention here. Small team, high throughput, we built a great app really fast.
In February 2016, I joined the new Developer Platform team as its Android lead. We released Register API 1.0 a few months later.
In March 2016 I started organizing a monthly internal lightning talk series. One hour, 5 lightning talks across all of engineering. This has been running since, with an attendance of about 100-150 engineers.
In August 2018 we released the Square Reader SDK. This was a high complexity and high risk project. We prototyped it during a hackweek in August 2016, built a pilot in just a quarter, and then iterated through private betas for another 1.5 year.
In January 2019 we released the In-App Payments SDK. Our team built it really fast and really well, as a high functioning team with almost a hive mind, knocking out bugs and features left and right. This isn’t just an SDK, it’s a delightful experience. We carefully crafted every detail, from the shape of (Kotlin first) APIs, to the SDK UI (only XML vector drawables, advanced canvas drawing, responsive animations with ConstraintLayout), to the code of the sample app (examplary example code!), to the structure of the quick start guide.
In March 2019 I joined the Developer Empowerment organization to take on a new challenge, focusing on the reliability on Square mobile apps and SDKs.
Lead Software Developer - Siine
September 2011 - January 2013 Android AppEngine Barcelona & Paris
After two years of contracting work, I decided it was time to have fun and work on more impactful projects.
At Siine, we created a fun and easy to use Android Keyboard. Our goal was to improve context typing.
I rebuilt the whole app on top of the AOSP keyboard so that we could focus our efforts on building new UX, cleaned up our build process, added feature toggles, CI, and automatic releases.
Software Engineer - bfinance
November 2010 - September 2011 GWT JEE Paris
After a year at JCDecaux, I wanted to do less driving. Excilys found a nice new contract for me: bfinance, a financial services firm.
It was a challenging time to join the team, after all the software engineers had left. Two weeks in, I was the sole developer of two complex tender managing applications. The first one is used for cash management analysis, and the other for financing and banking relationship analysis.
These applications had been developed with a full team over several years. In order to keep potential regressions under control, I introduced continuous integration, a clean release process, and frequent small releases.
Software Engineer - JCDecaux
November 2009 - November 2010 Android GWT JEE Paris
JCDecaux liked the Android prototype I had done for them and I came in for a 3 months contract to finish the app. The food was great, so I ended up staying a year and contributed to many other projects.
I took over the REST endpoint that talked to the mobile apps, a Tomcat / MySql app that was consuming web services. It was a stepping stone for what later became JCDecaux Open Data API.
I also wrote their first GWT app, a map with a live overview of the state of the Velib stations for supervision and support purposes. You can see it here.
Software Engineer - Excilys Group
August 2009 - September 2011 Android GWT JEE Paris
After my engineering internship at Excilys, I got a full time offer.
Over these two year as a contractor, I worked for two clients: JCDecaux and bfinance.
I also managed Excilys technical blog, gave Android & GWT trainings, and created a widely used Open Source library for Android: AndroidAnnotations.
Engineering Internship - Excilys Group
February 2009 - July 2009 Android JEE Paris
After writing software for Excilys during college, I decided to get an internship.
I worked with skilled software engineers and learned a lot about Java.
I discovered Android, had fun with it, and soon enough I was creating a prototype app for JCDecaux Velib maintenance team.
Call For Paper committee - Devoxx US 2017
October 2016 - March 2017 San Francisco
Work In Progress.
May 2015 - Present San Francisco
LeakCanary is an Open Source memory leak detection library for Android.
Call For Paper committee - Devoxx France 2013
October 2012 - April 2013 Paris
The Devoxx team contacted me for my mobile and Android skills, and my interest in the Java community.
I helped organizing Devoxx France 2013 (2000+ attendees) and selecting talks as part of the Call For Paper committee.
December 2010 - December 2012 Paris
AndroidAnnotations is an Open Source framework that enables Android developers to focus on their business problem rather than the plumbing that connects components and systems.
I presented it at FOSDEM 2012, PAUG, Devoxx France 2012, OWF 2012, Devoxx 2012, LyonJUG.
I created and maintained this project on my free time. Excilys contracted with me to maintain it from September 2011 to December 2012.
February 2012 Paris
VuzZz was created during the Android DevCamp Paris 2012, a 3 day hackaton with 10 competing teams. After 48 hours of intense non stop hacking, our team finished first. VuzZz downloads geolocated data from several Open Data sources and then gives a note to a given address based on 50 criteria grouped in 6 categories (culture, transport, etc). The perfect tool for finding your next apartment!
September 2011 - September 2012 Paris
Voxe.org is a neutral open platform to compare political programs. I joined this non-profit organization on my free time to create the Android app.
- Too Hard For You is an Arkanoid and Tetris mix.
- I wrote a C++/SDL implementation in 2006.
- I rewrote it as an HTML5 game in 2011.
January 2003 - December 2004 Paris
With a team of 20 passionate people, we created a 3D RTS game using DarkBASIC on our free time (I was in High school).
Education is what remains after one has forgotten everything he learned in school.
Master’s degree, Computer Software Engineering 2004 - 2009 Rouen, France
The INSA Rouen is a French School of Engineering. I earned a Diplôme d’Ingénieur en Architecture des Systèmes d’Information.
ASI : Architecture des Systèmes d’Information
During my last semester I led 9 students for 6 months on a software project for Excilys. We worked 20 hours a week to create a functional testing tool (built on top of FIT) that would enable functional test driven development.
We used agile practices (Scrum / XP) and were certified ISO 9001-2000. That means walls covered with post-its, a lot of paperwork, and a little bit of coding.
Kungliga Tekniska Högskolan
Information & Communication Technology 2008 Stockholm, Sweden
My last Engineering semester of Engineering School was in Stockholm, Sweden, in the Royal Institute of Technology. I studied ICT - Information & Communication Technology.
I took classes on Network Security (amazing class), Software Design (UML mi amor) and Entrepreneurship (it’s the team, not the idea).
I also learnt how to make a really good Tortilla de patatas.
Lycée Albert Schweitzer
Baccalauréat scientifique mention Bien 2001 - 2004 Le Raincy, France
I was in a European class, which meant more English courses.
On my free time, I learnt a lot about coding by contributing to a 3D RTS game. My last year practical work was on generic algorithms, I wrote a somewhat working implementation for the traveling salesman problem, in DarkBasic (a Basic with 2D commands).
- Functional Programming Principles in Scala
- Coursera, November 2012
- Sun Certified Programmer for the Java Platform, SE 6
- 91%, License CX-310-065, November 2009
- 940, 2008
- First Certificate of Cambridge
- Grade B with distinctions, 2004