David Urvoy

Expert technique & développeur fullstack (React.js & Node.js)
David Urvoy's Photo

Expérience

Développeur Web

Décembre 2022 - Décembre 2023
Carrier (Lyon)

Développement d'une application Web permettant la configuration et le versioning des machines Carrier (climatiseurs, Rooftops, Fancoils).

Développement fullstack de l'application Matrix, à destination des équipes R&D, du marketing et de la vente. L'application permet la gestion de la configuration de l'ensemble des machines produites par Carrier, le versioning des propriétés des machines, ainsi que leurs options et les incompatibilités. Matrix est développé en React et Typescript, avec usage intensif de GraphQL et Tanstack (cache) et des standards HTML 5 et CSS 3. Le backend (CRUD) est intégralement généré à partir d'un schéma défini via Prisma et servi avec Apollo GraphQL. Projet hébergé sur AWS, dont le backend est servi par Lambdas, le front par cloudfront et la BDD sur amazon RDS.

Stack technique :
  • Typescript
  • React | GraphQL | Tanstack (React Query) | Zustand | Vite
  • NodeJS | Apollo GraphQL | Prisma | Codegen (+ pothos) | PostgreSQL
  • Docker | AWS Lambdas | CloudFront | Serverless
  • Vitest | Playwright | React Testing Library

Développeur Web

Septembre 2021 - Juin 2022
ContentSide (Lyon)

Développement d'un produit d'analyse sémantique en microservices.

Développement de microservices pour une plateforme d'analyse sémantique à destination d'éditeurs de presse et d'acteurs de l'e-commerce. Développement d'un socle technique pour les microservice existants (librairie modulaire avec des starters pour REST API et client, producers et subscribers de messages pour une architecture événementielle, modules de tests à différents niveaux, etc.), d'un module de parsing, débalisage et balisage HTML pour permettre l'analyse sémantique de pages web. Projet Kubernetes hébergé dans le cloud GCP. Maintenance évolutive et corrective d'une application éditoriale dans le domaine juridique. Développement, maintenance et évolution de divers composants front en React et Redux, ainsi qu'une librairie propriétaire. Services REST en Kotlin et Spring.

Stack technique :
  • Typescript | React | Redux
  • Kotlin | Spring Boot | Spring web
  • Docker | Google Cloud Platform | Kubernetes

Développeur Web

Janvier 2021 - Juin 2021
Freelance - Association (Lyon)

Développement d'un site web & divers outils informatiques (wiki, services) pour une association.

Développement et hébergement de divers outils web (site web, services REST, wiki) sur GCP pour les besoins d'une association. Développement d'un site web en React, NextJS et Docusaurus 2 (Framework basé sur React + markdown) (autoformation). Aquisition du nom de domaine, mise en place de déploiements automatisés (Github Actions) et hébergement sur le cloud GCP.

Stack technique :
  • Typescript | Javascript
  • React | NextJS | Docusaurus 2
  • ExpressJS
  • Docker | Vercel | Google Cloud Platform | Github | Github Actions

Architecte logiciel - Lead Dev (freelance)

Novembre 2019 – Decembre 2020
Descours & Cabaud (Lyon)

Conception et implémentation d'une architecture microservices.

Développement d'une application en microservices pour les besoins de l'E-Commerce. Architecture distribuée et événementielle, basée sur un système de messaging (events et commandes) avec RabbitMQ. Conception du socle technique de l'application sous forme de starters (modules) facilitant l'implémentation d'une architecture hexagonale (DDD) : centralisation des dépendances et définition des abstractions par module (rest-controller, amqp-producer, amqp-consumer, jpa-repository, etc.). Mise en place de bonnes pratiques transverses (BDD pour l'écriture des user stories et tests d'acceptance, SCRUM) et de développement (DDD, TDD). Implémentation de features (module de retry pour les appels au service historique du SI, ainsi que divers services métier). Mise en place de pratiques TDD afin d'améliorer la qualité technique et la fiabilité du produit. Les tests automatisés variaient en granularité, du test unitaire au test d'acceptance. Accompagnement technique d'une équipe de 5 développeurs, code review, animation de coding dojo (formation Kotlin, Java 8 lambdas et streams).

Stack technique :
  • microservices | REST API | RabbitMQ
  • DDD (architecture hexagonale) | BDD (acceptance testing - cucumber) | TDD
  • Kotlin | Java 8 | Spring Boot (Data, Web, Security)
  • Docker | Kubernetes

Ingénieur d'études - Développeur (prestataire)

Janvier 2019 – Septembre 2019 | 9 mois
Groupama G2S (Ecully)

Projet ISI - Développement d'une application en micro-services permettant la déclaration et le suivi de sinistres (sociétaires), leur prise en charge par les gestionnaires ainsi que le paramétrage manager.

Développement du module de paramétrage et de supervision des gestionnaires d'assurance (interface de pilotage pour les managers et de synthèse pour les gestionnaires d'assurance). Tâches effectuées : Structuration de l'application en micro-services, développement d'une librairie de composants Angular, ainsi que des interfaces utilisateur, implémentation de la gestion des habilitations (sécurité).

