Posizione
Sviluppatore/Software Engineer C++ Cross-Platform (Middle Level)
Chi stiamo cercando
Stiamo cercando uno Sviluppatore Software C++ con almeno 3 anni di esperienza professionale da inserire nel nostro team di sviluppo.
La risorsa deve avere comprovata esperienza e forte orientamento alla qualità del codice, per lavorare su applicazioni e componenti software in ambiente embedded, desktop e mobile. Il/la candidato/a sarà coinvolto/a nello sviluppo di moduli software mission-critical complessi, basati su C++, Qt e Android, con particolare attenzione alla programmazione multithreading.
La figura ricercata deve mostrare una buona autonomia tecnica, capacità di analisi funzionale e padronanza delle logiche di integrazione tra componenti distribuiti.
Requisiti tecnici
Il/la candidato/a ideale possiede:
- Solida preparazione accademica. Preferibilmente una laurea in Ingegneria Informatica, Informatica o equivalenti.
- 3–5 anni di esperienza professionale nello sviluppo software, maturati in contesti strutturati e orientati alla produzione di soluzioni complesse, robuste e manutenibili.
- Ottima conoscenza del linguaggio C++ (standard C++11 o successivi), incluse:
- o gestione avanzata di memoria (RAII, smart pointers),o STL e container moderni,o gestione delle eccezioni,o compilazione cross-platform.
- Esperienza comprovata nello sviluppo con framework Qt, con particolare familiarità con:
o Qt Widgetso QML / Qt Quick per interfacce moderne reattive,o gestione di signal/slot, threading Qt, networking e moduli multimediali.
- Esperienza nello sviluppo software per Android, incluse:
o compilazione cross-compile (NDK),o utilizzo di toolchain mobile,o gestione delle risorse e ottimizzazione delle performance su device mobili.o utilizzo avanzato della shell,o gestione dei permessi e del filesystem,o compilazione tramite toolchain GCC/Clang,o debugging tramite strumenti ad-hoc (es.: gdb, valgrind, strace)o gestione dei processi e logging a livello OS.o gestione delle concurrency primitives (mutex, semaphore, condition variable),o design thread-safe di componenti complessi,o debugging di race condition e deadlock.o gestione risorse limitate,o interfacciamento con componenti hardware,o timing, real-time constraints,o cross-compilazione e deployment su target dedicati.o Git (branching strategy, merge, pull request),o SVN per la gestione di repository legacy,o utilizzo di workflow collaborativi e best-practice di versioning.Requisiti preferenziali (nice to have)
- Ottima conoscenza dell’ambiente Linux, in particolare:
- Competenza nell’uso di almeno un linguaggio di scripting (bash, shell o equivalenti) per automatizzare attività di build, test, manutenzione ambienti o deployment.
- Esperienza nella programmazione multithreading, includendo:
- Esperienza nello sviluppo su sistemi embedded, con competenze su:
- Familiarità con strumenti di software configuration management, come:
- Conoscenza del linguaggio Python, utile per attività di scripting avanzato, automazione di processi, generazione di tool ausiliari e sviluppo di piccoli moduli di supporto all’infrastruttura software.
- Esperienza nell’esecuzione di unit test, con particolare familiarità con framework di testing per C++ quali:
- o Google Test (gTest)o Qt Test inclusi aspetti come mocking, test parametrizzati, coverage e integrazione dei test nelle pipeline di build.
- Familiarità con metodologie Agile (Scrum o Kanban), incluse:
o gestione del flusso di lavoro tramite Jira,o partecipazione attiva a sprinto code reviewo capacità di collaborare in cicli iterativi orientati alla delivery continua.
- Conoscenza o utilizzo di strumenti basati su Intelligenza Artificiale
- Conoscenza degli strumenti di build e configurazione, quali:
o CMake, per la gestione cross-platform di progetti complessi, modularizzazione e configurazione avanzata,o qmake, per progetti Qt legacy o specifici del framework.Responsabilità principali
La risorsa sarà coinvolta nelle seguenti attività tecniche:
- Sviluppo e manutenzione di applicazioni software in C++, includendo:
- o progettazione e implementazione di componenti core,o ottimizzazione delle performance e gestione avanzata della memoria,o integrazione con librerie di sistema o di terze parti.
- Sviluppo di interfacce e applicazioni cross-platform basate su Qt, comprendendo:
o utilizzo di Qt Widgetso sviluppo di interfacce reattive tramite QML / Qt Quick,o integrazione dei componenti UI con logiche applicative complesse.
- Implementazione di componenti software per Android
- Sviluppo e manutenzione di script e strumenti di automazione, includendo:
o realizzazione di script bash/shell per automatizzare build, deployment e toolchain,o creazione di utility interne per migliorare il flusso di lavoro del team.o analisi dei requisiti funzionali e non funzionali,o redazione della documentazione tecnica (diagrammi architetturali, API contract, design document),o partecipazione a revisioni architetturali e design review.o partecipazione alle attività di code review e pair programming,o allineamento costante con QA per definizione dei test e validazione delle funzionalità,o interazione con l’area architettura per garantire coerenza con gli standard progettuali.Profilo ideale
- Contributo attivo alla definizione delle specifiche tecniche, con:
- Collaborazione strutturata con i team di sviluppo, QA e architettura, comprendendo:
Il/la candidato/a ideale, oltre alle competenze tecniche richieste, dimostra una solida capacità di operare in contesti strutturati e orientati alla qualità del software. È in grado di analizzare problemi complessi, proporre soluzioni tecniche efficaci e contribuire attivamente al miglioramento continuo dell’architettura applicativa. Mostra un’elevata attitudine al problem-solving, cura per i dettagli e capacità di lavorare in modo autonomo nella gestione delle proprie attività, garantendo affidabilità, precisione e rispetto delle tempistiche.
La risorsa possiede inoltre ottime capacità comunicative, fondamentali per collaborare con analisti, sviluppatori e stakeholder di progetto; sa documentare il proprio lavoro in modo chiaro e strutturato e affronta con flessibilità l’evoluzione dei requisiti funzionali. Ha un mindset orientato alla collaborazione, al confronto costruttivo e alla condivisione delle conoscenze, contribuendo alla crescita complessiva del team.
Retribuzione: €35.000,00 - €45.000,00 all'anno
Benefit:
- Assicurazione sanitaria
- Buoni pasto
- Cellulare aziendale
- Computer aziendale
- Lavoro da casa
- Orario flessibile
- Parcheggio libero
- Supporto allo sviluppo professionale
Sede di lavoro: Ibrido/da remoto (50058 Signa)