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.