Per azienda specializzata nello sviluppo e fornitura di soluzioni tecnologiche ricerchiamo un/una Software Engineer C++ da inserire nel team di sviluppo. Possibilità di lavorare sia presso la sede di Firenze sia presso la sede di Genova. 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 risorsa sarà coinvolto/a nello sviluppo di moduli software mission-critical complessi, basati su C++, Qt e Android, con particolare attenzione alla programmazione multithreading. La risorsa sarà coinvolta nelle seguenti attività tecniche: sviluppo e manutenzione di applicazioni software in C++, includendo: progettazione e implementazione di componenti core; ottimizzazione delle performance e gestione avanzata della memoria; integrazione con librerie di sistema o di terze parti. Sviluppo di interfacce e applicazioni cross-platform basate su Qt, comprendendo: utilizzo di Qt Widgets; sviluppo di interfacce reattive tramite QML / Qt Quick; integrazione dei componenti UI con logiche applicative complesse. Implementazione di componenti software per Android; Sviluppo e manutenzione di script e strumenti di automazione, includendo: realizzazione di script bash/shell per automatizzare build, deployment e toolchain, creazione di utility interne per migliorare il flusso di lavoro del team. Contributo attivo alla definizione delle specifiche tecniche, con: analisi dei requisiti funzionali e non funzionali; redazione della documentazione tecnica (diagrammi architetturali, API contract, design document); partecipazione a revisioni architetturali e design review. Collaborazione strutturata con i team di sviluppo, QA e architettura, comprendendo: partecipazione alle attività di code review e pair programming; allineamento costante con QA per definizione dei test e validazione delle funzionalità; interazione con l’area architettura per garantire coerenza con gli standard progettuali. Solida preparazione accademica: 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 gestione avanzata di memoria (RAII, smart pointers), STL e container moderni, gestione delle eccezioni, compilazione cross-platform. Esperienza comprovata nello sviluppo con framework Qt, con particolare familiarità con: Qt Widgets; QML / Qt Quick per interfacce moderne reattive; gestione di signal/slot, threading Qt, networking e moduli multimediali. Esperienza nello sviluppo software per Android ; 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: gestione delle concurrency primitives (mutex, semaphore, condition variable), design thread-safe di componenti complessi, debugging di race condition e deadlock. Esperienza nello sviluppo su sistemi embedded, con competenze su: gestione risorse limitate; interfacciamento con componenti hardware; timing, real-time constraints; cross-compilazione e deployment su target dedicati. Familiarità con strumenti di software configuration management : GIT (branching strategy, merge, pull request), SVN per la gestione di repository legacy, oppure utilizzo di workflow collaborativi e best-practice di versioning. Requisiti preferenziali (nice to have) 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: Google Test (gTest) 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: gestione del flusso di lavoro tramite Jira; partecipazione attiva a sprint; code review; 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 CMake, per la gestione cross-platform di progetti complessi, modularizzazione e configurazione avanzata. Oppure Qmake, per progetti Qt legacy o specifici del framework. 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. L’annuncio è rivolto ad ambo i sessi (D.lgs n. 198/2006) e nel rispetto di quanto disposto dall’art. 10 del D.Lgs n. 276/2003. I candidati sono invitati a leggere l’informativa privacy https://www.wexecutive.eu/privacy-policy ai sensi dell'art. 13 e art. 14 del Regolamento UE 2016/679 sulla protezione dei dati. Aut. Min. Prot. R.0000155 del 31/12/2021.