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à.
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
Lead frontend developer presso MODO
da marzo 2022 a luglio 2024 — 2 anni e 4 mesiMansioni principali
Progettazione, sviluppo e gestione di applicativi web medio/grandi in React o Vue3 e TypeScript
Consulenza tecnica e analisi delle performance su applicativi web esistenti
Coordinamento e affiancamento degli sviluppatori mid/junior sui vari progetti, pair programming, code review
Lavori notevoli
Ottimizzazione delle performance e del rendering dei componenti di un'app di betting con aggiornamenti realtime ad alta frequenza tramite WebSockets, per cliente riservato.
Stack: React su Next, Redux Toolkit, Radix UI, SignalR.
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.
Frontend developer presso 5A Design
da luglio 2017 a luglio 2021 — 4 anniMansioni principali
Progettazione e sviluppo di applicativi web medio/grandi in React
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
Lavori notevoli
Progettazione tecnica e sviluppo del redesign 2020 dei siti sportivi di Sport Network (corrieredellosport.it, tuttosport.com, ecc. ), con passaggio da Java Sever Pages a Incremental Static Regeneration con Next.
Stack: React su Next.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.
Junior web developer presso Studio Unisono
da febbraio 2016 a giugno 2017 — 1 anno e 4 mesiMansioni principali
Sviluppo di temi e plugin custom per Wordpress
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
Web designer freelance
da marzo 2014 a gennaio 2016 — 1 anno e 10 mesiMansioni principali
Sviluppo di temi e plugin custom per Wordpress
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, capacità di prevenire e diagnosticare eventuali problemi come memory leaks, render lenti/doppi, ecc..., 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 agli altri sviluppatori di concentrarsi su task ad alto impatto.
Esperienza nella creazione e gestione di monorepo, nella pubblicazione di librerie sia su npm che su registry private e nella progettazione e realizzazione di design system a componenti.
Ausiliarie
Buona conoscenza del sistema di versionamento git, del workflow relativo e delle principali piattaforme (GitHub, GitLab, Bitbucket...)
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 creazione e manutenzione di intermediari (backend-for-frontend) tra il backend e il client, ad esempio per aggregare risposte da servizi diversi oppure validare i tipi delle risposte prima che arrivino sul front
Conoscenza e limitata capacità di sviluppo backend/API Rest in node.js, PHP (principalmente su Laravel e WordPress) e Python (principalmente su Django)
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