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.

AmbitoTecnologie
LinguaggiJavaScript, TypeScript, PHP, SQL, HTML5, SCSS/SASS
Framework e librerie frontendReact, Next.js, Vue, Angular, jQuery
Gestione dello statoRedux Toolkit, React Redux, VueX, Zustand
Framework UITailwind CSS, Material UI, Bootstrap, shadcn/ui
Backend e APINode.js, Nest.js, Express.js, REST APIs, Integrazione di API
Recupero dei datiTanStack Query
DatabaseMongoDB, MySQL, PostgreSQL
Strumenti e DevOpsGit, GitHub, Swagger, Postman
Full stackMERN 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.