C++ Software Engineer/Developer (Middle Level)

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.

 

Contratto e retribuzione

  • Contratto: CCNL Metalmeccanica Industria
  • Retribuzione: €35.000,00 – €45.000,00 all’anno, in base all’esperienza.
  • Variabile: Bonus MBO legato agli indicatori di performance aziendali/di sede (CSI)

 

AEP si impegna a costruire un ambiente di lavoro inclusivo in cui le persone di ogni provenienza siano trattate in

modo equo e rispettoso. Accogliamo candidature da tutti i candidati qualificati, indipendentemente da genere,

età, etnia, disabilità, orientamento sessuale o qualsiasi altra caratteristica tutelata dalla normativa applicabile

(D.Lgs. 198/2006).

Saranno prese in considerazione esclusivamente le candidature corredate da autorizzazione al trattamento dei

dati personali ai sensi della normativa vigente.

Ai sensi della normativa vigente offerta di lavoro si intende estesa ad entrambi i sessi. (L 903/77)

Candidatura

Candidati