Benoît Fleury
Senior Software Engineer / Technical Lead
Stripe • Cognitect
Tallahassee, Florida
Summary
I solve problems with finely crafted software, preferably in Clojure and Datomic.
I am comfortable dealing with ambiguity. I enjoy finding the intersection between business opportunities and technical opportunities.
I am detail-oriented and passionate about software quality. It is the easiest way to maintain software in the long term.
I have experience leading a small engineering team and mentoring junior engineers.
I have been working remotely for 15+ years and will consider remote opportunities only.
Experience
Senior Software Engineer
Jan 2022 — Jan 2025
Participated to the design, architecture, and implementation of the PaymentRecords API, Stripe's new payment read surface decoupled from any payment write surface.
Scoped and designed CustomPaymentMethods to enable Stripe users to bring their own payment methods to different Stripe products like Billing and Stripe Elements.
Scoped and designed PaymentMethod sharing to enable large enterprises users to share PaymentMethods across their business units.
Reviewed and approved a dozen of changes to the Stripe API as part of the API review team.
Mentored several junior engineers formally and informally during design pairing sessions.
Implemented several features and fixed bugs in the PaymentMethods APIs, in Ruby and Java.
Technical Lead
Jul 2020 — Nov 2021
Shipped several key features of the backend and frontend (Clojure/PostgreSQL).
Designed and engineered a webhook system and its API.
Improved the observability of the system by migrating to structured logging, developing a library to take care of all our monitoring needs, and implementing the frontend and backend of an audit trail.
Initiated several documentation efforts, functional and technical.
Senior Software Engineer
Apr 2018 — Apr 2020
Shipped several key features of the platform that were very well received by our users: notification and digest emails, maintenance tasks and reminders, mobile push notifications, multi-tenancy support for the platform, new partner REST API.
Designed and engineered a uniform user notification system supporting various channels (transactional and digest emails, mobile push, slack).
Built a data ingestion pipeline in Clojure from heterogeneous third-party data sources to a Datomic database.
Created a generic event system with a decoupled frontend/backend and integrated it with Cloudwatch for complete monitoring of our production system. Automated our deployment to AWS.
Head of Engineering
Mar 2017 — Jan 2018
Designed and engineered a real-time analytics service on top of Datomic in AWS. Redesigned the data model using Datomic information model.
Built an auto-scalable worker environment to retrieve network information from external databases (DNS, WHOIS, DNS blacklists, Tor network...).
Initiated the development of an open-source stream processing framework in JavaScript/node to create custom log processors.
Software Engineer
Nov 2012 — Mar 2017
As part of a team of two developers, I built the front-end and back-end of a simulation testing suite for one of the largest e-commerce platform in the world. The application was built in Clojure and Datomic with the Simulant library.
Built a real-time database replication system in Clojure on AWS (DynamoDB, S3) for one of the biggest hotel chain in the United States. The service processed a constant stream of room rates and availability updates represented as XML documents. The updates were processed and stored into DynamoDB tables. All updates were logged to S3 for recovery purpose.
Software Design Engineer
May 2011 — May 2012
Initiated the engineering of the backend services to support AmazonLocal on Kindle with special offers.
Built a web application to support the work of the production associates.
Program Manager
Apr 2010 — Apr 2011
Delivered a detailed functional specification of a high-performance, low resource usage C library for fetching and managing ads on mobile devices: Windows Mobile 6.x, iPhone and Android.
Designed and drove adoption of a new type of ad appropriate to mobile devices.
Wrote and drove adoption of a list of core client scenarios with the Bing mobile team for a mobile coupon platform. Made a proposal to the business team that has been accepted.
Investigated scenarios and requirements related to billing and fraud components. Delivered a detailed functional specification of these two components.
Software Design Engineer
Nov 2008 — Apr 2010
Participated to the development of several versions of the mobile advertising platform in C#, .NET, SQLServer, Cosmos.
Designed two versions of our REST protocol for mobile ad delivery.
Built a support tool to allow users to directly query the ad platform. The tool was widely used among the support team to troubleshoot potential issues.
Software Engineer
Jul 2006 — Oct 2008
Engineered several features of the ad server on the LAMP stack (Linux, Apache, MySQL, PHP).
Initiated the engineering of a framework for integrated tests and wrote the test fixtures for the existing functionalities.
Designed a RDF over HTTP protocol to exchange campaign information between the ad manager and the ad server.
Education
ENSEEIHT (France)
Master in Computer Science and Applied Mathematics (Diplôme d'Ingénieur)