Role OverviewAs a Bare Metal Embedded Firmware Engineer, you will define and develop embedded software in accordance with software design and test requirement specifications and conduct verification testing during development. You will play a key role in developing innovative, market-leading electro-mechanical products as part of a cross-functional project team.
What You Will Do
Optimize firmware performance, memory utilization, and computational efficiency within resource-constrained embedded systems. Code development for configuring/interfacing with real time clocks, Ethernet PHY chips, external memory, and specialty sensors.
Why It Might Be a Fit
You will be part of the Manufacturing Engineering team, working closely with Automation, Manufacturing Operations, and Product Engineering teams. You will leverage AI-enabled engineering tools and technologies to enhance hardware design, firmware development, testing, troubleshooting, documentation, and data analysis activities.
Requirements
- BS in Electrical Engineering, Software Engineering or closely related field
- 5+ years of embedded firmware experience
- 5+ years of C-development
- hands-on experience developing firmware for microcontrollers such as Microchip dsPIC, STM32, NXP, Renesas, TI, ARM Cortex-M platforms
- experience with bare metal
- experience with SPI, I2C, UART, PWM, ADC, Timers, and Interrupts
- experience with CAN, CAN-FD, Ethernet, Modbus, RS-485
- experience developing embedded software using C/C++ for microcontrollers such as Microchip PIC, STM32, NXP, Renesas, TI, or similar platforms
- experience developing bare-metal firmware for time critical processing systems such as A/D sampling, motor control and communications
- familiarity with state machine architectures, interrupt service routines, and Microchip Ethernet stack
- familiarity with industrial and embedded communication protocols including CAN, CAN-FD, Modbus, RS-485, USB, Ethernet, MQTT, BLE, and Wi-Fi
- experience with microcontroller digital/analog peripheral hardware interface (SPI, I2C, UART, Digital I/O, PWM, timers)
- experience with automated builds, unit testing, continuous integration, and software release management
- experience using a source control system, code reviews, branching strategies, and collaborative software development workflows
- experience developing automated test and validation tools using LabVIEW, Python, or equivalent environments
- experience with PC-based engineering tools and scripting environments such as Matlab, Python, C#, .NET, or equivalent
- proficiency with schematic capture, component footprint modeling and PCB design tools
- ability to effectively communicate highly technical concepts to a non-technical audience
- experience building desktop applications (Windows, Linux, etc...) a plus
- understanding of secure bootloaders and over-the-air (OTA) firmware update mechanisms is desirable
- knowledge implementing secure boot, secure firmware updates, authentication, encryption, secure key storage, and cybersecurity best practices for connected embedded devices is desirable
- familiarity with IEC 62443, NIST Cybersecurity Framework, or similar cybersecurity standards is desirable
- familiarity with Locomotive electrical systems is desirable
Benefits
- health
- welfare
- retirement
- annual bonus
]]>