Simon Marquis

Staff Android Engineer

Info
  • ๐Ÿ‘จ years old
  • ๐ŸŒ French
  • ๐Ÿš— Driving license
Portfolio

๐Ÿข Work Experience

Jan. 2024 - Now Staff Android Engineer
Jan. 2022 - Jan. 2024 Senior Android Engineer @ leboncoin Core Team: DevX, CI/CD, tooling, perfs and all tech related subjects
Continuous Integration & Continuous Delivery (CI/CD)
  • Infrastructure: Gerrit, Zuul, Concourse
  • Gradle: Build Scans and optimized Remote Build Cache
  • Enable Kotlin scripts (.kts) support on CI
  • Setup and maintain EC2 debian instances (AWS IAM)
  • Daily warmup job to fetch build dependencies (~1GiB saved)
  • Periodic jobs to publish delivery builds, tests, analytics and nightlies
Applications
  • Reduce app launch time from ~6s down to ~1s with a custom KSP plugin
  • Implement a more robust in-app deprecation framework
  • Create type-safe & real-time RemoteConfigs on top of Firebase
  • Produce and maintain core utilities and extensions on platform types
  • Introduce the first Kotlin multiplatform module to optimize build time
  • Configure and debug R8/Proguard on a large and legacy codebase
  • Revamp the companion app to debug and troubleshoot the main apps
Tooling
  • Promote extensive use of JVM and Android test fixtures
  • Gradle: generalize the use of Gradle convention plugins
  • Lints: missing non-breaking spaces, invalid usages of mocks, etc.
  • TestRules: FeatureFlags, RemoteConfigs, Locales, Flakiness, Coroutines, etc.
  • Scripts: module builder, AVD optimizations, JUnit file merger, etc.
  • Plugins: detect dependency changes in builds with DependencyGuard
  • Automated Slack notifs: metrics report, critical path, baseline profile, etc.
Documentation
  • Create Android's Guild documentation on the Backstage platform (MkDocs)
  • Dev setup guides: hardware, Gerrit, Android Studio, Java, Gradle, etc.
  • Coding conventions: Kotlin style guide, test assertions, etc.
  • Troubleshooting guides for Gradle, Kotlin, Cache, etc.
  • Collect and reference all presentations (slides, recordings, code)
  • Knowledge base of bugs, crashs and ANRs
Feb. 2020 - Dec. 2021 Android Engineer @ leboncoin Maps Feature Team
Build the new Maps experience from scratch. Enable searching for an accomodation directly from a map. Strong focus on ease of use and also look & feel.
Nov. 2013 - Oct. 2019 Lead Android developer and Lead Mobile team @ SightCall
Lead the Android refactor of SightCall's internal SDK
  • API rewrite with a strong focus on readability, modularity and performance
  • Complete Javadoc documentation and detailed How-To guides
  • Publish the library on a self hosted Maven repository through Amazon S3
  • Create a full-featured utility app to simplify QA tasks
Strong focus on R&D
  • Create a Google Glass proof-of-concept with voice control, QRCode, etc.
  • Full support for most wearable devices (Google Glass, Vuzix, RealWear, …)
  • Enable support for external USB cameras
  • Set up a private internal app store with dedicated QA apps
  • Develop a live AR measurement tool using ARCore
Lead the Android Universal projects (SDKs & APPs)
  • High level SDK to minimize the effort needed from third-party developers
  • Live video feed, share video clips and photos, draw annotations, deeplink, …
  • Picture-in-Picture mode: live video overlay on top of other apps
  • Screen mirroring, even when the app is not in foreground
  • Develop and publish multiple apps implementing this SDK
Methodologies and practices
  • Heavy use of Gradle and bash scripts to reduce build time and updates
  • Automated build processes and test suites with Jenkins
  • Uploads on Google Drive and email notifications for each release build
  • Project and API versioning using gitflow and semver
Apr. - Sept. 2013 Android and Java EE developer @ ATOS INTEGRATION
Design and development of an Android app in the healthcare field.
Build a data import tool in Java EE.
Jun. - Aug. 2011 Web developer @ PETITJEAN SAS
Development of a price comparison tool for brico.fr.
Creation of 2 Android apps linked to brico.fr and comparemandataire.fr.
Jun. - Aug. 2012 Web and Android developer @ VEGA COMMUNICATION
Development of an online solution for a free magazine: 100% Vosges.
Design and creation of an Android app, and improvements to the Back Office.
Apr. 2010 Engineering Office Assistant @ ENERGIES HAUTES VOSGES
Consulting firm for networking grids, phones, etc.

๐Ÿ‘จโ€๐Ÿ’ป Personal Projects

2013 - Now Open Source Projects

๐Ÿ“š Education

2010 - 2013 TELECOM Nancy @ Villers-lรจs-Nancy
Engineering school in Information Technology
  • 2012 - 2013Project leader - 4 persons
    Application to record and broadcast meetings
  • 2012Interdisciplinary Project
    Cloud deployments with PaaS
2008 - 2010 ESSTIN @ Villers-lรจs-Nancy
Engineering school - Preparatory cycle

๐Ÿ† Distinctions

Google Open Source Peer Bonus
Mar. 2015 Mobile Premier Awards
Finalist of the largest cross-platform app showcase in the mobile industry, during the Mobile World Congress in Barcelona.
Dec. 2014 AppCircus Paris
Out of the 9 android apps pitched live at Institut Mines-Telecom in Paris, the Paper Airplanes app got all the attention from the jury and the audience.
Mar. 2013 Android Game challenge
Winner of the competition organized by Tรฉlรฉcom Saint-Etienne, Ecole des Mines de Saint-Etienne and SQLI.

๐Ÿงฎ Miscellaneous

Programming
    Languages: Kotlin Java JNI / NDK JavaScript Bash
    Tools & platforms: git GitHub / GitLab JIRA Firebase AndroidX ARCore
    CI/CD: GitHub Actions Zuul Travis CI Jenkins
Hobbies
    Indoor & outdoor climbing
    Ski touring
    Running
Languages
    French: Native
    English: Fluent
    TOEIC 815 pts in 2010