Sviluppatore back-end
KIRANET
- Aversa, Caserta
- Tempo indeterminato
- Full time
- Progettazione e sviluppo del back-end: Creare, sviluppare e ottimizzare applicazioni server-side utilizzando i principali linguaggi di programmazione, principalmente Java11. in un’architettura a microservizi. La tua responsabilità principale sarà garantire la massima efficienza e scalabilità dei sistemi.
- Gestione dei database: Progettare, implementare e ottimizzare database relazionali (MySQL, PostgreSQL) e non relazionali (MongoDB, Redis). Gestire la creazione, l’aggiornamento e la sicurezza dei dati.
- Integrazione e gestione delle API: Progettare, sviluppare e manutenere API RESTful per l’integrazione dei servizi con il front-end e con altri sistemi esterni. Garantire che le API siano ben documentate (tramite strumenti quali swagger-ui) e facili da manutenere.
- Ottimizzazione delle prestazioni: Ottimizzare il codice per garantire la massima velocità delle applicazioni e il minimo consumo di risorse. Utilizzare strumenti di profilazione per identificare e risolvere i colli di bottiglia.
- Sicurezza e protezione dei dati: Implementare e monitorare misure di sicurezza in ogni fase dello sviluppo (es. protezione contro attacchi come SQL injection, gestione sicura dei dati sensibili).
- Collaborazione con il team front-end: Lavorare a stretto contatto con i front-end developer per integrare il back-end con l’interfaccia utente in modo trasparente ed efficiente.
- Test e debugging: Scrivere e mantenere test automatizzati, sia unitari che di integrazione, per garantire la qualità del codice. Eseguire il debug dei sistemi e risolvere i problemi rapidamente.
- Supporto alla manutenzione e aggiornamento: Aggiornare e manutenere il codice esistente, aggiungere nuove funzionalità e risolvere eventuali problematiche software.
- Linguaggi di programmazione: Esperienza consolidata in Java11. Familiarità con framework specifici come Spring, SpringBoot, Hibernate, Liquibase.
- Database: Esperienza con database SQL (MySQL, PostgreSQL, etc.) e NoSQL (MongoDB, Redis). Capacità di progettare schemi complessi e di ottimizzare le query.
- API e microservizi: Esperienza nella progettazione e sviluppo di API RESTful o GraphQL, con una buona comprensione dei principi di architettura a microservizi.
- Versionamento e collaborazioni: Ottima conoscenza di Git e GitHub, esperienza nell’utilizzo di sistemi di versionamento del codice e gestione di flussi di lavoro (branching, pull request, merge).
- Sistemi di distribuzione e DevOps: Familiarità con piattaforme cloud come AWS, GCP o Azure, conoscenza di tecniche di deploy automatizzate tramite CI/CD (Jenkins, GitLab CI, CircleCI).
- Performance e ottimizzazione: Esperienza nell’identificare e risolvere problematiche di performance a livello server, database e rete.
- Sicurezza: Conoscenza delle migliori pratiche di sicurezza applicativa, tra cui la gestione sicura dei dati, protezione delle credenziali e delle sessioni, prevenzione delle vulnerabilità comuni.
- Testing: Conoscenza di metodologie di testing come TDD (Test-Driven Development) e BDD (Behavior-Driven Development), esperienza con framework di test come JUnit, PyTest, Mocha, ecc.
- Conoscenza di sistemi operativi: Esperienza con Linux/Unix e gestione della configurazione.
- Virtualizzazione: Esperienza con containerizzazione (Docker).
- Publish-subscribe protocols: Conoscenza di tecnologie di messaging (MQTT, RabbitMQ, Kafka).
- Problem-solving: Capacità di risolvere problemi complessi in modo creativo ed efficiente.
- Autonomia e proattività: Capacità di lavorare in modo indipendente, con un forte senso di responsabilità e attenzione ai dettagli.
- Collaborazione e comunicazione: Ottime capacità di lavorare in team, di comunicare in modo chiaro con i colleghi e con altri dipartimenti (es. product, design).
- Curiosità e aggiornamento: Passione per l’apprendimento continuo, con un interesse particolare per le nuove tecnologie e le tendenze del settore.
- Requisiti preferenziali
- Esperienza con strumenti di orchestrazione (Kubernetes).
- Familiarità con le metodologie Agile/Scrum e strumenti di gestione del progetto (Jira, Trello).
- Esperienza nell’utilizzo di framework di testing come Selenium o Cypress per test end-to-end.
- Conoscenza di strumenti di monitoraggio delle applicazioni (es. New Relic, Prometheus).