L’email a bien été copié dans le presse papier !

@fabien0102

  • github
  • twitter
  • linkedin
  • codingame
  • email
fren

Fullstack TypeScript

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

Bio

Développeur TypeScript, spécialisé en React ces dernières années mais toujours Fullstack.

Ma passion / mission est de créer des expériences utilisateurs (et développeur) uniques, agréables à utiliser et robustes. Pour cela, j’aime prendre le temps de bien faire les choses et affûter mes outils de développement. Car oui, tout comme un bon menuisier, un bon développeur doit avoir de bons outils !

À côté de ça, j’aime les challenges en tout genre, menuiserie, escalade ou même robotique ! Bref, tant que j’apprends quelque chose de nouveau, je suis heureux :)

  • Depuis Decembre 2021 (en cours)

    Senior Software Engineer - Xata

    Membre de l'équipe fondatrice de Xata en tant qu'ingénieur Frontend ! Plein de challenges avenir :

    • Génération de SDK
    • Implementation d'un tableur
    • De la data visualisation
    • Et probablement plein d'autres…

    Pour l'instant le produit est encore en conception, j'ai vraiment hâte de voir le résultat !

    web

    #typescript#database#codegen#TDD#data-viz#react#open-api
  • Septembre - Novembre 2021

    Senior TypeScript Engineer - Chatterbug

    De retour sur une application pour apprendre les langues ! Ce fût très court mais j'ai eu le plaisir de travailler avec une équipe adorable et découvrir une excellente culture d’entreprise !

    Pendant mon court passage, j'ai eu le temps de jouer avec :

    • notre dernière fonctionnalité premium : Un video chat en groupe
    • mettre en place le flow pour les promotions
    • un peu de codemod pour améliorer la type-safety de la codebase
    • automatiser le processus de traduction avec crowdin (github actions)

    Voilà pour les grandes lignes, suite à ça, un de mes meilleurs amis m'a proposer un poste pour Xata, et, ba ça avait l'air fun ! Je dois avouer que je n'étais peut-être pas un grand fan de react-native 😅

    web app-store play-store

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

    Senior TypeScript Engineer / Techlead Frontend - Contiamo

    Un produit ambitieux et une équipe formidable ! Je travaille chez Contiamo depuis 2018, arrivé juste au début de la conception d’un nouveau produit.

    Notre première itération du produit était pour supporter le travail des data analystes: Jupyter notebooks en 1 clic, collaboration et déploiement de functions as a service.

    Le tout était combiné à un moteur SQL, capable de requếter plusieurs BDD à la fois, agnostique de la technologie de la BDD.

    Maintenant, après quelques itérations, Contiamo se focalise plus sur la partie "cataloging" des données, avec gestion de permissions et toujours la possibilité de requêter facilement les données disponibles.

    Voilà pour la rapide histoire, qui nous amène au différents challenges que j’ai pu rencontrer :

    • Construire en éditeur SQL (basé sur Monaco editor)
    • Parser et manipuler des requêtes SQL pour assister nos utilisateurs (rhombic)
    • Générer pas mal de code depuis OpenAPI pour avoir une DX aux p’tits oignons (restful-react)
    • Création de projets clients avec notre produit en guise de backend (graphql)
    • Création d’un composant React pour gérer nos configurations (react-runtime-config)
    • Améliorer l’accéssibilité de notre produit
    • Jouer un peu avec k8s & docker pour avoir des pull-request previews locales et distantes.

    Évidement, tout cela n’a été possible que grâce à une équipe exceptionnelle, toujours là pour challenger le moindre edge case ! Notre jeu favori étant de mettre le navigateur avec une connection internet très lente, cliquer un peu partout, couper internet de tant en tant, et voir le résultat ! Un excellent exercice pour se forcer à gérer TOUS les cas ! 😁

    Fun fact, Contiamo est quasiment entièrement en REST, et le tooling autour d’OpenAPI était franchement pas foufou… Bref, un peu frustrer par rapport à mon expérience avec GraphQL, j’ai passé pas mal à améliorer cette partie. Je suis plutôt fier de ce qu’on est arrivé à faire à ce niveau : toutes mes API sont statiquement typées à partir d’OpenAPI, et je peux même utiliser le Frontend comme test de régression !

    web

    #typescript#react#monaco editor#sql#ast#redux#rxjs#graphql#open-api#k8s
  • Novembre 2017 - Avril 2018

    Senior Fullstack TypeScript - Baze

    Développement de l’application web et des outils de gestion interne de Baze.

    Baze est une solution qui vous fournit des compléments alimentaire sur mesure à partir d’échantillons sanguins et de données personnelles.

    Mes différents projets/responsabilités ont été :

    • L’application web en react/redux/react-native-web/apollo
    • L’application de gestion en react/redux/apollo/redux-observable/apollo
    • L’application permettant de gérer le tracking des échantillons dans les laboratoires (react + apollo-link-rest)
    • Un backend GraphQL pour gérer les différents formulaires (graphql-yoga)
    • Un backend GraphQL pour administrer les différents algorithmes de recommendation (graphcool + typescript)

    C'était ma première expérience avec GraphQL en production et elle s’est très bien passée. Difficile de refaire du REST après ça !

    J’ai aussi profité de cette expérience pour activement participer à des projets open-source comme graphql-yoga et apollo-link-rest. En effet, rien de tel qu’une application en production pour améliorer nos outils :)

    web

    #react#redux#redux−observable#graphql#apollo#react-native#graphcool#typescript#nodejs#mongodb#docker#jest#TDD
  • Été 2017

    Open-source - Gatsby

    Participation active à la communauté de Gatsby : développement, revue de code, tests et support.

    Quand j’ai décidé de faire ce site, je voulais :

    • coder en React
    • ne pas à avoir à gérer de serveur
    • être SEO friendly (c’est là où ça se corse)

    C’est avec ce cahier des charges en tête que j’ai trouvé Gatsby (en version pre-alpha), et j’ai choisi d’y prendre part.

    Mes principales interventions ont été :

    • rendre l’environnement de Gatsby compatible avec Windows
    • permettre l’utilisation de TypeScript
    • trouver et corriger des bugs
    • collaborer avec les autres développeurs sur Discord
    • participer aux choix techniques (notamment l’architecture des dossiers)
    • relecture et validation des pull requests

    Bref, quelques pull requests et galères plus tard, j’ai enfin pu attaquer mon site dans de bonnes conditions :)

    web github

    #open-source#github#graphQL#react#redux#serverless#typescript#webpack
  • Avril 2017

    Freelance - Actronika

    Développement du logiciel pour les kits de démonstration de la puce Tactronik.

    Ce logiciel, réalisé avec Electron/React/Redux/Redux-observable/Jest, permet de paramétrer les différents effets haptiques prédéfinis et les envoyer à la carte de démonstration via le port série.

    Le challenge de ce projet était d'avoir une couche de communication série, et cela sans avoir à disposition la carte électronique pour tester avant la livraison.

    Grâce à Redux-observable et une batterie de tests unitaires, la connexion s'est fait sans accroc. Le projet est facilement maintenable et évolutif. Et ça, c'est cool !

    web

    #electron#react#redux#redux−observable#serial−port#typescript#jest#TDD#github
  • Février 2017

    Freelance - Actronika

    Développement d’une solution pour générer des effets haptiques.

    Un projet rapide pour un POC client, le but étant de créer une application permettant de séquencer des effets haptiques puis d’en exporter le résultat.

    Le challenge était la rapidité du projet et la gestion d’une grosse quantité de données. C’est pourquoi nous sommes partis sur une solution 100% web avec un export CSV, malgré le risque de latence du navigateur.

    Finalement le produit marche parfaitement, et le cahier des charges a été respecté !

    J'ai aussi profité de cette première mission avec Actronika pour former l'équipe à React/Redux/TypeScript/Jest. L'objectif étant une reprise facile du projet !

    web

    #react#redux#typescript#jest#TDD#github
  • Décembre 2016

    Découverte de React - Puissance 4

    Vacances de Noël \o/ Le monde ne parle que de React et Redux, mais le destin a fait que je n'ai pour l'instant fait que du Angular…

    Qu’à cela ne tienne ! Je profite donc de ces vacances pour combler ce vide ! Pour l'occasion, je pars sur l'implémentation d'un puissance 4, le tout en TDD (j'aime bien les tests) et en TypeScript !

    C’est donc ainsi que mon aventure avec React/Redux a commencé ! C’est d'ailleurs ce projet qui a été utilisé comme starter et support de cours pour Actronika.

    Verdict : Redux c’est génial ! Je comprends parfaitement l'engouement qu'il y a autour de cette techno ! Et je ne peux me passer du hot-reload ^^ Bref un gros coup de cœur pour cette stack !

    web github

    #react#redux#jest#typescript#webpack 2#github
  • Août 2016 - Mars 2017

    CTO - LearnMyLanguage

    Conception et développement de l'intégralité de l'application Speekoo.

    Speekoo est une application d'apprentissage de langues. Sa particularité est dans sa méthode qui se base sur la structure de la langue et non pas sur des situations à apprendre par cœur.

    Mes différents projets/responsabilités ont été :

    • L'application web en angular 2.
    • Les applications mobiles iOS et Android, réalisée avec Ionic 2 pour une mutualisation du code avec l'application web.
    • L'architecture générale, notamment de la base de données Firebase.
    • Une interface d'administration, permettant d'importer les cours/fiches à partir d'un fichier Excel et de modifier à la volée le contenu en ligne.
    • Mise en place de l'organisation projet (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 et Associé à Metidia

    Ma plus grande aventure (pour l'instant) ! J'ai nommé : Vinoga, le jeu de farming social sur l'univers du vin.

    Au nombre de deux développeurs, nous avons mis en place non seulement un jeu complet mais aussi tout un environnement de développement afin d’optimiser notre efficacité. J'ai été personnellement responsable de l'architecture des serveurs et du back-end. Niveau architecture, tout est déployable et versionné sur cloud formation. Cela comporte entre autre un jenkins, un redis, et tout un système de gestion d'instances docker (le tout en déploiement continu, sans coupure des serveurs).

    Le jeu en question est uniquement sur Facebook et est entièrement réalisé en JavaScript. Bon nombre de défis ont été relevés pendant ces 2 ans : performance, UI, tests A-B, animations ponctuelles… Bref, que du bonheur !

    Usant de mon expérience personnelle dans le graphisme, j'ai aussi su diriger et former tous nos graphistes et assurer la transition entre les équipes. Par ailleurs, de par la spécificité du fonctionnement d'une start-up, j'ai également mis la main à la pâte dans tous les domaines où cela m'était possible (réalisation de vidéos promotionnelles, organisation d'événements, création graphique…). Cela n'a pas toujours été facile, mais une chose est sûre : j'ai appris beaucoup de cette expérience.

    Enfin, dernier chantier où nous avons énormément expérimenté et appris, la gestion de projet. De la méthode la RACHE, à la mise en place de méthodes Agiles (Scrum puis Kanban), nous avons pu constater les avantages/inconvénients de chaque méthode, les adapter et progresser !

    web

    #backbonejs#nodejs#sails#mongodb#dynamodb#github#TDD#LEAN#kanban#aws#jenkins#trello
  • 2009 - 2013

    Diplôme de grande école de commerce

    Télécom EM - Spécialisation Ingénierie en SI

    Une école de commerce ?! Et oui, lors de mes études j'ai choisie d'approfondir des sujets plus métier et différent de ma passion : la programmation.

    En effet, je code depuis l'âge de 11 ans, et j'ai toujours appris en autodidacte. Aimant apprendre, c’est donc naturellement que je me suis dirigé vers des études dans le management/gestion/commerce, à noter toutefois que j’ai choisi une école qui partage son campus avec une école d’ingénieur et que ma spécialisation est commune aux deux écoles.

    Je ne regrette en aucun cas ce parcours, qui me permet d'appréhender les problématiques de mes projets avec une plus grande ouverture d’esprit :)

    Au cours de cette période j’ai aussi été énormément impliqué associativement : Vice-président du BDA, Président du club de bricolage, membre du club de robotique…

    #management#marketing#gestion#système d'information#Télécom EM#Mines télécom
  • 2008 - 2009

    DUT Techniques de commercialisation

    Une des meilleures formations à la vie active qui soit (à mon sens), ces deux ans de projets divers et variés en équipe font de moi ce que je suis aujourd’hui !

    C’est donc dès la sortie du lycée que j’ai commencé à travailler en groupe. J’y ai appris l’importance de l’organisation et de la communication, qui sont encore aujourd’hui au cœur de mon métier.

    Tout au long de cette formation, j’ai été en contact avec des professionnels et ai réalisé des projets concrets (téléthon en hypermarché, proposition pour une campagne de communication…).

    #management#projets#gestion#commerce#marketing

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