Blog 43 post

Note su .NET, database, test e le decisioni dietro software che funziona.

2026 — luglio

12 post
5 min di lettura Prevenire Dati Inconsistenti con le ACID Transactions #Databases Ogni proprietà ACID ha un default, e tre di questi promettono meno di quanto dica la parola. Il quarto default è onesto, ed è proprio lì che sta il pericolo. 6 min di lettura Pix: come funziona il sistema di pagamenti istantanei del Brasile #Payments Il Pix non è un'app e non è un'azienda. È un sistema di pagamenti che la banca centrale ha costruito e gestisce direttamente, che è esattamente la parte che confonde chi sta fuori dal Brasile. 5 min di lettura Come funziona la modernizzazione .NET con il Copilot Upgrade Agent #.NET Microsoft ha pubblicato un corso gratuito sull'aggiornare app da .NET Framework a .NET 10, più la documentazione completa del Copilot modernization agent. Ecco cosa fa davvero il workflow assess, plan, execute. 3 min di lettura I canali YouTube che mi aiutano a imparare C# e .NET #.NET Tim Corey per i fondamenti che restano davvero impressi, Nick Chapsas per cosa è cambiato nelle versioni più recenti, e Balta più Canal .NET in portoghese. Quattro canali che fanno quattro lavori diversi. 4 min di lettura Costruire una semplice regola di fraud detection in .NET #.NET Il percorso di una vera fraud rule: l'interfaccia, il tipo del verdetto, la query sul repository che ci sta dietro e perché tutto questo sono circa 20 righe di logica effettiva. 3 min di lettura Come sto imparando il system design #System Design La maggior parte dei contenuti di system design presume che tu abbia già fatto girare qualcosa in produzione. Costruire quello che i video spiegano, invece di guardarli soltanto, colma quel divario più in fretta che aspettare l'arrivo dell'esperienza. 4 min di lettura Come progetterei un sistema di pagamenti da junior .NET developer #Payments Se domani mi affidassero una feature di pagamento, le parti difficili non sarebbero il design dell'API. Sarebbero l'idempotency, il fatto che i problemi con i soldi non emergono nel testing, e sapere cosa non costruire. 4 min di lettura Come ho progettato un payment gateway orchestrator dopo un corso di iGaming #Payments PayMaestro: un'unica API davanti a molti payment gateway, con routing, cascading retry, idempotency imposta dal database, e fraud screening basato su una certificazione anti-frode della iGaming Academy. 5 min di lettura Progettare un URL shortener come progetto di studio #System Design Un URL shortener in .NET 9, tre copie dietro nginx, con Cassandra alla base e cache su Redis, costruito per capire davvero un video di system design invece di guardarlo e basta. 4 min di lettura Cosa mi ha insegnato un corso di iGaming sui sistemi antifrode #iGaming L'antifrode nei pagamenti non è un filtro che blocca le transazioni cattive. È un insieme di giudizi su rischio, costo, e quanto attrito tollererà un cliente vero. 4 min di lettura Le mie prime impressioni dopo aver imparato Cassandra #Cassandra Venendo da SQL Server, le sorprese non riguardavano la scala. Niente join, denormalizzare di proposito, disegnare la primary key prima che la tabella esista, e un query language che sembra SQL ma rifiuta cose che SQL permette. 2 min di lettura I creator .NET da cui imparo il software design #.NET Milan Jovanović per la clean architecture, Nick Chapsas e Balta per le abitudini più piccole che si accumulano. Il progetto CRUD che ho costruito è nato direttamente da una di quelle lezioni.

2026 — giugno

