Muhammad Abdullah Awais
Sviluppo full stack di applicazioni web veloci e accessibili con React, Next.js, Node.js e TypeScript.
Ultimo aggiornamento:
Profilo
Muhammad Abdullah Awais lavora come full stack developer e progetta, sviluppa e cura ogni strumento di EasyToolbox: calcolatori, strumenti per le parole e giochi. Il lavoro copre l'intero stack: l'interfaccia, la logica che produce ogni valore e i controlli automatici eseguiti prima di ogni pubblicazione.
L'obiettivo sono applicazioni web veloci, accessibili e affidabili: interfacce chiare, dati verificati e codice collaudato invece che dato per buono.
Come vengono ricercati i dati
Prima di pubblicare uno strumento, Muhammad Abdullah Awais legge le regole che applica alla fonte: la legge sul sito ufficiale, le indicazioni dell'amministrazione finanziaria o dell'autorità di vigilanza e, quando esiste, un esempio ufficiale svolto. Il calcolatore deve poi riprodurre quell'esempio al centesimo.
- Esempi ufficiali usati come casi di prova, come la tabella di verifica dell'imposta sui salari del Ministero federale delle finanze tedesco, l'esempio dell'HMRC britannica sulla top slicing relief e quello dell'amministrazione fiscale francese sui riscatti delle assicurazioni vita
- Tutti i dati di uno strumento in un unico file datato; per i valori che cambiano a una data nota, un test blocca la pubblicazione dopo quella data finché non vengono ricontrollati
- Le fonti primarie su ogni pagina dello strumento, con la data dell'ultima verifica
È lavoro di ricerca e di sviluppo software, non consulenza professionale: nessuno studio fiscale, legale o finanziario ha rivisto le pagine. Spiegano come funzionano le regole perché chiunque possa verificare un dato; il procedimento completo è nella metodologia.
Competenze e tecnologie
Sviluppo frontend con React e Next.js, sviluppo backend con Node.js ed Express.js e archiviazione dei dati con MongoDB, che insieme formano lo stack MERN.
| Ambito | Tecnologie |
|---|---|
| Linguaggi | JavaScript, TypeScript, PHP, SQL, HTML5, SCSS/SASS |
| Framework e librerie frontend | React, Next.js, Vue, Angular, jQuery |
| Gestione dello stato | Redux Toolkit, React Redux, VueX, Zustand |
| Framework UI | Tailwind CSS, Material UI, Bootstrap, shadcn/ui |
| Backend e API | Node.js, Nest.js, Express.js, REST APIs, Integrazione di API |
| Recupero dei dati | TanStack Query |
| Database | MongoDB, MySQL, PostgreSQL |
| Strumenti e DevOps | Git, GitHub, Swagger, Postman |
| Full stack | MERN stack: MongoDB, Express.js, React, Node.js |
- Interfacce responsive costruite con componenti riutilizzabili e tipizzati
- API REST e GraphQL progettate in base alle esigenze del client
- Prestazioni con code splitting, caricamento differito e rendering statico
- Accessibilità WCAG 2.1 AA e ottimizzazione per i motori di ricerca (SEO) fin dall'inizio
Interfacce con React e Next.js
Sul frontend il lavoro parte da React e Next.js. Le pagine vengono generate sul server, quindi arrivano al browser già complete di testo, leggibili anche prima che il JavaScript sia caricato. L'interfaccia è divisa in componenti riutilizzabili scritti in TypeScript, così un valore del tipo sbagliato viene segnalato durante lo sviluppo e non da chi usa la pagina.
Lo stile usa Tailwind CSS, con un unico sistema di spaziature, colori e caratteri condiviso da tutti i componenti. I layout sono responsive: partono dagli schermi più stretti dei telefoni e si allargano fino al desktop, con controlli abbastanza grandi da toccare con un dito. Campi, pulsanti e menu si raggiungono e si usano anche con la sola tastiera.
Servizi e API con Node.js
Sul backend il lavoro riguarda servizi scritti con Node.js ed Express.js, che espongono API REST o GraphQL. La scelta tra le due dipende dal client: REST per risorse semplici e stabili, GraphQL quando un'interfaccia deve chiedere in una sola richiesta soltanto i campi che le servono.
Per i dati la base abituale è MongoDB, con modelli che descrivono ogni documento e i suoi campi obbligatori, così un record incompleto viene rifiutato prima del salvataggio; MySQL e PostgreSQL entrano in gioco quando servono tabelle relazionali. Una parte del lavoro è l'integrazione di API esterne: leggere la documentazione, gestire autenticazione ed errori e trasformare le risposte nel formato che l'applicazione si aspetta.
Test, accessibilità e prestazioni
La qualità si controlla con test automatici, non a occhio. Con Vitest ogni formula viene confrontata con valori di riferimento, e i test girano prima di ogni pubblicazione, quindi una modifica che rompe un calcolo si ferma lì. Per l'accessibilità il riferimento sono le WCAG: contrasto dei colori, etichette leggibili dai lettori di schermo, titoli in ordine logico e uso completo da tastiera.
Prestazioni e SEO entrano nel progetto dall'inizio invece di essere aggiunte alla fine: pagine statiche, poco JavaScript da scaricare, indirizzi puliti, metadati e dati strutturati per ogni lingua. Il codice è versionato con Git su GitHub, e ogni modifica passa dagli stessi controlli prima di andare online.
Come è costruito questo sito
Il sito è un'applicazione Next.js statica e multilingue in cui ogni strumento è una cartella di dati, logica, test e sette pagine scritte per ogni lingua.
- Next.js con App Router, ogni pagina generata staticamente in anticipo
- TypeScript ovunque, con i contenuti validati su uno schema in fase di build
- Sette lingue, ognuna con i propri URL, collegamenti hreflang e dati strutturati
- Test automatici con Vitest per ogni formula prima di ogni versione
- Strumenti che funzionano nel browser, quindi nulla di ciò che viene inserito arriva a un server
Contatti
Per un progetto di sviluppo web o un commento su uno strumento del sito, scrivi a [email protected]. Il portfolio su www.abdullahawais.com mostra altri progetti, e i profili in questa pagina portano al codice su GitHub e agli aggiornamenti professionali su LinkedIn.