Sostituire i vecchi sistemi senza spegnerli.

Sharpsoft è Luc. Prendo software che gira da decenni e che nessuno vuole più toccare, e lo ricostruisco pezzo per pezzo — mentre continua a funzionare. Accanto nascono nuove applicazioni: sul web, su Android, nel cluster.

Che cosa viene sostituito

Da migrazioni reali: il sistema che era in funzione — e ciò che oggi gira al suo posto.

PrimaDopo
Client Delphi su ogni PC
Angular nel browser
Sybase ASE
PostgreSQL
Monolite Java
Go, servizi disaccoppiati
HTML generato dal server
Angular, prerenderizzato in file statici
Esportazione completa notturna
Sincronizzazione differenziale, al minuto
Invisibile ai motori di ricerca
Dati strutturati, sitemap, Google Merchant

Caso di studio

ABW Autoverwertung abw.ch

L'azienda girava su un'applicazione Delphi con database Sybase — magazzino, prezzi, fatture. È stata portata prima su Java, poi pezzo per pezzo su Go. Accanto c'è ora un negozio online che rende l'intero inventario consultabile pubblicamente, senza mai toccare direttamente quel database.

108’300pagine di ricambi per lingua, tedesco e francese — ciascuna prerenderizzata con titolo, descrizione e dati strutturati propri.

Un worker Java copia da Sybase a PostgreSQL solo ciò che è cambiato e converte le immagini in WebP. Un'API Go serve soltanto PostgreSQL. Gli ordini passano da QR-fattura svizzera, TWINT e PayPal. L'intero catalogo va anche in Google Merchant Center come feed — ogni pezzo come prodotto a sé.

Cosa faccio

Migrazione di sistemi legacy

Il vecchio sistema resta in esercizio e diventa la fonte dei dati. La nuova architettura cresce accanto, ne assume carico e funzioni, finché del vecchio resta solo ciò che serve davvero. Nessuna data di passaggio, nessun fermo, nessun dato perso.

Sybase, Oracle, DB2, PostgreSQL, Java, Go

Nuove applicazioni

Applicazioni web, strumenti interni, interfacce e l'infrastruttura che li regge. Dal primo schizzo all'esercizio in un cluster Kubernetes — da una sola persona, che capisce anche il database.

Angular, Go, Rust, PostgreSQL, Kubernetes

Agenti IA e Claude

Agenti che lavorano su sistemi reali — il codice, la coda dei ticket, il database — non su una demo. Con banchi di prova che misurano se il risultato è davvero migliore, e l'onestà di dire dove lo sforzo non conviene.

Claude, Claude Code, MCP, agenti, RAG, valutazione

Visibilità sui motori di ricerca

SEO come problema di ingegneria: pagine consegnate come HTML completo invece che come guscio JavaScript vuoto, dati strutturati, sitemap pulite, caricamenti rapidi. Perché anche un catalogo di decine di migliaia di articoli venga trovato.

Prerendering, JSON-LD, sitemap, Google Merchant, Core Web Vitals

Cosa ho costruito

lernja lernja.ch

Piattaforma di apprendimento per le scuole svizzere e per adulti. Cinque lingue incluso il romancio, esercizi come micro-frontend indipendenti, multi-tenant.

Angular, Go, gRPC, Kubernetes

KISSDesk

Desktop remoto su una sola porta. Niente VPN, niente inoltro di porte, nessun plugin — la macchina si collega da sé e il browser decodifica l'immagine direttamente.

Rust, WebCodecs, Redis, Kubernetes

MuPlay

Player Android per musica e audiolibri sul proprio server. Ogni libro ricorda il suo punto; riproduzione su Sonos e in auto.

Android, Kotlin, Subsonic, DLNA

helios57/muplay

FamilyGuard

Gestione dei dispositivi di famiglia su hardware proprio. Regole per app e tempo di schermo, senza che i dati escano di casa.

Android Device Owner, Go, PostgreSQL

helios57/familyguard

Open source

Strumenti nati da progetti reali e rimasti pubblici.

mtrail/adjudicatoradjudicator.ch

Una piattaforma di gara per agenti che giocano a scacchi. Regole FIDE, controllo del tempo, punteggio Elo e un cruscotto che segue le partite in diretta — pensata per programmi e non per persone, quindi prima l'interfaccia.

Go, gRPC, gRPC-Web, Angular, MIT

helios57/protogen

Un plugin Maven che trasforma i file .proto in record Java che girano con il solo JDK: niente libreria protobuf, niente Netty, niente protoc nella build. I byte restano compatibili con protoc, verificati da una suite differenziale.

Java 17, Maven Central, MIT

helios57/NgGoRPC

gRPC su una sola connessione WebSocket, direttamente tra Angular e Go. Nessun proxy Envoy in mezzo, più chiamate in parallelo sulla stessa connessione.

TypeScript, Go, WebSocket, MIT

helios57/palworld

Un pianificatore di allevamento per Palworld. Il salvataggio viene letto nel browser stesso e lo strumento calcola il percorso più breve dalle creature possedute a quella desiderata. Nulla viene caricato, non c'è alcun server.

TypeScript, GitHub Pages, MIT

Contatto

Un vecchio sistema da sostituire, o qualcosa di nuovo da costruire? Scrivimi.

Sharpsoft