Senior Embedded Engineer
Time type: full time
Posted on: January 25, 2024
Job requisition id: R2831
What we need
We are looking for a Senior Embedded Engineer to join the Safe Access System team in our Industrial Controls and Robotics organization. This position will report to the Manager of Embedded Safety and will play an important part in designing, developing, and maintaining the embedded system.
What we do
The Senior Embedded Engineer will be part of team that designs and develops a state-of-the-art safety system within our automation solution. This role lives within our Industrial Controls team and plays a critical role in delivering a robust safety system that allows our system to run safely and efficiently.
What you’ll do
Design and develop software strategies for near real time environments in C++.
Implement object-oriented software using up-to-date programming methodologies.
Implement, document, and maintain embedded real-time code and shell scripts (Bash, Python).
Understand, document, and maintain existing code (C/C++, Bash, and Python components).
Support system testing of components and subsystems.
Troubleshoot system problems in production or design by investigating issues related to product performance or production difficulties, primarily through log analysis.
Evaluate and process engineering change requests.
Up to 10% travel required.
What you’ll need
Minimum 8 years of professional experience developing real time embedded software and device drivers. Familiarity with networking protocols and control systems.
Bachelor of Science in a related engineering discipline (i.e., Computer Science, Mathematics, Electrical Engineering, etc.).
The qualified candidate must have experience with Object Oriented design using C++. C++ coding skills and design pattern, suitable for real time environments.
Experience with software process and version control tools.
Strong background in Linux shell scripting (especially Python and bash), familiarity with grep, regex and parsing; and file system command line utilities.
In-depth knowledge of real time or embedded operating systems (e.g.,VxWorks, FreeRTOS, SafeRTOS) and threading and communication issues related to real time operating systems (for industrial safety systems would be ideal).
POSIX multi-threading (thread priority, thread arbitration), synchronization mechanisms (mutexes, semaphores), shared memory, event and signal handling, and inter-process communications.
Low level communication protocols and sockets implementations, UDP, TCP/IP, TCP/NFS, and related alignment and packing issues.
Experience with programming and debugging for memory-constrained systems.
Expert level communication (oral and written) and documentation skills; must be comfortable explaining complex software systems and programming concepts.
A hands-on problem solver with excellent software design and implementation skills.
Previous experience working in a team with more and less experienced engineers.
This person must be able to work in a fast-paced environment and support unscheduled events.
Understanding of functional safety and safety programming is a plus.