Senior Software Quality

1 giorno fa

milano, lombardia, Italia agap2 Italia Tempo pieno

Parte del Gruppo MoOngy Group, AGAP2 Italia è un leader europeo nei servizi di consulenza ingegneristica e IT, con una presenza consolidata in 14 paesi.

Dal 2018, AGAP2 Italia supporta aziende partner operanti nei settori aerospace, automotive, energy e industrial, contribuendo allo sviluppo e alla validazione di soluzioni tecnologiche innovative.

Posizione aperta: Senior Software Quality & Performance Engineer Sede di lavoro: Milano Bicocca (MI)

Il Senior Software Quality & Performance Engineer è responsabile della qualità tecnica delle applicazioni software durante l'intero ciclo di sviluppo. Collabora con i team di sviluppo per garantire il rispetto degli standard di qualità del codice, sicurezza applicativa, performance e manutenibilità, attraverso attività di code review, analisi statica del codice, verifica delle dipendenze software, ottimizzazione delle performance applicative e del database. È il punto di riferimento tecnico per l'individuazione e la risoluzione dei problemi di qualità del software e contribuisce alla definizione delle linee guida di sviluppo, delle best practice e dei processi di Continuous Inspection.

  • Laurea Magistrale in Informatica o Ingegneria Informatica.
  • Almeno 8 anni di esperienza nello sviluppo di applicazioni enterprise Java.
  • Esperienza nella revisione del codice e nel miglioramento della qualità del software.
  • Esperienza con metodologie Agile (Scrum/Kanban) e Waterfall.
  • Buona conoscenza della lingua inglese scritta e parlata.
  • Buona conoscenza del pacchetto Microsoft Office.
Linguaggi e framework:
  • Ottima conoscenza di Java 21 e dell'ecosistema Java.
  • Ottima conoscenza di Spring Boot e Spring Framework.
  • Ottima conoscenza di JPA/Hibernate e JDBC.
  • Solida conoscenza della programmazione orientata agli oggetti (OOP).
  • Esperienza nello sviluppo di API REST.
  • Esperienza nella definizione e applicazione di standard di codifica.
  • Capacità di effettuare code review strutturate.
  • Esperienza nell'identificazione di code smell, anti-pattern e debito tecnico.
  • Capacità di proporre refactoring finalizzati a migliorare leggibilità, manutenibilità e riusabilità del codice.
  • Ottima conoscenza dei principi SOLID, Clean Code e Design Pattern.
  • Esperienza nella definizione di linee guida di sviluppo.
  • Ottima conoscenza dei principi di Secure Coding.
  • Conoscenza delle vulnerabilità OWASP Top 10.
  • Capacità di individuare vulnerabilità applicative nel codice.
  • Esperienza nella definizione delle best practice di sviluppo sicuro.
  • Esperienza nell'utilizzo di strumenti di Static Application Security Testing.
  • Capacità di analizzare, classificare e gestire le vulnerabilità rilevate.
  • Esperienza nella risoluzione delle segnalazioni prodotte dagli strumenti SAST.
  • Capacità di distinguere vulnerabilità reali da falsi positivi.
  • Esperienza nell'integrazione degli strumenti SAST nelle pipeline CI/CD.
  • Esperienza nell'utilizzo di strumenti Software Composition Analysis.
  • Analisi delle dipendenze software.
  • Individuazione di librerie obsolete o vulnerabili.
  • Gestione degli aggiornamenti delle dipendenze.
  • Valutazione dell'impatto degli aggiornamenti sulle applicazioni.
  • Gestione delle vulnerabilità CVE.
  • Esperienza nell'analisi delle performance applicative.
  • Capacità di individuare colli di bottiglia.
  • Ottimizzazione del codice Java.
  • Esperienza nell'utilizzo di profiler applicativi.
  • Ottima conoscenza di SQL.
  • Esperienza nell'ottimizzazione delle query.
  • Ottimizzazione dell'accesso ai dati tramite JPA/Hibernate.
  • Esperienza con Microsoft SQL Server.
  • Ottima conoscenza di Git.
  • Ottima conoscenza di Maven.
  • Esperienza nell'utilizzo di SonarQube.
  • Esperienza con strumenti SAST (es. SonarQube).
  • Esperienza con strumenti SCA (es. OWASP Dependency Check).
  • Esperienza con pipeline CI/CD.
Responsabilità:
  • Eseguire code review sui progetti software.
  • Garantire il rispetto degli standard di sviluppo.
  • Analizzare le vulnerabilità individuate dagli strumenti SAST.
  • Coordinare la risoluzione delle vulnerabilità di sicurezza.
  • Gestire il monitoraggio delle dipendenze software tramite strumenti SCA.
  • Analizzare e ridurre il debito tecnico.
  • Ottimizzare le performance applicative.
  • Collaborare con gli sviluppatori per migliorare la qualità del codice.
  • Supportare il miglioramento continuo del processo di sviluppo.
  • Collaborare con gli Architetti Software nella definizione delle best practice tecnologiche.
  • Elevata attenzione alla qualità del software.
  • Approccio analitico e