C++ Software Engineer/Developer (Middle Level)
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 Widgets
o 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.
• Ottima conoscenza dell’ambiente Linux, in particolare:
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.
• 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:
o gestione delle concurrency primitives (mutex, semaphore, condition variable),
o design thread-safe di componenti complessi,
o debugging di race condition e deadlock.
• Esperienza nello sviluppo su sistemi embedded, con competenze su:
o gestione risorse limitate,
o interfacciamento con componenti hardware,
o timing, real-time constraints,
o cross-compilazione e deployment su target dedicati.
• Familiarità con strumenti di software configuration management, come:
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)
• 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 sprint
o code review
o 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 Widgets
o 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.
• Contributo attivo alla definizione delle specifiche tecniche, con:
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.
• Collaborazione strutturata con i team di sviluppo, QA e architettura, comprendendo:
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
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.
Candidatura
CandidatiAEP Ticketing solutions S.R.L.
Cap.Soc. € 118.000,00 int. vers.
Reg.Trib. Firenze 38914
C.C.I.A.A. Firenze 367217
P.IVA/C.F. 03504280482
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.