La maggior parte del software Java enterprise non nasce da zero. È una piattaforma cresciuta negli anni, che regge il business e deve continuare a cambiare. Sviluppiamo nuove applicazioni Java e Spring e siamo altrettanto a nostro agio nell'estendere sistemi grandi, datati e critici.

Sviluppo backend e API

Progettiamo e realizziamo servizi Spring Boot e le API che li circondano: interfacce REST ed event-driven, validazione, gestione degli errori, versionamento e documentazione su cui altri team possono contare. Domain-driven design dove il dominio è complesso, codice semplice dove non lo è. Spesso la risposta giusta è un monolite modulare; i microservizi quando rilascio e scalabilità indipendenti giustificano il costo operativo.

Spring, Jakarta EE, Quarkus, e Java o Kotlin

Lavoriamo su tutta la JVM enterprise, non su un solo framework. Spring e Spring Boot per la maggior parte dei nuovi servizi e per i grandi patrimoni Spring che molte aziende gestiscono. Jakarta EE (CDI, JAX-RS, JPA, JMS, Bean Validation) su runtime moderni come WildFly, Payara o Open Liberty, per le organizzazioni che hanno scelto la specifica come standard. Quarkus dove contano avvio rapido, poca memoria e deploy in container o come native image. E Kotlin accanto a Java, per i team che vogliono un linguaggio più conciso sulla stessa JVM, con le stesse librerie e gli stessi strumenti.

Vi aiutiamo a scegliere in base al vostro sistema e al vostro team, e siamo altrettanto a nostro agio nel mantenere ciò che avete già in produzione.

Accesso ai dati con Hibernate e SQL

Molti problemi di performance in Java sono problemi di accesso ai dati: query N+1, grafi di fetch troppo ampi, indici mancanti, transazioni lunghe, contesa sui lock. Lavoriamo su entrambi i livelli, il mapping JPA e l'SQL che produce, e leggiamo i piani di esecuzione. Il risultato è codice di persistenza corretto in concorrenza e prevedibile sotto carico.

Performance engineering

Partiamo dalle misure: Java Flight Recorder, async-profiler, log del GC, statistiche del database e metriche di produzione. Poi cambiamo ciò che i dati indicano e misuriamo di nuovo. I risultati tipici sono latenza più bassa, throughput più alto e costi di infrastruttura minori, ma riportiamo solo numeri misurati sul vostro sistema.

Qualità del codice e test

Rendiamo il codice più sicuro da modificare: test di caratterizzazione attorno al comportamento esistente, Testcontainers per test di integrazione realistici, regole di architettura che impediscono alla struttura di degradare, refactoring a piccoli passi che lasciano sempre la build verde. Il lavoro sulla qualità si concentra sulle parti del sistema che cambiano di più, dove si ripaga prima.

Sviluppo di prodotto a lungo termine

Per aziende di prodotto e piattaforme interne possiamo prendere in carico un componente o un filone di sviluppo per mesi o anni: pianificazione con i vostri product owner, consegne incrementali, documentazione e conoscenza che restano nel vostro team.