01 set
|
B-Press Srl Msoft.it
|
Novara
01 set
B-Press Srl Msoft.it
Novara
Senior Backend Engineer – PHP/Laravel, Cloud & Distributed Systems
Cerchiamo un Senior Backend Engineer con almeno 6 anni di esperienza professionale significativa nello sviluppo di applicazioni backend complesse, preferibilmente in ambienti cloud e distribuiti.
La figura entrerà a far parte di un team tecnico piccolo, nel quale sono importanti autonomia, capacità di analisi e ownership delle soluzioni sviluppate.
Non cerchiamo un profilo focalizzato prevalentemente sullo sviluppo di siti web tradizionali, ma una persona che abbia esperienza concreta nella progettazione, sviluppo, evoluzione e gestione di applicazioni backend ad alto carico, API e servizi distribuiti, con particolare attenzione a scalabilità, affidabilità e continuità del servizio.
Competenze principali richieste
Backend development
- Ottima esperienza con PHP contemporaneo e sviluppo object-oriented.
- Esperienza significativa con Laravel.
- Progettazione e sviluppo di REST API e servizi backend.
- Ottima conoscenza di JavaScript.
- Esperienza nella progettazione di applicazioni modulari, scalabili e manutenibili.
- Conoscenza di design pattern, principi SOLID e buone pratiche di software engineering.
- Esperienza con testing automatico, unit/integration testing e code review.
Database e gestione dei dati
- Ottima conoscenza di MySQL, sia dal punto di vista dello sviluppo sia dell'ottimizzazione:
- progettazione dello schema;
- indici e query optimization;
- transazioni e concorrenza;
- gestione di elevati volumi di dati;
- replica, alta disponibilità e problematiche di consistenza.
- Esperienza con database distribuiti, replicati o geograficamente separati.
- Ottima conoscenza di Redis, utilizzato ad esempio per:
- caching;
- dati temporanei/volatili;
- sessioni;
- locking;
- rate limiting;
- coordinamento tra servizi.
- È particolarmente apprezzata esperienza con Redis Cluster/Sentinel o soluzioni analoghe di alta disponibilità.
Sistemi asincroni e distribuiti
- Esperienza concreta con sistemi di messaging e code, preferibilmente RabbitMQ.
- Conoscenza dei principali pattern di elaborazione asincrona:
- producer/consumer;
- retry;
- acknowledgement;
- dead-letter queue;
- idempotenza;
- gestione degli errori e dei messaggi duplicati.
- Esperienza nello sviluppo di applicazioni distribuite su più nodi,
anche in differenti datacenter o regioni geografiche.
- Comprensione delle problematiche tipiche dei sistemi distribuiti: latenza, fault tolerance, consistenza, concorrenza, failover, retry e gestione delle network partition.
- Esperienza nella progettazione di servizi stateless e scalabili orizzontalmente.
Cloud, deployment e operations
È richiesta familiarità concreta con il ciclo completo di delivery di un'applicazione, non limitata alla sola scrittura del codice.
In particolare:
- Git e preferibilmente GitLab;
- branching strategy, merge request e code review;
- pipeline CI/CD;
- procedure automatizzate di build, test e deploy;
- gestione di ambienti development/staging/production;
- buona conoscenza di ambienti Linux.
Non è necessario che la persona sia un DevOps Engineer puro, ma deve comprendere come il proprio software viene costruito, distribuito, monitorato e gestito in produzione. Performance, affidabilità e osservabilità
Cerchiamo esperienza reale con applicazioni in produzione sottoposte a carichi significativi.
Sono quindi importanti competenze relative a:
- analisi e ottimizzazione delle performance;
- profiling di applicazioni e database;
- caching;
- gestione della concorrenza;
- scalabilità orizzontale;
- alta disponibilità;
- graceful degradation e fault tolerance;
- logging strutturato;
- metriche, monitoring e alerting;
- troubleshooting di problemi di produzione.
Gradita esperienza con strumenti quali Prometheus, Grafana, ELK/OpenSearch o equivalenti.
Sicurezza
È richiesta una buona conoscenza delle principali problematiche di sicurezza delle applicazioni backend e delle API, tra cui:
- autenticazione e autorizzazione;
- OAuth2/OIDC/JWT o tecnologie equivalenti;
- gestione sicura delle credenziali e dei secrets;
- validazione degli input;
- rate limiting;
- protezione delle API;
- principi OWASP.
Competenze preferenziali
Costituiscono un plus:
- buona conoscenza di Python, soprattutto per servizi backend, automazioni, elaborazione dati o tooling;
- conoscenza di TypeScript;
- esperienza con architetture event-driven;
- esperienza con microservizi o con sistemi modulari distribuiti;
- conoscenza di altri sistemi di messaging/streaming quali Kafka, AWS SQS/SNS o equivalenti;
- conoscenza di altri database SQL/NoSQL;
- esperienza con sistemi multi-region e strategie di disaster recovery;
- familiarità con API versioning, OpenAPI/Swagger e contract testing;
- esperienza nella modernizzazione o evoluzione di sistemi legacy.
Frontend
Il ruolo è prevalentemente backend.
È comunque gradita una conoscenza sufficiente di HTML e CSS, oltre a JavaScript, che permetta alla persona di intervenire autonomamente sul layout e su semplici componenti delle interfacce quando necessario.
Non è richiesta una specializzazione da Frontend Developer.
Caratteristiche personali
Essendo inserita in un team di dimensioni contenute, cerchiamo una persona:
- autonoma nell'affrontare problemi tecnici complessi;
- pragmatica e orientata alla soluzione;
- capace di comprendere un sistema esistente prima di modificarlo;
- abituata ad assumersi responsabilità sul software anche dopo il deploy;
- capace di effettuare troubleshooting in produzione;
- attenta a qualità, leggibilità e manutenibilità del codice;
- disponibile al confronto tecnico e alla code review;
- capace di documentare adeguatamente architetture e decisioni tecniche;
- interessata a proporre miglioramenti tecnologici senza introdurre complessità non necessaria.
Seniority
Almeno 6 anni di esperienza professionale, di cui una parte significativa maturata nello sviluppo di backend/API e applicazioni distribuite o ad alto carico.
La seniority dovrà emergere soprattutto dalla capacità di:
- prendere decisioni architetturali motivate;
- valutare trade-off;
- diagnosticare problemi complessi;
- lavorare autonomamente su sistemi esistenti;
- gestire l'intero ciclo di vita di una funzionalità, dalla progettazione al funzionamento in produzione.
- L'esperienza effettiva su sistemi complessi e in produzione è considerata più importante del semplice numero di tecnologie presenti nel CV.
📌 Senior Backend Engineer (Novara)
🏢 B-Press Srl Msoft.it
📍 Novara