尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Dove va la tua RAL: calcolatore lordo → netto 2026 (Milano, settore privato). Esercizio di candidatura Jet HR — pagina autoportante, motore provabile con node --test, decisioni tracciate nelle issue.
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 README ↗Dove va la tua RAL: da una RAL stima il netto annuale e mensile e mostra, voce per voce, contributi e imposte trattenuti. Regole 2026, lavoro dipendente privato.
Il progetto include Netto o niente, un browser game con offerte fittizie, serie fino al primo errore, record e sfide fra amici. Documentazione del gioco.
Apri il calcolatore · La storia, con i numeri e i commenti
Sette giorni dopo il post: 293.027 impression e 177 commenti. Molti da consulenti del lavoro, HR e payroll specialist che mi hanno spiegato, abbastanza precisamente, cosa avevo sbagliato. Questa è la storia di quello che è successo, e il repository di quello che ne è uscito.
Mando la candidatura a Jet HR per il ruolo di AI builder. La prima mail che ricevo non è una risposta, è un task: un calcolatore da RAL a netto che mostri anche dove finiscono tasse e contributi. Lo costruisco in due giorni. Due giorni dopo mi rifiutano: proseguono con altri candidati.
Il calcolatore però era lì. Una sera sto cullando mia figlia per l'ottava volta, apro il telefono e scrivo due righe nel journal — non mi hanno preso, amen, però il task l'ho fatto, tanto vale pubblicarlo invece di lasciarlo morire in una cartella. Salvo.
Pochi minuti dopo arriva la mail dell'automazione n8n che trasforma i journal in bozze di post. Mia figlia ancora sveglia. Faccio due aggiustamenti e pubblico.
Presi dall'analytics di LinkedIn il 25 agosto 2026, sette giorni dopo il post.
| Numero | Metrica | Nota |
|---|---|---|
| 293.027 | Impressions | in sette giorni. I sette precedenti erano praticamente zero: +406.882% |
| 988 | Reazioni | più 177 commenti e 7 condivisioni |
| ~400 | Follower nuovi | da circa 1.135 a 1.535, +32% in una settimana |
| 3.736 | Visite al profilo | negli ultimi novanta giorni |
Le impression erano carine. I 177 commenti molto più utili, perché a un certo punto hanno cominciato a indicarmi dove migliorare il calcolatore, dove era sbagliato e cosa potevo farne.
Consulenti del lavoro, HR manager, payroll specialist, developer. Mi hanno elencato tutto quello che mancava. Li ho scaricati e dati a Claude Code cercando i filoni invece delle singole richieste. Sono usciti sette filoni e sedici ticket, implementabili uno alla volta.
| Cosa mancava | Quante volte | Stato |
|---|---|---|
| Mensilità oltre la tredicesima | 9 | fatto |
| Regione e comune scelti da chi calcola | 7 | fatto |
| Scelta del CCNL | 5 | aperto |
| Nucleo familiare e figli a carico | 5 | fatto |
| Premi di risultato e MBO | 3 | aperto |
| Welfare e fringe benefit | 2 | fatto |
| Costo totale per l'azienda | 1 | aperto |
A quel punto ho smesso di trattarli come commenti. Sono diventati ticket. Se nove persone diverse ti scrivono che manca la quattordicesima, probabilmente manca la quattordicesima.
«Un buco di analisi grosso come una casa.»
— Un commento, sulla mancanza della quattordicesima
Il commento tecnico più votato però non chiedeva una feature. Qualcuno ha aperto il codice e ha
scritto che calcola() era un blocco unico da settanta righe, numeri magici sparsi, e un solo
test goldmaster — se si rompeva qualcosa non sapevi quale voce avesse sbagliato. Aveva ragione
su tutto.
«Avrei preferito ricevere l'albero e non il tool: cerco di capire come ragiona la persona.»
— Un altro commento, il motivo per cui questo repository è pubblico
I commenti non mi hanno solo detto cosa mancava. Mi hanno fatto vedere quanto lontano poteva andare una cosa nata in due giorni per superare una selezione.
Quando l'ho pubblicato era un artefatto. Serviva a rispondere a un task, copriva un caso solo, e finito quello avrebbe smesso di servire a qualcosa. Sedici ticket dopo è diventato un'altra cosa: non ancora finita, ma con una direzione.
La direzione è portarlo dal caso singolo che copriva all'inizio — dipendente privato, Milano, anno intero, nessun familiare a carico — verso i casi veri. Il comune scelto da chi calcola e il nucleo familiare ci sono. Restano il CCNL e il costo per l'azienda accanto al netto del lavoratore. Sono problemi grossi, alcuni più grossi del calcolatore stesso, e li sto affrontando uno alla volta.
So che di strumenti così ne esistono già, compreso quello di Jet HR. Non sto provando a sostituirli. Questo serve prima di tutto a me: per imparare a costruire qualcosa che regge davvero, e per mettere insieme un portfolio fatto di cose che funzionano.
La parte tecnica ridotta all'osso: quello che serve sapere prima di fidarsi di un numero con due decimali.
Il caso coperto. Regole 2026, impiegato privato a tempo indeterminato, anno intero, un datore e un reddito. Comune, familiari a carico, welfare esente dichiarato, fringe benefit e buoni pasto sono selezionabili; premi e agevolazioni personali restano fuori.
Che numero è. Il netto annuale maturato sulla RAL, e la sua media da 12 a 16 mensilità. Non è la previsione del singolo cedolino né del bonifico che arriva a gennaio.
Il 9,19% non vale per ogni dipendente privato. Settore, inquadramento INPS, dimensione del datore e fondi speciali cambiano la contribuzione. Il calcolatore assume FPLD ordinario.
Sopra 122.295 € la sola RAL non basta. Lì scatta il massimale e i contributi si fermano a 11.899,62 €, ma vale solo per chi non aveva anzianità contributiva al 31 dicembre 1995. Il calcolatore mantiene questa assunzione e la segnala nel risultato.
Nessun consulente del lavoro ha validato questi numeri. Le regole vengono da fonti primarie e le ho controllate a mano, ma è un prototipo, non un parere fiscale. E Jet HR ha già un suo calcolatore pubblico — me l'hanno ricordato nei commenti — che questo non sostituisce.
Apri il caso a 35.000 € · Ricerca normativa e decisioni
motore.js contiene le regole,
motore.test.js le mette alla prova e index.html le presenta.node --test prototipo/*.test.js
Stato verificato: 185 test superati su 185.
Due cartelle: il prodotto e il lavoro che c'è dietro.
prototipo/ IL PRODOTTO
index.html la pagina — doppio clic e funziona, senza installare niente
la-storia.html questa storia, com'è pubblicata
motore.js il calcolo, separato per poterlo provare fuori dal browser
motore.test.js la matrice di prova
righe.js l'adapter che trasforma ogni Voce in una Riga
fonti.js il catalogo delle fonti normative
README.md le scelte di prodotto e di calcolo, spiegate
processo/ COME CI SONO ARRIVATO
decisioni.md il registro: gli otto ticket iniziali, una domanda per ticket
verifica.md cosa è provato, come, e cosa dichiaratamente non lo è
regole-netto-2026.md la ricerca normativa, solo fonti primarie
GLOSSARY.md il glossario: Voce, Riga, Capienza, Salto
curriculum.md chi sono
C'è anche un easter egg. Tutto inizia da un pezzo di storia di Jet HR. Trovato?
Il lavoro in Jet HR non l'ho preso. Sono arrivate decine di messaggi e qualche call. Una con un'azienda lombarda da quindici milioni di fatturato: CTO molto tecnico, un problema che gli gira in testa da sette mesi, software su misura, un budget. È finita con «preparo l'incontro?». Un'altra per un ruolo da product builder. Non so se una di queste cose andrà da qualche parte.
La parte buffa è che durante una delle call mi hanno descritto il lavoro — parlare con gli utenti, guardare cosa succede nel prodotto, fare prototipi, capire cosa regge e poi passarlo agli sviluppatori. Era abbastanza vicino a quello che stavo già facendo qui.
Comunque. Il lavoro originale non l'ho preso.
Il calcolatore è ancora online. La backlog pure.
Riccardo Sartori. Oggi Production Supervisor a La Nazione | Quotidiano Nazionale: coordino un reparto di 8 grafici e porto in chiusura ogni sera le edizioni di QN, La Nazione, Il Resto del Carlino e Il Giorno. Prima Product Marketing Manager alla Caoduro Spa, e prima ancora regista documentarista — 50 Liters Life è finito su Netflix e Disney+, Tied into me sulla televisione svizzera RSI.
Il curriculum completo è in curriculum.md.
📧 [email protected] · LinkedIn