Adam Di Mario

Web Developer

tl:dr;

Sono uno sviluppatore web con 10+ anni di esperienza, lavoro principalmente sul frontend con React ma posso mettere mano su qualunque progetto web-related con relativa facilità, sia frontend che backend.

Quando non scrivo codice, offro consulenza su progetti sia in partenza (scelta dello stack e dell'infrastruttura, bootstrapping dell'ambiente...) che in corso (analisi delle performance, introduzione dei test, miglioramento della DX per il team esistente...).

Mi piace risolvere problemi relativi a TypeScript, facilitare il lavoro degli altri sviluppatori, insegnare ai junior e rimuovere codice.

Esperienze lavorative

Integrazione in piattaforme e-commerce di soluzioni CMS headless(e.g. Contentful, Storyblok), definizione della content strategy e dei content models

Manutenzione, aggiornamento e ottimizzazione di vecchi progetti in Django/Wagtail e React

Pianifica ed esecuzione della migrazione di 20+ progetti in JavaScript/TypeScript da Yarn v1 a pnpm, gestendo differenze di lockfile, configurazioni del workspace e compatibilità della CI, introducendo nel mentre controlli di sicurezza delle dependency, come audit automatici e rigorose trust policies dei packages al fine di prevenire/mitigare vulnerabilità supply-chain.

Consulenza tecnica e analisi delle performance su applicativi web esistenti

Coordinamento e affiancamento degli sviluppatori mid/junior sui vari progetti, pair programming, code review

Progettazione tecnica e sviluppo di una dashboard per il monitoraggio della rete telefonica di Rete Ferroviaria Italiana (insieme a Comtest Wireless) con visualizzazione interattiva di dataset di dimensioni anche superiori ai 100k punti su svg/canvas/mappe e possibilità di offload delle computazioni più pesanti su Web Worker.
Stack: React su Webpack, MUI, VisX, OpenLayers.

Presa in consegna di un pannello di visualizzazione analytics per ShopFully, in particolare migrazione integrale del progetto da create-react-app a Vite e da Javascript a TypeScript, realizzazione di un custom hook per il data fetching su backend cube.js con risposta tipizzata in base alla query e internazionalizzazione del progetto.
Stack: React su Vite, VisX, cube.js.

Progettazione e sviluppo di design system a componenti, declinati per React/Next.js, Angular e per utilizzo diretto in HTML/CSS/JS

Sviluppo di template per email (DEM, email transazionali) in HTML/CSS

Sviluppo di temi e plugin custom per Wordpress

Design e sviluppo di siti vetrina statici in HTML/CSS/JS

Progettazione tecnica e sviluppo di una SPA per la gestione e l'osservazione dei customer flow negli store Flying Tiger Copenhagen.
Stack: React su create-react-app, D3.js.

Progettazione tecnica, sviluppo e manutenzione del framework CSS/JS che implementa la guida di stile per i siti della Provincia Euromediterranea dei Gesuiti.
Stack: custom script in node.js per build e pubblicazione su npm dei componenti, vanilla JS.

Progettazione tecnica e sviluppo di componenti per l'area personale del sito ConTe.it, progettazione e sviluppo del sito careers.conte.it.
Stack: Angular, vanilla JS.

Design e sviluppo di siti vetrina statici in HTML/CSS/JS

Design e sviluppo di gestionali custom con backend in Django/DRF e frontend in Materialize.css + JS o AngularJS

Sviluppo di librerie di componenti UI ad uso interno e per terzi

Design e sviluppo di siti vetrina statici in HTML/CSS/JS

Skillset

Core

Conoscenza approfondita dei fondamenti del web: HTML e suo utilizzo semantico, CSS e principali metodologie, DOM e relative API del browser, HTTP e ciclo request-response, ecc...

Conoscenza avanzata di JavaScript, dei suoi costrutti e dei suoi internals (closures, hoisting, concurrency ed event loop, operazioni asincrone, generators e iterators, ecc...).

Profonda familiarità con TypeScript, sia nei suoi concetti fondamentali(inferenza, assegnabilità, narrowing, ecc...) che in quelli avanzati(varianza, generics, distributive conditional types, ecc...), esperienza nella migrazione incrementale sia di library che di application code.

Ottima conoscenza di React, dei suoi pattern d'utilizzo presenti e passati e del suo ecosistema (Next, React Router, Redux, ecc...), familiarità con Vue 3 (Composition API) e Angular.

Attenzione alla performance, con capacità di indentificare, diagnosticare e prevenire problemi come memory leaks e re-render eccessivi. Dimestichezza con gli strumenti di profiling.

Comprovata capacità di ottimizzare i processi di sviluppo identificando i colli di bottiglia e implementando soluzioni che facilitano il lavoro, migliorano i tempi di sviluppo e permettono al team di concentrarsi su task ad alto impatto.

Consolidata esperienza con l'architettura e il tooling frontend, come gestione di monorepo, pubblicazione di librerie su registry pubbliche e private e progettazione e realizzazione di design system a componenti.

Esperienza nello sviluppo backend con Node.js, incluse progettazione e sviluppo di API e servizi, data validation e integrazione di servizi esterni. Dimestichezza con GraphQL per schema design, implementazione di resolver e client-server data modeling.

Ausiliarie

Buona conoscenza del sistema di versionamento git, del workflow relativo e delle principali piattaforme (GitHub, GitLab, Bitbucket...)

Familiarità con i moderni strumenti di sviluppo assistito da AI, con utilizzo selettivo per accelerare ricerca, prototyping e problem exploration, comunque mantenendo ragionamento indipendente e ownership delle decisioni tecniche.

Buona conoscenza dei principi di data visualization e della matematica correlata, familiarità con le principali librerie (D3, VisX, Recharts, Echarts...)

Buona conoscenza dei principi di motion design, familiarità con le principali librerie di animazione (GSAP, AnimeJS, Framer Motion...)

Confidenza con i principali software e piattaforme di collaborazione (Slack, Jira, Trello, Notion...)

Capacità di agire come punto di contatto tecnico diretto per i clienti, gestendo le aspettative, chiarendo i requisiti e comunicando i trade-offs in modo chiaro e trasparente.

Capacità di anticipare potenziali problemi già in fase di design/wireframing, familiarità con i principali strumenti di UI design e design handoff (Figma, Zeplin, Sketch...)

Soft

Attitudine all’analisi e al problem-solving

Attenzione ai dettagli

Adattabilità, ottima capacità di apprendimento rapido e di inserimento in codebase esistenti

Abilità nella gestione del team e nel mentoring degli altri sviluppatori

Ottima conoscenza dell’inglese scritto e parlato, anche tecnico

Altri interessi

Matematica
Design e tipografia
Creative coding e arte procedurale/generativa
Xilografia e linoleografia

Sto studiando...

Effect-TS
WebGL, Three.js e react-three-fiber
Machine Learning