Bare Metal Embedded Firmware Engineer (C, Microcontrollers)

GE Transportation
Salem, OR
Job Description
Role Overview

As 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
]]>