Benoît Fleury

Software Designer

Cognitect • Amazon • Microsoft

St Paul, Minnesota

Specialties: Distributed Systems, Web Design, Clojure, Datomic, JavaScript, Amazon Web Services

Goal

I have more than 10 years experience as a software designer. I have designed distributed systems as well as user interfaces. My most recent projects involved Clojure, Datomic, JavaScript, and Amazon Web Services (AWS).

My primary motivation as a software designer is to create products with the user in mind. Creating an environment that minimizes the breakdowns in the user's daily activities and enables the user to take full advantage of the computer's potential.

I have experience with the entire process of software development, from inception to production deployment and maintenance of the system. I can work independently or as part of a small team.

As of January 2018, I am looking for new remote opportunities. I'm currently based in St Paul, Minnesota, but I will relocate to Tallahassee, Florida, in summer 2018.

Experience

Access Watch

Head of Engineering

Access Watch

2017

  • Rebuilt 80% of the production system in Clojure and Datomic on AWS (EC2, DynamoDB, S3, Elastic Beanstalk). 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...). Designed and engineered a real-time analytics service on top of Datomic.

  • Initiated the development of an open-source stream processing framework in JavaScript/node for the access watch log processing agent.

    Cognitect

    Software Developer

    Cognitect

    2013 — 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 purpose of simulation testing is to (1) model the user's behavior on the website, (2) generate test scenarios against the system's endpoints, (3) run the scenarios, and (4) validate the responses and states of the system during the execution of the scenarios. 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.

    • Benoit and I worked closely together while at Room Key. At the time, he was a consultant to Cognitect. He impressed me enough with his knowledge and dedication that I recommended him for hire, a recommendation that was accepted to Cognitect's benefit. We subsequently worked together on a major and at times difficult project at Walmart, where his contributions continued at the highest level.

      — Craig Andera, Software Developer

    Independent Software Developer

    2012 — 2013

    • Built the frontend and backend of a data extraction pipeline in Clojure and PostgreSQL. The crawler retrieved PDF forms from government websites. The data was extracted from the PDF using an OCR library and indexed in PostgreSQL. I designed a web interface to query the data set and review the daily reports.

    • Built a naive Bayes classifier in Clojure to recognize mobile scanned documents from their textual content. The project included the classifier as well as a set of tools to manage the training set, train the classifier, and evaluate it on new documents.

    • Implemented several improvements to an OCR pipeline of a mobile document scanning solution. I implemented the Stroke Width transform algorithm and integrated the ZXing bar code detection library.

    • We hired Benoit to work on some very technically challenging projects with open-ended and ambiguously defined objectives due to the nature of the work. He jumped in and delivered outstanding results quickly and consistently, with excellent communication throughout the engagement. Benoit is a highly intelligent and very skilled software engineer, and I hope to work with him again in the future

      — Ryan Crum, CTO

    Amazon

    Software Design Engineer

    Amazon

    2011 — 2012

    • Initiated the engineering of the backend services to support AmazonLocal on Kindle with special offers. Built backend services in Java to (1) transform the daily deals into a kindle ad, (2) support the purchase workflow from the device, and (3) deliver the voucher to the device as an ebook. Built a web application to support the work of the production associates.

      Microsoft

      Program Manager

      Microsoft

      2010 — 2011

      • Participated to a mobile advertising vTeam (virtual team) focused on competition and delivered a presentation during an internal summit.

      • 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. The specification contained the requirements, the specification of the ad caching algorithm, and the impression and click reporting startegy with exponential backoff.

      • Designed the threat model of the mobile ad client library. The model got approved by the security team.

      • 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.

      • The success of the vteam was in direct relation to the committed time and effort Benoit provided. Further, Benoit acted as a superb representative for our team by providing insight and understanding for other groups represented by the various vteam members.

        — Working group organizer

      Microsoft

      Software Design Engineer

      Microsoft

      2008 — 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. Educated my coworkers and management about the REST architectural style. Drove adoption of JSON as an alternative to XML to represent ads. The approach to the design of the protocol has further been validated by our early compliance to the API guidelines of the entire advertising group at Microsoft.

      • Initiated the design and engineering of an object-oriented event system for the mobile advertising platform. Events are fundamental in an ad delivery engine. They're used for counting logging, tracing, debugging... The aspect-oriented design greatly helped simplifying the source code.

      • Based on my previous experience at ScreenTonic, I built a support tool to manually build queries against the ad platform. The tool was widely used among the support team to troubleshoot potential issues.

      • Benoit is a talented developer with a passion for sound design, best practices, and agility. I've been impressed by his capability to handle complex end to end scenarios and come up with a neat and efficient solution.

        — Eric Brun, Architect

      ScreenTonic

      Software Developer

      ScreenTonic

      2006 — 2008

      • The share of voice-based delivery algorithm we were using had disadvantages in some cases. I was asked to propose new algorithms. Wrote a white paper on the state of the art of ad delivery. Implemented prototypes in python to test several algorithms. Proposed a new algorithm for the ad server. The company was acquired by Microsoft before the algorithm went into production.

      • Engineered several features of the ad server on the LAMP stack (Linux, Apache, MySQL, PHP).

      • Participated to the internal and external support activities.

      • Initiated the engineering of a framework for integrated tests. As features were added, the configuration of ad campaigns got complex and it became hard to predict the behavior of the campaigns over time. We needed a tool to communicate between the production associates and the developers. I engineered the tool and wrote the test fixtures for the existing functionalities.

      • Designed a REST-based protocol to exchange campaign information between the ad manager and the ad server. Delivered a detailed documentation of the protocol. Introduced RDF to describe the graph-like data models of the ad campaigns. Implemented an object-oriented API in PHP to generate and navigate ad campaigns represented as RDF. Provided code examples for publishing ad campaigns from the ad manager.

        Education

        ENSEEIHT (France)

        ENSEEIHT (France)

        Master in Computer Science and Applied Mathematics