Aller au contenu

JulienMastromonaco

Concepteur de solutions web, Node.js & TypeScript

Je fais le lien entre ce dont les gens ont besoin et le code qui y répond. De la première conversation à la mise en production, je conçois des applications web qui tiennent la route.

J’ai appris à coder seul. Le reste, je le dois aux autres.

Je vis à Lyon et je travaille en remote, aujourd’hui chez Secrecy, qui édite un SDK de chiffrement des données. Avant cela, il y a eu Digimat et sa marketplace NFT, à la frontière du Web2 et du Web3, et avant encore, une medtech qui imprimait des prothèses en 3D.

Mon métier s’est forgé sur le terrain, au sein d’équipes, sur des produits en production comme sur mes propres projets. Je ne me vois pourtant pas seulement comme quelqu’un qui code. Ce que j’aime, c’est saisir ce qu’une personne attend, mettre des mots justes dessus, puis le rendre réel.

En dehors du travail, je code en Rust pour le plaisir, je cours énormément et je ne me lasse pas de la montagne, un univers que l’on retrouve dans OnTrace. Berlin, mon vieux chien, occupe une belle part de mon temps libre aussi. Il compte infiniment pour moi, et chaque moment passé à ses côtés m’est précieux.

Mon prochain chapitre sera plus humain. J’ai envie de fédérer une équipe, de porter la vision d’un produit ou de conduire la relation commerciale avec des prestataires.

Comprendre avant de construire

Une bonne application commence rarement par du code. Elle commence par une conversation, et par une vraie curiosité pour la personne en face.

  1. Écouter

    Je commence par poser des questions. Le contexte, les contraintes, les personnes concernées, tout compte avant de parler de technique.

  2. Comprendre

    Derrière une demande, il y a souvent un besoin plus profond, parfois difficile à formuler. Je le cherche, puis je le reformule jusqu’à ce qu’il soit clair pour tout le monde.

  3. Traduire

    Je transforme ce besoin en choix techniques simples, et je les explique avec des mots que chacun peut suivre, développeur ou non.

  4. Livrer

    J’avance par étapes et j’ajuste avec vous, au fil des retours, jusqu’à ce que le résultat soit à la hauteur.

Le code n’est qu’un moyen. Ce qui m’intéresse, ce sont les gens qui s’en servent.

Parcours

Autodidacte depuis 2017, développeur Node.js et TypeScript en poste depuis 2022.

  1. 2022

    En poste

    Secrecy, Remote

    Développeur Node.js & TypeScript, depuis août 2022

    Éditeur d’un SDK pour chiffrer et sécuriser des données.

    Développement Node.js et TypeScript au quotidien, ainsi qu’une partie de la CI/CD.

    • Node.js
    • TypeScript
    • CI/CD
  2. 2022

    Digimat, Remote

    Développeur Node.js & TypeScript, févr. à août 2022

    Marketplace NFT.

    Un périmètre proche de celui de Secrecy, avec en plus les interactions entre Web2 et Web3.

    • Node.js
    • TypeScript
    • CI/CD
    • Web3
  3. 2018

    OneOrto, Saint-Genis-Laval

    Développeur junior, oct. 2017 à janv. 2018

    Entreprise qui imprime en 3D des prothèses et des kits d’outillage.

    Développement d’un CRM, avec des évolutions, des corrections de bugs, de l’optimisation globale et des migrations de base de données.

    • PHP
    • Symfony
    • MySQL
  4. 2017

    Clickdev, Lyon

    Développeur, mars à juil. 2017

    Un intranet réalisé en équipe, en méthode scrum, avec une base de données, des comptes utilisateurs et administrateurs, des tickets de support et un vote pour prioriser les mises à jour.

    • PHP
    • Symfony
    • Scrum

Compétences

Une boîte à outils qui évolue avec son temps. Je travaille aujourd’hui avec un workflow agentique, où des agents de code m’assistent au quotidien.

Node.js
Mon outil de tous les jours, dans mon poste actuel.
  • Autodidacte depuis 2017
  • Poste actuel
TypeScript
Des applications typées de bout en bout, testées et faciles à faire évoluer.
  • Autodidacte depuis 2017
  • Poste actuel
Rust
Un langage que j’apprécie sur mon temps libre, pour comprendre le logiciel en profondeur.
  • Autodidacte depuis 2017
  • Open source
Données
  • SQL
  • NoSQL
  • KV
Web3
  • NFT
  • Intégration Web2 et Web3
DevOps
  • Bash
  • Docker
  • CI/CD
Interfaces
  • React
  • Tailwind
  • shadcn/ui
  • HTML
  • CSS
  • Sass
  • Pug
Conception
  • DDD
  • Architecture hexagonale
  • Event-driven
  • Event sourcing
  • Clean code
Outillage
  • Versioning
  • Bundlers
  • Runners
  • Linters
  • Transpileurs
  • Tests
Systèmes
  • Debian
  • Ubuntu
  • Kubuntu
Méthode
  • Workflow agentique
  • Scrum

Ma façon de travailler

Tests
Je teste ce que je livre, pour que le code reste fiable dans la durée.
Documentation
Je documente, pour que d’autres puissent reprendre mon travail en toute autonomie.
Maintenabilité
Je m’appuie sur une architecture claire, comme l’hexagonale, et sur du clean code, pour que le produit reste souple et facile à faire évoluer.
Veille
Je lis, j’expérimente et j’échange beaucoup, pour rester à jour.

Projets personnels

Deux projets menés en dehors du travail. Une application web pour préparer ses sorties en montagne, et une bibliothèque Rust.

OnTrace

Chaque point d’eau de votre trace, avant le départ.

Importez un fichier GPX et OnTrace place sur votre parcours l’eau, les refuges et le ravitaillement, avec le kilomètre de chacun. Puis partagez la trace pour la préparer en équipe.

  • React
  • Tailwind
  • shadcn/ui
  • Cartographie
  • GPX
  • Rando
Capture d’OnTrace, une trace de 137 km sur la carte, avec la liste des lieux et le profil altimétrique.Capture d’OnTrace, la fiche d’une fontaine avec les commentaires de l’équipe.Capture d’OnTrace, des zones de bivouac dessinées sur la carte, en vert et en rouge.
let ip = Ipv4Addr::new(192, 168, 0, 22);
let network = Ipv4AddrNetwork::try_new(ip, 24).unwrap();
assert_eq!(Ok(network), "192.168.0.22/24".parse());

let first = Ipv4Addr::new(192, 168, 0, 0);
let last = Ipv4Addr::new(192, 168, 0, 255);
let range = Ipv4AddrRange::new(first, last);
assert_eq!(Ok(range), "192.168.0.0-192.168.0.255".parse());

net-adds

Plages d’adresses IP, réseaux et itérateurs pour Rust.

Une bibliothèque Rust qui représente des plages et des réseaux IPv4 et IPv6, les analyse depuis du texte (192.168.0.22/24, 192.168.0.0-192.168.0.255) et les parcourt, y compris en combinaison avec des ports.

  • Rust
  • IPv4
  • IPv6
  • Open source

Échangeons

Un projet à construire, une opportunité ou simplement une question, écrivez-moi. Je vous répondrai personnellement.

contact@jumastro.xyz

Voir mon CV

Envoyez-moi un message

Vos informations servent uniquement à vous répondre. En savoir plus