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 mesi

Mansioni 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 anni

Mansioni 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 mesi

Mansioni 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 mesi

Mansioni 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