7 post
4 min di lettura Configurare gli alert di Azure Monitor e gli action group #Azure Una alert rule decide quando qualcosa non va. Un action group decide chi lo scopre. Separare queste due cose è il motivo per cui non finisci a modificare quaranta alert per cambiare un numero di telefono. 4 min di lettura RBAC, Policy e Resource Lock: come si incastra la governance di Azure #Azure Tre feature che suonano simili e rispondono a domande completamente diverse: chi può agire, cosa ha il permesso di esistere, e cosa nessuno dovrebbe cancellare per sbaglio. 3 min di lettura Kubernetes è sembrato più facile dopo aver capito queste basi #Kubernetes Non ho ancora fatto il deploy di Kubernetes in un progetto vero, come la maggior parte di quello che so sul software design: guardato, capito, non ancora applicato. Le basi hanno smesso di sembrare un muro di YAML non appena ho avuto un modello mentale per loro. 4 min di lettura Usare Azure Cloud Shell e la az CLI per la prima volta #Azure Un terminale nel browser, già autenticato, con il tooling installato. Non appena ho visto il pattern dietro i comandi az, il portale ha iniziato a sembrare più lento che digitare. 2 min di lettura Cosa ho imparato dopo due mesi di pausa dalla programmazione #Carriera Due mesi di pausa mi hanno insegnato che la conoscenza resta. La routine no, e devi riconquistarla una session alla volta. 4 min di lettura Come la certificazione mi ha fatto tornare a studiare #Carriera Come prepararmi per l'AZ-900 mi ha aiutato a smettere di saltare da un argomento all'altro e a studiare con una direzione più chiara. 4 min di lettura Cosa faccio per rendere più sicura un'applicazione .NET #.NET La sicurezza non è solo authentication. Igiene del version control, secrets, validazione JWT, RBAC, HTTPS, monitoraggio, fiducia nelle dependency, e revisionare ogni pezzo di codice generato da un LLM prima che giri.

2026 — maggio

1 post
2 min di lettura La mia routine quotidiana di francese con podcast e Duolingo #Francese Quattro mesi di francese: lezioni private due volte a settimana per la struttura, Duolingo ogni giorno per restare in contatto con la lingua e podcast per l'ascolto. Ancora a livello base, e va bene così.

2026 — aprile

4 post
2 min di lettura JWT e Microsoft Identity: come capisco la differenza #.NET Continuavo a trattare JWT e Microsoft Identity come scelte in competizione. Non lo sono. Uno è la biglietteria che conferma chi sei, l'altro è il braccialetto che lo dimostra su ogni giostra dopo. 4 min di lettura Perché lo scaling conta anche prima che la tua applicazione diventi grande #System Design Lo scaling non riguarda un traffico che non hai ancora. Alcune abitudini .NET, tenere l'app stateless, async fino in fondo, e non chiamare il database in un loop, non costano niente adesso e sono dolorose da aggiungere più avanti. 3 min di lettura Perché penso che i principianti dovrebbero imparare la clean architecture #.NET Prima buttavo il mio DbContext direttamente nei controller e riversavo la logica in Program.cs. Funzionava, finché non dovevo cambiare qualcosa. La clean architecture è ciò che ha sistemato tutto. 3 min di lettura Come studio programmazione oggi: guardare, costruire, ripetere #Apprendimento La mia routine di studio adesso: guardare una lista breve di persone di cui mi fido, ricostruire quello che hanno mostrato senza il video aperto, e poi tenere GitHub aggiornato così la pratica non sparisce.

2026 — marzo

1 post
11 min di lettura Come capisco la concorrenza in .NET #.NET Pensavo che la concorrenza significasse solo thread. Copre race condition, deadlock, transaction, e il lost update problem, e un lock in C# non protegge in nessun modo una riga di database.

2026 — febbraio

2 post
4 min di lettura SQL o NoSQL? Come penso a questa scelta #Databases La domanda non è quale database sia migliore. È se conosco i miei access pattern in anticipo, e se il dato ha relazioni che ho bisogno che il database stesso protegga. 4 min di lettura Come ho containerizzato la mia API e fatto il deploy su Azure #Azure Un Dockerfile multi-stage, Docker Compose con un SQL Server con health check, e la Sports Betting API in esecuzione su Azure Container Apps con Azure SQL dietro.

2026 — gennaio

2 post
3 min di lettura Cosa ho imparato sulla costruzione di REST API in .NET #.NET Una API CRUD semplice, niente pagamenti, niente di sofisticato. HTTP verb, routing, EF Core, e status code stanno finalmente facendo click mentre la costruisco. 4 min di lettura Azure SQL Database o SQL Server su una VM? Cosa ho imparato #Azure Entrambi eseguono SQL Server. La differenza è chi applica le patch, chi fa i backup e quanto controllo ti serve davvero. Per la mia API, lasciare tutto questo ad Azure era la scelta ovvia.

2025 — dicembre