Stack technique :
  • Angular 7 | TypeScript | Javascript
  • Architecture microservices | DDD
  • Java 8 | Spring Boot (Data, Web, Security) | REST API
Environnement projet :
  • ~20 développeurs. Méthode Agile / SCRUM.

Ingénieur d'études - Développeur (prestataire)

Juin 2018 – Décembre 2018 | 7 mois
Enedis (Lyon)

Projet ISup - supervision de compteurs intelligents destinés aux professionnels.

Développement d'une application web et de services REST permettant la supervision de l'installation et du fonctionnement de compteurs (relevés à distance, télédistribution de softwares sur les compteurs, détection d'anomalies, etc.). Développement d'interfaces utilisateur en Angular. Exploitation de l'application sur l'environnement de production. Développement de divers services (REST, événementiels) pour une application hautement asynchrone et distribuée (Kafka, ElasticSearch) : afin de gérer le volume de données conséquent (Cassandra) que représentaient les communications du SI avec les compteurs (plusieurs messages par heure par compteur, pour plusieurs centaines de milliers de compteurs). Exploitation des services et de l'application sur divers environnements, de test, intégration, jusqu'en production (Docker, Ansible, HashiCorp Vault).

Stack technique :
  • Javascript | AngularJS
  • Architecture microservices
  • Java 8 | Scala | Spring Boot
  • Apache Kafka | Cassandra | ElasticSearch | Spark
  • Docker | Stack ELK (ElasticSearch, Logstash, Kibana) | Git
Environnement projet :
  • ~6 développeurs. Méthode Agile / Kanban.

Ingénieur d'études - Développeur

Mars 2017 – Juin 2018 | 1 an 3 mois
Worldline Global (Lyon)

Projet Digital Banking - Norme PSD2 - XS2A.

Digital Banking Platform : Plateforme applicative de micro-services divers (comptes, paiements, authentification, etc.) conçue pour se connecter sur un SI bancaire, afin d'en étendre les fonctionnalités et de les exposer via des APIs web standardisées et conformes aux nouvelles normes européennes. Implémentation de la nouvelle norme bancaire PSD2 (début 2018), imposant la standardisation des APIs des banques (via différents standards européens). Cette standardisation des APIs permet l'ouverture à la concurrence du développement des applications bancaires. Implémentation de la gestion des Applications Tierces.

Stack technique :
  • Java 8 | Spring Boot (REST, Security, Data, Batch) Cloud (Stack Netflix) | Maven
  • Javascript | EmberJS
  • Docker | Stack ELK (ElasticSearch, Logstash, Kibana) | Git
Environnement projet :
  • ~12 développeurs. Méthode Agile / SCRUM (daily, grooming, sprint planning, retrospectives)

Développeur fullstack

Avril 2016 – Mars 2017 | 1 an
Sword Group (Lyon)

Projet de développement d'une application de géolocalisation au forfait pour le compte de GrDF.

Développement d'une application permettant la planification et le suivi des tournées de coupure et de remise en gaz. Basée sur un fond de carte Google Maps, et s'appuyant sur ses APIs, elle permettait de définir des zones de coupure de gaz et de gérer leur statut. J'ai développé la fonctionnalité de traçage, découpage et fusion des zones, ainsi que les web services REST de l'application. Développement de composants web et interfaces en JS vanilla.

Stack technique :
  • Javascript | Google maps API
  • Java 8 | Spring Boot (Web Services REST)
Environnement projet :
  • Equipe de 4 développeurs

Ingénieur d'études - Développeur (prestataire)

Juillet 2014 – Mars 2016 | 2 ans
Tessi Documents Services (Saint-Étienne)

Projet Espace Unique - Refonte d’une application web d’EDI (échange de données informatisées) bancaire permettant la gestion administrative (comptes, abonnés, vecteurs de communication, autorisations, porteurs, certificats) et la gestion des transactions bancaires (virements SEPA, internationaux, mandats, prélèvements, saisies).

Développement en équipe (~ 10 développeurs) du back-end de l’application en Web Services avec un fonctionnement Agile Scrum (itérations de 2 semaines). Développement conduit par les tests unitaires (implémentation des tests unitaires), analyse de spécifications fonctionnelles, analyse de code existant, conception technique, rédaction d’analyses techniques et développement Java.

Stack technique :
  • Java 7 | Spring | Hibernate | Maven | JUnit | Mockito
Environnement projet :
  • Méthode Agile SCRUM

Compétences Techniques

Frontend

React
EcmaScript
TypeScript
Three.js
Next.js

Backend

Node.js
Express.js
Apollo GraphQL

Other

Docker
Git
Cloud (GCP, AWS)

Projets Personnels

(WIP) Site web associatif

Typescript | React | JSX | Next.js | Vercel
Mise en place d'un site web pour un groupe associatif.

Wiki association

Typescript | React | JSX | MDX | Docusaurus 2
Construction d'un wiki pour un groupe associatif.

Docker presentation

Python | Bash | Docker | Kotlin | React | Spring
Projet de démonstration des bases de docker - containerisation d'une app (React/Kotlin/MySQL) et exploitation de 3 instances.

Formation

ICAM Nantes

Ingénieur généraliste (2010 – 2013)