Firmware Engineer
Listed on 2026-07-01
-
Software Development
Embedded Systems/ Firmware/ IoT, Embedded Software Engineer, Software Engineer, C++ Developer
Firmware Engineer
The expected compensation range for this U.S. based position is $68,000 - $102,000 per year, which includes base pay and short-term incentive. The compensation range for this full-time position applies to candidates located within the United States. Our salary ranges are determined by reviewing roles of similar responsibility and level. Within the salary range, individual pay is determined by several factors including performance, knowledge, job-related skills, experience, and relevant education or training.
Schneider Electric also offers a comprehensive benefits package to support our employees.
We are seeking an experienced Firmware Engineer with strong expertise in RTOS based embedded systems. The ideal candidate will design, develop, and maintain robust firmware for embedded platforms, with a focus on performance, reliability, and scalability across multiple products.
Key Responsibilities- Design, develop, and debug RTOS based embedded system firmware
- Implement multitasking systems utilizing: tasks, semaphores, mutexes, queues, event flags, timers and interrupts
- Develop low-level drivers for peripherals (UART, SPI, I2C, GPIO, Ethernet, etc.)
- Optimize firmware for real-time performance, memory usage, and stability
- Integrate firmware with hardware and collaborate closely with hardware engineering teams
- Debug complex system issues using JTAG, logic analyzers, oscilloscopes and networking tools
- Support bring-up of new hardware platforms
- Write and maintain technical documentation (design specs, APIs, release notes)
- Participate in code reviews and contribute to firmware architecture decisions
- Support manufacturing, test, and field issues as needed
- Bachelor's degree in Electrical Engineering, Computer Engineering, Computer Science, or equivalent experience
- 5+ years of embedded firmware development experience
- Expert-level C programming for embedded systems
- Strong understanding of: RTOS concepts (scheduling, priorities, context switching) Interrupt handling and real-time constraints Memory management in constrained systems
- Experience working with ARM-based microcontrollers (e.g., Cortex‑A)
- Familiarity with embedded tool chains and debuggers (Segger, IAR, Keil, GCC, etc.)
- Experience reading schematics and datasheets
- Strong debugging and problem-solving skills
- Experience with bootloaders and firmware upgrade mechanisms
- Experience in networked embedded systems and communication protocols (TLS, HTTP, TCP/IP, Ethernet, CAN, USB)
- Experience with unit testing and CI for embedded systems
- Familiarity with µC/OS-II and other RTOSes (FreeRTOS, ThreadX, Zephyr)
- Strong communication and documentation skills
- Ability to work independently and within cross-functional teams
- Comfortable working on complex, long-lifecycle products
- Detail-oriented with a focus on product quality and reliability
You must submit an online application to be considered for the position. The Company will accept applications on an ongoing basis until the position is filled.
(If this job is in fact in your jurisdiction, then you may be using a Proxy or VPN to access this site, and to progress further, you should change your connectivity to another mobile device or PC).