2 post
2 min di lettura Cosa ho imparato implementando la JWT authentication in .NET #.NET La scadenza dell'access token è la parte facile da gestire. Il refresh token che scade silenziosamente, senza un percorso di failure esplicito, è ciò che ha davvero causato logout confusi finché non gliene ho dato uno. 2 min di lettura Finire la laurea in Informatica dopo aver bocciato un esame #Istruzione Ho bocciato un esame la prima volta per mancanza di tempo per studiare. L'appello di recupero era un esame di SQL scritto a mano, join e indici su carta, e mi ha insegnato più di quanto avrebbe fatto passarlo al primo tentativo.

2025 — novembre

1 post
3 min di lettura Il progetto CRUD che ho costruito per avere qualcosa da mostrare ai recruiter #.NET Ispirato a un coding assessment che André Baltieri (Balta) dà ai candidati, ho costruito un'app CRUD di Student e abbonamento Premium con auth vera in pochi giorni, e ho speso il tempo risparmiato su ciò che rende davvero un progetto finito.

2025 — settembre

1 post
3 min di lettura OOP in C#: gli esempi che finalmente hanno fatto click #C# Dog, Animal, e Bark() non sono mai rimasti. Encapsulation, abstraction, inheritance, e polymorphism hanno finalmente fatto click quando li ho visti in una bank account, in un notification service, e in un payment processor invece.

2025 — febbraio

2 post
2 min di lettura Imparare a programmare con JetBrains Rider #JetBrains Rider Ogni tutorial di C# per Mac diceva di installare VS Code e una pila di extension. Per me è crollato tutto finché qualcuno su Reddit non ha menzionato Rider, e auto-complete e debugging hanno semplicemente funzionato. 3 min di lettura Come continuo a studiare ogni giorno #Apprendimento Nessun syllabus, per lo più video su cinque fronti in cui continuo a girare, e l'abitudine di accorgermi quando sono finito in un rabbit hole di SaaS invece di studiare quello per cui mi ero seduto.

2024 — dicembre

1 post
2 min di lettura Imparare l'italiano da madrelingua portoghese: la mia esperienza #Italiano Un livello intermedio solido in circa quattro mesi, costruito con Babbel Live per un'ora al giorno, tanto ascolto di YouTube e podcast, e Duolingo a coprire i vuoti in mezzo.

2024 — ottobre

2 post
2 min di lettura Cosa trovo più difficile nell'imparare a programmare #Apprendimento Non è nessuna tecnologia in particolare. È la pagina bianca subito dopo che il tutorial finisce, e tutto ciò che compare nel momento in cui inizi a prendere decisioni tue invece di seguire quelle di qualcun altro. 3 min di lettura I prompt AI che mi aiutano a studiare programmazione #AI I prompt che si limitano a spiegare un concetto non restano impressi. Quelli che mi costringono a rispondere, tirare a indovinare, o produrre codice prima di ricevere la spiegazione sono quelli che mi insegnano davvero qualcosa.

2024 — settembre

2 post
2 min di lettura Usare GPT per esercitarsi in italiano una frase alla volta #AI L'esperienza predefinita di GPT per esercitarsi in una lingua è un muro di testo. Vincolarlo a 1-2 frasi, un formato di correzione, e una domanda per turno lo trasforma in una vera conversazione invece che in un generatore di saggi. 2 min di lettura Come sono arrivato al terzo turno di un colloquio per uno stage SWE in Google senza LeetCode #Carriera Screening, behavioral, poi una sfida sui palindromi dal vivo per cui non ero pronto. Pensavo di aver perso la mia unica occasione. Non l'avevo persa, e il system design mi interessa ancora più di quanto LeetCode mi interesserà mai.

2024 — luglio

1 post
2 min di lettura Perché ho smesso di fidarmi delle risposte dell'AI all'università senza controllarle #AI Codice funzionante e codice compreso si sono rivelati cose diverse. Adesso ogni risposta dell'AI viene trattata come una code review prima che io la accetti.

2024 — maggio

2 post
2 min di lettura Le app Mac che uso davvero per sviluppare #macOS Rider per il backend, VS Code per Angular, Postman e Azure Data Studio in mezzo. L'insieme più piccolo di strumenti che copre uno stack completo senza litigare con macOS per arrivarci. 2 min di lettura Passare a un MacBook Pro: cosa mi è piaciuto e cosa ha richiesto tempo per abituarmi #macOS Anni di memoria muscolare da Windows hanno lottato contro di me per settimane. Il terminale basato su Unix, Homebrew, e una batteria che dura una giornata intera sono ciò che mi ha davvero convinto.