Sei uno sviluppatore con almeno 3anni di esperienza nello sviluppo di soluzioni tecnologicamente complesse basate su Java e hai maturato la tua esperienza in realtà strutturate.
Hai una profonda conoscenza di architetture web, tecnologie di database, ambienti cloud, container, microservizi, e metodologie agili e inoltre hai familiarità con le pratiche di continuous integration and continuous delivery.
Sei principalmente uno sviluppatore di back-end, non pensi mai che ciò che sviluppi sia fine a se stesso perchè sei consapevole che è parte di qualcosa di più complesso.
Sei in grado di apprezzare le sottili differenze tra le diverse scelte tecnologiche ma alla fine sei un pragmatico. Il tuo codice è, in primo luogo, leggibile.
Pensi in maniera critica, non hai paura di essere smentito e consideri il confronto fondamentale per crescere. Se sei in difficoltà sei in grado di fare un passo indietro e analizzare il problema da un altro punto di vista, anche con l’aiuto dei tuoi colleghi se necessario.
Sai che ogni errore rappresenta un’opportunità per crescere. Sai insegnare ai più junior senza supponenza o prepotenza.
Responsabilità principali
Dovrai conoscere nel dettaglio l’architettura delle applicazioni che sviluppiamo, identificare eventuali problemi di scalabilità, integrità o manutenibilità e proporre le opportune azioni correttive
Dovrai produrre codice di qualità con il giusto grado di copertura. Rivedere il codice in modo costruttivo, condividere frequentemente la tua esperienza di programmazione e le tue best-practice.
Sarai un mentore dei colleghi più giovani, dovrai contribuire a una discussione razionale, informata e civile quando sorgono controversie tecniche.
Condividere in modo trasparente e continuo le tue conoscenze con i tuoi colleghi e con l’azienda.
Dovrai sviluppare lo strato di back-end di applicazioni web, inclusi modelli di database e API, garantendo sicurezza, protezione e integrità dei dati
Dovrai mantenere l’integrità e l’organizzazione del codice e fornire un’adeguata copertura del test
Parteciperai ad attività di progettazione di architetture e di soluzioni web complesse e ad alte prestazioni
Sarai chiamato a presentare e difendere scelte architetturali, progettuali e tecniche
Requisiti generali
Esperienza nello sviluppo di applicazioni web enterprise, mission-critical ed altamente scalabili
Esperienza nella realizzazione di progetti complessi nel rispetto delle esigenze dei clienti e di scadenze ben definite
Capacità di dare priorità ai compiti e rispettare le scadenze
Capacità di supportare e far crescere i colleghi.
Desiderio di apprendere nuove tecnologie e processi.
Spiccate capacità di analisi e problem solving
Laurea in informatica, ingegneria o materie scientifiche rappresentano un requisito preferenziale
Requisiti tecnici obbligatori
Ottima conoscenza dei principali paradigmi della programmazione e capacità di applicarli per la risoluzione di qualsiasi problema.
Conoscenza avanzata di JAVA e del framework Spring
Ottima capacità di sviluppo API REST e conoscenza dei relativi tools
Conoscenza delle piattaforme di persistenza dei dati e loro applicazione.
Conoscenza profonda di container e architetture a microservizi ed esperienza con Docker e Kubernetes
Ottima conoscenza di sistemi distribuiti di controllo di versione (Git and Gitlab) e di Maven
Esperienza nelle pratiche di continuous integration and delivery (CI/CD)
Ottima conoscenza di database relazionali e sull’utilizzo del linguaggio SQL
Requisiti tecnici facoltativi
Conoscenza del framework Angular o React
Esperienza con il TDD
Familiarità con i container Docker
Conoscenza di sistemi di Message Broker
Conoscenza di JPA per la gestione della persistenza
Esperienza con il lavoro remoto
Familiarità con metodologie di sviluppo Agili
