Firmware Developer

Bologna / Milano /
Engineering & Technology – 5G Hardware Engineering /
JMA Wireless is looking for a Mid to Senior Level Firmware Engineer to join our team in Bologna or Milano, Italy.  
The engineer will work on embedded software and firmware for 4G and 5G base stations and radios. Working with a dynamic team locally and across different locations, the engineer will define requirements & test plans, create implementation and execute test plans across multiple product features requiring firmware support. Success depends on collaboration in planning, execution and debug with hardware design, RTL design and verification, and system level testing.  


    • Design, develop, implement, debug and maintain embedded real time applications 
    • Specify, design, and implement tests for functionality and behaviors of all embedded subsystems 
    • Configuration management, build, deployment, hardware interfaces, device driver, device trees 
    • Responsible for design and implementation of new device features on multiple platforms 
    • Responsible for the maintenance of current software including: feature enhancements, performance increases, troubleshooting, testing, and bug fixing 
    • Work closely with other software and hardware engineers to solve design issues 
    • Work with HW engineers for efficient interfaces ensuring system functionality 
    • Assist in hardware activities; board bring-up and debug, validation 
    • Participate in HW design reviews ensuring proper connectivity for system level features 
    • Deliver high-quality tests for the individual modules and the overall system 
    • Providing technical documentation (test procedures, design specifications, etc.) 
    • Be involved in the full life-cycle of test development from concept through integration and test deployment 
    • Interface with mechanical, software and digital design teams 
    • Special projects as assigned 


    • 3+ years of firmware development experience 
    • BS/MS in Electrical Engineering and/or Computer Engineering, Computer Science or similar 
    • Must have strong coding skills. Experience with C, C++ is required and Python is highly preferred.  
    • Experience with Linux bring-up on embedded systems preferred. 
    • Ability to independently read and understand electrical schematics; hardware bring-up 
    • Experience debugging embedded systems where step debugging may not be available 
    • Hardware and software abstraction 
    • Embedded Linux device driver development, optimizations, bug fixing, add new functionality 
    • Experience with: Linux OS internals, Linux kernel software, Embedded Linux U-Boot/kernel development and customization, Linux Device Tree development, File system operations 

Preferred Qualifications

    • Knowledge of or experience in Agile software development methodologies
    • Operating System and device driver knowledge and experience
    • Wireless communication base knowledge: Digital Signal Processing, Antennas, RF
    • Multi-threaded and multi-process architectures 
    • Experience with communication networks and protocols (e.g. USB, Ethernet, TCP/IP, etc.)
    • TCP/UDP client and server implementations 
    • Resource constrained processors (e.g. single core ARM) 
    • Experience with performance optimization 
    • Experience with Real Time Operating Systems (RTOS) 
    • #LI-AC1