Software Engineer
GridBridge
- Raleigh, NC
- Permanent
- Full-time
- Contribute to the design, development, and maintenance of embedded software on Yocto-based Linux (iMX ARM platform).
- Design, development, and maintenance of bare metal embedded software on a STM32 microprocessor.
- Develop and support embedded C/C++ code for controller cards, including integration with peripherals (CAN, RS232, USB, SPI, I2C, A/D, D/A).
- Collaborate with hardware and DSP engineers throughout the product lifecycle.
- Implement and maintain coding standards, documentation, and version control practices.
- Design and integrate system-level software for control, UI, cloud connectivity, and communication protocols.
- Port and integrate protocol stacks (e.g., OpenDNP3) and interface with customer systems.
- Support system testing, manufacturing diagnostics, and deployment activities.
- Contribute to continuous improvement of development processes.
- 5+ years of experience in embedded software development.
- Proficiency in C/C++ for embedded systems.
- Experience with embedded Linux (Yocto preferred) and shell scripting (e.g., JavaScript, Python).
- Experience with Docker Containers is a plus.
- Strong understanding of communication protocols (I2C, SPI, UART, CAN, Ethernet, LTE).
- Familiarity with debugging tools (e.g., JTAG, oscilloscopes) and version control (e.g., Git).
- Excellent documentation and communication skills.
- Ability to work independently in a startup-like environment.