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

Depuis 2017, du PHP de mes débuts au Node.js et au TypeScript d’aujourd’hui.

  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.

    Je développe en Node.js et TypeScript au quotidien, et je m’occupe aussi d’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.

    Le même socle Node.js et TypeScript, avec en plus les échanges entre une application web classique et la blockchain.

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

    OneOrto, Saint-Genis-Laval

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

    Impression 3D de prothèses et de kits d’outillage.

    J’ai fait évoluer le CRM de l’entreprise, corrigé ses bugs, optimisé l’ensemble et réalisé des migrations de base de données.

    • PHP
    • Symfony
    • MySQL
  4. 2017

    Clickdev, Lyon

    Développeur, mars à juil. 2017

    Un premier projet en équipe, en scrum. Un intranet complet, de la conception de la base de données aux comptes utilisateurs et administrateurs, en passant par les tickets de support et un vote pour prioriser les évolutions.

    • PHP
    • Symfony
    • Scrum

Compétences

Les outils changent, ma façon de m’en servir aussi. Aujourd’hui, des agents de code m’assistent chaque jour, dans un workflow agentique.

Node.js
Le cœur de mes journées, en production chez Secrecy.
  • Depuis 2017
TypeScript
Ma façon d’écrire du JavaScript, plus claire à lire et plus sûre à faire évoluer.
  • Typé de bout en bout
Rust
Pour voir ce qui se passe sous le capot, avec la rigueur que le langage impose.
  • 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

Ce que je soigne

Tests
Je teste ce que je livre, pour que tout le monde dorme tranquille après une mise en production.
Documentation
J’écris la documentation que j’aurais aimé trouver en arrivant sur un projet.
Maintenabilité
Une architecture claire, l’hexagonale en tête, et du clean code, pour qu’une application puisse grandir sans tout réécrire.
Veille
Je lis, j’expérimente et j’échange beaucoup. C’est ainsi que j’ai appris, et je n’ai jamais arrêté.

Projets personnels

Ce que je fabrique quand personne ne me le demande. 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 pour représenter des plages et des réseaux IPv4 et IPv6, les lire depuis du texte comme 192.168.0.22/24, puis les parcourir, ports compris.

  • Rust
  • IPv4
  • IPv6
  • Open source

Échangeons

Une équipe à faire grandir, un produit à imaginer, 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