Job Description
We are a leader in specialized IoT products for the rail industry and are currently seeking an Embedded Software Engineer to contribute to the design, development, testing, and implementation of all aspects of embedded software/firmware for locomotive and railcar IoT products. This is a full-time opportunity and we will consider part time remote work once you become familiar with our products and requirements.
**Key Requirements:**
- 7+ years of related work experience in designing, developing, and testing firmware for embedded systems and microcontrollers.
- Expert knowledge of C/C++ programming skills for embedded systems, including experience in programming microcontrollers.
- Solid knowledge/experience with ARM architecture and SoC’s with WiFi and BLE connectivity.
- Solid knowledge/experience with 4G LTE IoT bands cellular and also GPS receivers.
- Experience with real-time operating systems (FreeRTOS and Zephyr) and ARM processors.
- Solid knowledge/experience with wireless IoT protocols on multiple radios (BTLE5, LoRa, or similar) – strong preference for Bluetooth Low Energy.
- Experience with inertial sensors, data acquisition and algorithms for motion detection.
- Solid knowledge of low level functions with bootloaders, communication protocols (e.g., UART, I2C, SPI, USB), and state machine design.
- Knowledge of version control software (SVN, Git, etc.).
- Solid knowledge of firmware power and performance tradeoffs, low level component configuration, timing possible hardware debugging and security.
**Summary/Objective:**
Design, develop, and test all aspects of firmware, including new products, existing products, line extensions, product enhancements, and test fixtures.
**Essential Functions:**
- Architect and implement embedded software.
- Conduct technical reviews and participate in peer code reviews, providing teammates with comments and suggestions.
- Design and write test plans, unit tests, and automated test fixtures to ensure software code quality and integrity.
- Use project management tools to track progress and provide insight to stakeholders regarding tasks being performed.
- Document all aspects of software designs, including architecture diagrams, design decisions, state/sequence diagrams, and utilize documentation tools for auto-generated documentation.
**Other Functions:**
Possibly travel to railyards or customer sites to gain experience working with railyard equipment.
**Qualifications/Requirements:**
- 7+ years of related professional experience.
- Bachelor’s degree in Computer Engineering, Computer Science, Electrical Engineering, or equivalent.
- Expert knowledge of C/C++ programming skills for embedded systems.
- Basic knowledge of continuous integration workflows and tooling (e.g., Docker, Podman).
- Basic knowledge of IoT cellular connectivity and custom server connections.
- Skill in the operation of electronic test equipment such as multimeters, oscilloscopes, and digital logic analyzers.
- Ability to read and understand electrical schematics.
- Experience working with B2B IoT devices is highly desired.