Fabien is a fullstack developer interested in everything, Javascript expert.
He is present on Youtube and Github where all his projects follow the same philosophy : aiming for the cleanest code possible and being KISS.
He worked at BeReal during their high growth phase, where he designed and built critical microservices serving millions of requests per second, including the users microservice handling 9M users/s.
Working with Fabien means the assurance of a project that moves forward.
Some Experiences
Senior Software Engineer
BeReal
January 2022 ➤ December 2024
- BeReal is a social media app that allows users to share authentic, unfiltered moments with friends, capturing what they're doing at the moment.
- I started at BeReal as the 4th backend engineer during the company's high growth phase. Initially hired as a Fullstack engineer, I quickly transitioned to focus on backend development where the company needed me most.
- I redesigned and rewrote the moderation system to make it scalable, then designed and led the development of the friends of friends feed API.
- I co-designed and developed the chat API, which was the first Golang API for BeReal, using gRPC, Golang and Spanner.
- I designed and created the first microservice at BeReal: the feature flag system. This first gRPC/Golang microservice handles millions of requests per second with a P99 of 10ms and a median of 1ms.
- I designed and created the users microservice, now the most important service at BeReal. It serves 9M users per second, with a P99 of 30ms to retrieve 50 users and a P50 of 1ms.
- I introduced several key patterns still used at BeReal: auto-batching downstream requests in NodeJS and Golang, elastic Redis cluster using k8s informer pattern and consistent hashing, warmup procedures, and data migration procedures.
- I optimized the load balancing efficiency in the k8s cluster and reduced costs by improving the HPA scaling algorithm for faster scale-up and scale-down.
- I created a Job framework with UI designed on top of argo-events to provide a simple and efficient job system leveraging BeReal's specific needs.
- Missions:
- Redesigned and rewrote the moderation system for scalability
- Designed and led development of friends of friends feed API
- Co-designed and developed the chat API (first Golang API)
- Created the feature flag microservice (first gRPC/Golang microservice)
- Designed and created the users microservice (9M users/s)
- Introduced auto-batching patterns for NodeJS and Golang
- Implemented elastic Redis cluster with k8s informer pattern
- Optimized k8s load balancing and HPA scaling algorithm
- Created Job framework and UI on top of argo-events
- Set up proper Golang monorepo and CI configuration
- Technologies used:
- Golang, NodeJS, TypeScript
- gRPC, GraphQL
- Google Cloud Spanner, Redis
- Kubernetes, Docker
- Argo Events
Lead Frontend Developer
DARVA, on behalf of unirakun
January 2020 ➤ January 2022
- DARVA is a company expert in web solutions and EDI (Electronic Data Interchange) based in Niort and serving all professional insurance actors.
- With Nicolas REMISE (internal DARVA) and Guillaume CRESPEL, we helped the BI service facilitate access and governance of "claims data" for DARVA employees as well as insurance industry actors.
- We simplified the visualization and editing of insurance data structures through a new graphical interface. The goal was to replace an old editing tool, and allow all employees to regain ownership of the knowledge related to this data.
- To facilitate access to this knowledge, we had to offer an ergonomic, responsive, and understandable graphical interface. We relied on well-known graphical representations such as trees (treeview) or graphs (radial). And for editing, when appropriate, we used drag'n'drop. All using the ReactJS ecosystem.
- Missions:
- UX / UI Workshop
- Front-End development for graphical visualization of the datalake
- Front-End development for datalake editing
- Technologies used:
- ReactJS, D3 and homemade Layout
- NodeJS, Typescript, Apollo GraphQL, NestJS, Mongoose
- Babel, Prettier, ESLint
- Storybook, Cypress, Jest
- Docker
- Github
Lead Backend Developer
DARVA, on behalf of unirakun
June 2019 ➤ December 2019
- DARVA is a company expert in web solutions and EDI (Electronic Data Interchange) based in Niort and serving all professional insurance actors.
- As DARVA wants to increasingly rely on the mass of data they process, it is necessary for them to integrate it into a datalake accessible to all services.
- To this end, we worked on storing claims-related data through a NodeJS batch. It must be modular, reusable, and very performant since several gigabytes of data must be processed in a short time window.
- Thanks to NodeJS streams, data is decoded, deserialized, and then stored in MongoDB database on the fly.
- In order to control the batch performance, we implemented metrics to track the velocity of our algorithms throughout our development.
- Once this mission was completed, we created a POC of a graphical interface allowing better understanding of the data structure.
- Missions:
- Development of a data integration batch
- Algorithm and performance metrics
- Knowledge transfer to internal teams
- Proposal of a POC for a graphical interface to navigate through data structure
- Technologies used:
- Javascript, NodeJS, MongoDB
- ReactJS, D3 and homemade Layout
- Jest and custom performance tests
- Docker
- Github
Frontend Developer
Metroscope, on behalf of unirakun
July 2018 ➤ March 2019
- Metroscope is a startup, subsidiary of the EDF group, composed of about ten people. Metroscope allows rapid determination of anomalies occurring in nuclear power plant cooling systems.
- With Guillaume CRESPEL, we implemented and continued to develop the Metroscope product on the Front-End side, remotely. Once it was secured and in production, we trained our successors so they could be autonomous on the implemented stack.
- Missions:
- Front-End Development
- UX / UI Workshop
- Recruitment assistance: interviews and selection of successors
- Training of successors
- Technologies used:
- ReactJS / Redux / k-ramel / react-vis / D3.js / JSS
- Java 8 / SpringBoot
- Webpack / Babel / ESLint
- Cypress / Jest
- Docker / CircleCI / Kubernetes / GKE (google cloud)
- Github / Jira
NodeJS Expert and Trainer
DARVA, on behalf of unirakun
January 2018 ➤ December 2018
- DARVA is a company expert in web solutions and EDI (Electronic Data Interchange) based in Niort and serving all professional insurance actors
- I worked with the BI service to help them create NodeJS scripts for data preparation in their MongoDB datalake.
- This service was provided partly remotely and I worked a few days spread throughout the year.
- Missions:
- Implementation of the "monorepo" architecture for the datalake views management project
- Advice and code reviews of code produced by the BI team
- NodeJS training for the BI team
- Development of tools to help develop data preparation scripts
- Implementation of quality tools: generated documentation (JSDoc), unit tests (Jest), integration tests (Jest + Docker)
- Technologies used:
- Github / Jenkins
- NodeJS
- MongoDB
- Jest
- Docker
- Various NodeJS libraries
Architecture and Project Management Consultant
Metroscope, on behalf of unirakun
March 2018 ➤ June 2018
- Metroscope is a startup, subsidiary of the EDF group, composed of about ten people. Metroscope allows rapid determination of anomalies occurring in nuclear power plant cooling systems.
- With Guillaume CRESPEL, we challenged their MVP in order to produce a first version on a solid and efficient stack while keeping in mind the needs and constraints of a large structure like EDF.
- Missions:
- Database structure design
- Selection of appropriate Front-end and Back-end technologies to use
- Implementation of Front-End and Back-End technical foundation
- Implementation of CI / CD
- UX / UI Workshop
- Project management assistance and agile consulting
- Technologies used:
- ReactJS / Redux / k-ramel / react-vis / D3.js / JSS
- Java 8 / SpringBoot
- Webpack / Babel / ESLint
- Cypress / Jest
- Docker / CircleCI / Kubernetes / GKE (google cloud)
- Github / Jira