Embedded Software Engineers
Role details
Job location
Tech stack
Job description
Duration 2 to 4 years. Project
-
The teams are currently focused on client Software Defined Automation (SDA) initiative
-
Previous Input/Output (IO) product roadmap work has been completed and released
-
Current work is centered around building feature sets for Client s next-generation automation platform
-
The goal is to create controller functionality that can operate across multiple hardware platforms rather than requiring customers to purchase specific PLC hardware
What the team does
-
The engineers are responsible for the lowest levels of the software stack, including:
-
Drivers
-
RTOS functionality
-
Memory management
-
Platform-level software
-
Hardware abstraction
-
Embedded controller functionality
These engineers are the bridge between software and hardware, creating the code that ultimately runs on Client automation hardware and controllers.
Clients automation products serve customers across Manufacturing, Food & Beverage, Healthcare, Oil & Gas, etc.
- Note: This team does not handle robotics motion-control development.
The teams runs in Agile - Safe framework
Two-week sprints
Regular ceremonies include daily standups, sprint planning, retrospectives every two week
Supporting Functions
- Hardware Engineering is a separate organization
- No dedicated testing team
- Two Scrum Masters currently support all three teams
- Third Scrum Master is being hired
High-Level Individual Duties
-
Design and develop embedded software
-
Develop platform-level functionality
-
Work directly with hardware
-
Participate in architectural and design discussions
-
Write unit tests and test own code
-
Participate in Agile ceremonies
-
100% new development - this is not maintenance work
-
SDA roadmap consists of several years of planned new product development
-
Significant opportunity for innovation and ownership
-
Engineers are expected to contribute to design decisions
Requirements
- RTOS Experience
- Deep RTOS expertise required
- QNX RTOS is their current environment
- ARM & Intel/x86 Architecture Experience
-
Experience developing software on:
-
ARM platforms
-
Intel/x86 platforms
- Strong C++ Development
- Primary language used by the team
- Candidate should be highly proficient in modern C++
- Low-Level Embedded Development
- Need to enjoy low-level engineering work
- Have experience close to hardware
- Be interested in platform development
- Hardware Exposure
Strong preference for candidates who have developed software on multiple hardware platforms
Examples:
- Raspberry Pi
- Proprietary embedded boards
- Industrial hardware
- Embedded controller systems
- Testing Mindset
Engineers must be able to:
- Write unit tests
- Test their own code
- Conduct code reviews
What Will Win (Nice-to-Haves)
- Git
- Jenkins
Soft Skill Requirements
- Collaborative
- Team-oriented
- Comfortable giving and receiving feedback
- Able to work cross-functionally within Agile teams