Junie Grat

Ingénieur design

Je construis des systèmes de production de bout en bout : un monorepo ERP de 300 tables, des outils de sécurité auto-hébergés, des vitrines WebGL et des serveurs MCP qui pilotent les applications Adobe.

Projets sélectionnés

Un registre de maquettes d'interface générées par IA, stockées sous forme de fichiers et servies comme registre shadcn : n'importe laquelle s'installe dans un autre projet en une commande. Chaque maquette conserve le brief qui l'a produite, et l'ensemble s'exporte en HTML autonome.

TanStack StartTailwind v4shadcn registryVite SSR
Hadesor ERP2026

Le système le plus complexe que j'aie construit. Un monorepo ERP Turborepo (application interne, portail client, mobile, documentation) sur un schéma PostgreSQL/Drizzle de plus de 300 tables, avec tRPC de bout en bout, validation typée drizzle-zod, authentification, i18n et couverture E2E Playwright.

Next.jsTurborepotRPCDrizzle ORMPostgreSQLPlaywright

Marque, boutique et outillage catalogue pour un porte-passeport en shweshwe fabriqué à Soweto. Un thème Shopify en production, un pipeline catalogue scripté en Python, et un site de proposition déployable qui a servi à trancher la direction artistique avant de construire quoi que ce soit.

ShopifyLiquidPythonVercel

Moniteur de surface d'attaque auto-hébergé. Découverte continue des actifs et analyse de vulnérabilités avec nuclei derrière un tableau de bord, comme alternative à ProjectDiscovery Cloud où les données restent chez vous.

PythonFastAPITanStack StartSQLitenuclei

Une lecture locale de vos propres exports de communication : à qui vous accordez réellement du temps, quels fils s'éteignent, et quels motifs un modèle croit avoir trouvés. Chaque constat porte un taux d'erreur mesuré et un verdict humain qui prime sur le modèle dans les deux sens.

TanStack StartSQLiteDrizzle ORMLocal LLM
Parley2026

Mémoire de réunion locale pour macOS. Enregistre le son système et le micro, sépare les locuteurs par diarisation pyannote et transcrit en local : rien ne quitte la machine. Livré avec une application iOS compagnon.

SwiftpyannoteWhisperApple Silicon
Shirei2026

Poste de commande en terminal pour tous les dépôts de la machine. État git, dérive des dépendances et vérifications par projet derrière une API JSON sans dépendances et une interface Ink qui ne demande aucune étape de build, avec un tableau de bord navigateur optionnel.

TypeScriptInkClackNode
Vercel Glance2026

Des alertes de déploiement sur le téléphone dès qu'un build passe au vert ou au rouge. Un Worker Cloudflare vérifie la signature du webhook et diffuse les notifications, derrière une application Expo qui porte déploiements, journaux de build et projets.

ExpoCloudflare WorkersReact Nativentfy
QuotaGlance2026

Une lecture en barre de menus macOS des limites d'abonnement IA, des fenêtres de réinitialisation et des dépenses par fournisseur, chacune tirée de son endpoint officiel plutôt que scrapée : trois tableaux de bord se réduisent à un coup d'œil.

SwiftSwiftUImacOS
Coin Detector2026

Analyse numismatique assistée par IA. Identification et notation de pièces à partir de photos, via des modèles de vision et des passes OCR forensiques, dans une application Expo multiplateforme.

React NativeExpoTypeScriptOpenAI Vision
AURUM2026

Vitrine 3D pilotée au défilement où des pièces en métaux précieux fondent et se reforment les unes dans les autres, avec un HUD technique et une inspection au survol.

Three.jsGLSLVite
Grain Swirl2026

Une boucle sans raccord d'une simulation de sable de 6,7 millions de points, mise en tourbillon en fleur par un champ de vitesse pyro et rendue avec Karma. Étalonnée depuis des EXR linéaires pour que les hautes lumières s'atténuent au lieu de brûler.

HoudiniKarmaPyroVellum
Adobe MCP Bridges2026

Des serveurs MCP qui pilotent After Effects et Illustrator via ExtendScript, en générant et en rendant des compositions de bout en bout depuis un fichier de configuration ou un agent IA.

TypeScriptMCPExtendScriptAppleScript

Ce sur quoi je travaille

Ingénierie produit

Des applications en monorepo avec une chaîne de types ininterrompue, du schéma jusqu'à l'interface.

Next.jsTanStack StartTurborepotRPC

Données et backend

Des schémas relationnels à grande échelle, validés à l'entrée de chaque appel.

PostgreSQLDrizzle ORMFastAPISQLite

Interface et animation

Des interfaces conçues directement en code, où la typographie, la couleur et le mouvement forment un seul système.

TailwindMotionThree.jsGLSL

Automatisation et IA

Des agents et des serveurs MCP branchés sur de vrais outils plutôt que sur des démos.

MCPOpenAI VisionExtendScriptPlaywright

Des contraintes plutôt que des relecteurs

Un relecteur attrape une erreur une fois. Une contrainte l'attrape toujours, y compris venant de gens qui ne vous ont jamais rencontré. Quelle couche doit porter un invariant, et où l'approche cesse de fonctionner.

Rapporter ce qu'on n'a pas vérifié

Entre ceux qui font le travail et ceux qui le financent se tient quelqu'un qui doit produire de la confiance sans pouvoir rien vérifier. C'est là que l'incertitude est blanchie en fait.

Diriger ce qu'on ne sait pas lire

Un manager incapable d'évaluer le travail doit évaluer son apparence. Le micromanagement, les réorganisations et le schéma où l'ingénieur le plus solide reçoit le traitement le plus dur découlent tous de cette seule substitution.

Simuler plutôt qu'animer

Une animation est l'enregistrement d'une décision. Une simulation est la décision, toujours en train de tourner. Trois expériences navigateur qui ont pris la seconde voie, et ce que chacune a coûté.

Brancher un ERP sur la facturation électronique française

L'échéance de septembre 2026 n'est pas un problème de PDF. Les coutures qui survivent à un changement de prestataire, et les verrous qui empêchent un mauvais déploiement de transmettre.

J'ai construit un outil pour vérifier si je l'imaginais

Vingt et un mois de mes propres messages, deux détecteurs, et un échantillon annoté à la main pour les mesurer. L'outil a trouvé ce que j'attendais, puis mesurer l'outil m'en a repris une partie.

Post-mortem d'un projet construit seul

Dix-huit mois, onze applications, un seul auteur de commits, et ce que l'historique git a enregistré.

Hériter d'un projet presque terminé

Ce que « déjà bien avancé » voulait dire en réalité, mesuré dans les fichiers qu'on m'a remis.

Un journal fiscal en ajout seul pour NF525

Prouver à un auditeur que vos enregistrements n'ont jamais été altérés, et ce que cela impose à votre processus de publication.

Contact

Écrivez-moi à juniegrat@gmail.com