Well done! My email adress is in your clipboard ;)


  • github
  • twitter
  • linkedin
  • codingame
  • email

Fullstack TypeScript

  • TypeScript
  • React
  • Redux
  • Apollo
  • GraphQL
  • RxJS
  • Jest
  • Firebase
  • MongoDB
  • NodeJS
  • Webpack
  • Docker


Fullstack TypeScript Engineer, specialized in React.

I really enjoy creating a nice UX and resolving complex problems in a simple manner. To achieve this, I also spend a lot of time building tooling ; indeed, I'm deeply convinced that a nice DX and good tools will result in a better end-product (less bugs, easier to maintain, etc.).

Besides my passion for development, I like challenging myself by doing climbing, woodworking and making stuff in general. I love learning, and I'm not afraid of making mistakes!

  • Since December 2021 (current)

    Senior Software Engineer - Xata

    I’m really excited to be part of the founding team at Xata! A lot of challenges to solve, including:

    • SDK generation
    • Spreadsheet-like UI
    • Data-visualization
    • and many others…

    As I’m writing this, the product doesn’t exist yet, but considering the team and the amount of cool ideas I've seen, I can’t wait to see the result! 😁


  • September - November 2021

    Senior TypeScript Engineer - Chatterbug

    Working for a language-learning company with a B2C product! This was a short experience for me, with a very lovely team and exceptional company culture.

    I had the pleasure to play a bit with:

    • their latest premium feature: A group video chat!
    • the voucher flow of their marketing website
    • codemod to refactor the codebase (using generated apollo operations hooks)
    • automating the translation flow with crowdin & github actions

    But sometimes, life is about opportunity, and one of my best friends offered me an amazing position with a new company called Xata with a state-of-the-art database product and I couldn't turn down this challenge! 😁

    web app-store play-store

    #typescript#react#react-native#codemod#graphql#gatsby#github actions
  • 2018 - 2021

    Senior TypeScript Engineer / Techlead Frontend - Contiamo

    An amazing team and an ambitious product, I've been working with Contiamo since 2018 and was part of the product-shaping since the beginning of a strategic change of the company.

    We started by providing a solution helping datascientist to manage their jupyter notebooks: collaboration & easy deployment of function as service.

    This solution was combined with a query engine, capable of querying any kind of databases with only one flavor of SQL.

    Now, after a bit of refinement, our product is focused on cataloging, giving access and querying large data landscapes.

    With this in mind, as a Frontend engineer, I had a LOT of fun challenges:

    • Building an entire SQL editor (based on Monaco editor)
    • Parsing/manipulating SQL to provide some nice helpers (rhombic)
    • Streamlining the backend/frontend communication by generating Typescript components from OpenAPI specifications (restful-react)
    • Building some client projects on top of our product with graphql as datalayer
    • Crafting a nice solution to manage our runtime configuration (react-runtime-config)
    • Going deeper on accessibility
    • Playing with k8s to have local/hosted pull-request previews

    This was only possible thanks to my amazing teammates, always there to challenge the smallest edge case! Our favorite game is to slow the network, click everywhere, kill the network sometime, and see if everything still looks good! 😅 No better way to improve the robustness of your application!

    Fun fact, this stack is almost fully REST, and the tooling of OpenAPI was really poor, but not anymore! A bit frustrated with the tooling available, I took this opportunity to create something very cool. Now, we have full autocompletion of our backend endpoints in VSCode, and can even use the frontend codebase as regression test for the backend 😁.


    #typescript#react#monaco editor#sql#ast#redux#rxjs#graphql#openapi#k8s#TDD
  • November 2017 - April 2018

    Senior Fullstack TypeScript Developer - Baze

    Development of the web application and the internal management tools for Baze.

    Baze is a solution which provides you with tailored dietary supplements based on blood samples and personal data.

    My projects/responsibilities were :

    • The web application using react/redux/react-native-web/apollo
    • The internal management application using react/redux/apollo/redux-observable/Apollo
    • The application for tracking the blood samples in the labs (react + apollo-link-rest)
    • A GraphQL backend to manage the different surveys (graphql-yoga)
    • A GraphQL backend to fine-tune the recommendation engine (graphcool + typescript)

    This was my first experience using GraphQL in a production environment and it went extremely well. It would be hard to go back to REST after that!

    I’ve also used this opportunity to participate actively in open-source projects like graphql-yoga and apollo-link-rest. After all, there’s nothing like an application in production to improve your tools 😊


  • Summer 2017

    Open-source - Gatsby

    Active participation in the Gatsby community : development, code review, tests and support.

    When I decided to build this website, I knew I wanted to:

    • code in React
    • not have to deal with a server
    • be SEO-friendly (this is where it got hard)

    With these requirements in mind, I searched for the best solution, and this is how I discovered Gatsby (as a pre-alpha version) and I decided to take part!

    My main interventions were:

    • enabling Gatsby to run on Windows
    • enabling the use of TypeScript
    • finding and correcting bugs
    • collaborating with other developers on Discord
    • Participating in technical choices (including the file architecture)
    • reviewing and validating pull requests

    After all this, I was finally able to start building my own website using the perfect tools.

    web github

  • April 2017

    Freelance - Actronika

    Development of the software for the Tactronik chip's demonstration kits.

    This software, developed with Electron/React/Redux/Redux-observable/Jest, enables the configuration of different predefined haptic effects before sending them to the demonstration chip via the serial port.

    The challenge was to have a layer of serial communication without having access to the chip to do testing before delivery.

    Using Redux-observable and a battery of unit tests, the connection succeeded without a hitch. The project can now be easily maintained and evolved. Isn't that great?


  • February 2017

    Freelance - Actronika

    Development of a solution to generate haptic effects.

    This was a quick project for a client's POC, the aim was to create an application to generate and sequence haptic effects, then export the result.

    The biggest challenges were the speed of the project and the necessity to handle a great volume of data. Therefore, we decided to use a 100% web solution with a CSV export, in spite of the risk of browser latency.

    In the end, the product works and the client's requirements were fulfilled!

    I also used this first mission for Actronika as an opportunity to train the team in React/Redux/TypeScript/Jest, so as to allow an easy hand-over.


  • December 2016

    Discovery of React - Connect 4

    Christmas holidays \o/ React and Redux are getting increasdingly popular, but I've only used Angular until now...

    Not to worry! I used these holidays to fill the gap. I decide to try my hand at implementing a "Connect 4" game, using TDD (I like testing) and in TypeScript.

    Thus began my React/Redux adventure! It was in fact this project that I later used as a starter and training material for my work with Actronika.

    Verdict : Redux is great! I perfectly understand its popularity. And I can no longer do without the hot-reload ^^ All in all, I have a crush on this stack!

    web github

    #react#redux#jest#typescript#webpack 2#github
  • August 2016 - March 2017

    CTO - LearnMyLanguage

    Conception and development of the entire Speekoo application

    Speekoo is a language learning application. Its advantage lies in its method, based on the language's structure instead of learning by heart responses for specific scenarios.

    My responsibilities and projects included:

    • The web application using angular 2.
    • The mobile iOS and Android applications, using ionic 2 to share code with the web application.
    • The general architecture, including the firebase database.
    • A standard administration interface to enable importing lessons from an excel file and modify the online content in real time.
    • Implementation of the project organisation (Team services, Kanban).

    web app-store play-store

    #angular 2#ionic 2#typescript#firebase#rxjs#lodash#azure#stripe#ios#android#nodeJS#express 4
  • 2014 - 2016

    CTO and partner at Metidia

    My greatest adventure (until now)! Vinoga, the social farming game set in the world of wine-making.

    As a team of two developers, we implemented not only an entire game but also a complete developing environment to optimize our efficiency. I was personally responsible for the architecture of the servers and back-end. Architecture-wise, everything can be deployed and versionned on cloud formation, including a jenkins, a redis, and a system to manage docker instances. All of it is deployed continuously with 0 downtime.

    The game in question is only accessible on Facebook and is entirely programmed using javascript. Many challenges were undertaken during these 2 years: performance, UI, A-B testing, occasional animations... In short, it was all good!

    Using my personal experience in graphic design, I was also able to lead and train our graphics team and ensure handover. Furthermore, due to the specifics of working in a start-up environment, I endeavoured to help out wherever possible (shooting promotional videos, organizing events, designing graphical elements...). It wasn't always easy, but one thing is sure : I learned a lot from this experience!

    Our last field of experimentation was project management. From "on-the-fly" development to the the implementation of agile methods (Scrum first, then Kanban), we were able to ascertain the pros and cons of each method, adapt them and learn from them.


  • 2009 - 2013

    Master in management from leading French business school : Télécom EM

    Télécom EM - Specializing in Engineering Information Systems

    Studying management?! Indeed, during my studies I chose to dive deeper into business subjects differing from my passion: programming.

    As a matter of fact, I've been developing since I was 11 years old, and I've always been self-educated. Having a desire to learn, I decided to pursue studies in the management/commerce fields. However, I chose a business school sharing a campus with an IT college, and I chose a specialty that is common to both schools: Engineering Information Systems.

    I do not regret this choice, which allows me to apprehend projects with a greater open-mindedness. :)

    During that period, I also took intensely part in the club life of the campus: I became vice-president of the Arts Office, President of the makers' club and member of the robotics club.

    #management#marketing#information systems#Télécom EM#Mines télécom
  • 2008 - 2009

    Diploma from University Institute of technology in Marketing techniques

    One of the best trainings for working life, in my opinion, these two years of teamwork on a variety of projects have made me who I am today!

    It was there, right after high school, that I truly experienced teamwork. It taught me the importance of good communication and organisation, which are still at the core of my profession today.

    During that time, I was constantly in contact with professionals and have participated in projects with concrete results (fundraising "téléthon" in a mall, proposal for a communication campaign...).


© 2021 - Fabien BERNARD (fabien0102) - Made with with Gatsby - Translation by Lucrèce ROLLAND