Per progetto in ambito finance Mentes Service è alla ricerca di una figura Java middle back end, con esperienza target: 3-5 anni
Lo sviluppatore opera nello sviluppo di microservizi backend, con propensione all’ottimizzazione delle risorse (memoria, CPU, startup time) e apertura verso l’integrazione con librerie native quando le esigenze di performance o interoperabilità lo richiedano. Lavora in autonomia su task assegnati, contribuisce alla progettazione di componenti e collabora attivamente in team agili.
Competenze Tecniche
Sviluppo di microservizi su JVM:
• Java 17+: Stream API, Optional, Lambda, Concurrency
• REST API: progettazione e documentazione tramite OpenAPI/Swagger
• JUnit 5, Mockito, Testcontainers: test unitari e di integrazione
Conoscenza di un framework moderno per sviluppo backend Java (es. Micronaut, Spring Boot, Quarkus). Lo stack sarà basato su Micronaut, ma non è vincolante.
Database Relazionali:
• PostgreSQL o MySQL: modellazione dati, query SQL, indicizzazione (must have)
• JPA / Hibernate: mapping ORM, gestione lazy/eager loading, prevenzione di anti-pattern come N+1 (must have)
• Migration: Flyway o Liquibase (gradito)
Autenticazione e Autorizzazione:
È richiesta una buona comprensione dei meccanismi di autenticazione e autorizzazione moderni, in particolare di OAuth2/openID Connect nei suoi flussi principali. Lo sviluppatore deve saper lavorare con JWT comprendendone struttura, validazione della firma, gestione di scadenza e refresh token, ed essere in grado di proteggere endpoint REST tramite token, gestendo scope e ruoli. È apprezzata l’esperienza di integrazione con provider di identità come Keycloak o servizi analoghi.
Ottimizzazione:
È importante che lo sviluppatore abbia una sensibilità verso l’efficienza del codice e l’utilizzo delle risorse, con attenzione a memoria, CPU e tempi di avvio. Non sono richieste competenze approfondite di tuning JVM, ma la capacità di scrivere e valutare codice consapevole, di realizzare immagini container leggere e di valutare l’impatto delle proprie scelte sul footprint complessivo del servizio.
Containerization:
La conoscenza di Docker per build di immagini, multi-stage build, immagini ottimizzate è importante.
È inoltre apprezzata, ma non vincolante, una conoscenza di base di Kubernetes (deployment, services, configmaps, secrets, probes) e degli strumenti di packaging come Helm, oltre alla familiarità con i principali pattern di resilienza (retry, timeout, circuit breaker).
Inizio attività: il prima possibile. Offerto contratto in PI o assunzione.