Control Systems / Embedded Software Engineer
Position Overview
The Control Systems / Embedded Software Engineer is responsible for the design, development, and implementation of control systems and embedded software solutions. This role supports the full development lifecycle, including architecture definition, requirements analysis, design, implementation, testing, and documentation.
The engineer will work on a range of software applications from low-level device drivers and motor control to high-level applications controlling robotic systems. This position requires hands-on debugging across mechanical, electrical, and control system domains and the ability to deliver results with minimal oversight in a collaborative, multi-disciplinary environment.
Key Responsibilities
- Develop software using C, C++, and Python
- Design and implement control algorithms for embedded and robotic systems
- Perform real-time programming in Linux environments
- Develop device drivers and board support packages
- Work with ROS (Robot Operating System) and related frameworks
- Utilize Git/GitHub for version control and collaboration
- Integrate and troubleshoot systems using tools such as oscilloscopes, logic analyzers, and test equipment
- Interface with hardware components including motors, sensors, and communication systems
- Support development of systems utilizing protocols such as RS232/422/485, CAN, and TCP/IP
- Collaborate with cross-functional teams across engineering disciplines
- Support testing, validation, and system integration activities
- Maintain documentation and adhere to quality and safety standards
- Support additional projects and responsibilities as assigned
Required Qualifications
- Bachelor’s degree in Electrical Engineering, Mechanical Engineering, Physics, or related field (advanced degrees preferred)
- 1–2+ years of experience in embedded systems or control systems development
- Strong programming experience in C/C++ and Python
- Experience with Linux-based development environments
- Familiarity with real-time systems and embedded software development
- Understanding of electronics fundamentals and circuit troubleshooting
- Strong problem-solving and debugging skills
- Ability to work independently and within a collaborative team environment
Preferred Qualifications
- Experience with robotics, robotic locomotion, or exoskeleton systems
- Experience with computer vision, motion planning, or autonomous navigation
- Familiarity with localization, mapping, and sensor fusion
- Experience with motor control and sensor interfacing
- Knowledge of software safety practices
- Experience with MATLAB/Octave or Python scientific libraries (NumPy, SciPy, Matplotlib)
- Exposure to electronics design tools (Altium or similar)
Additional Skills & Competencies
- Strong interpersonal and communication skills
- Ability to work effectively with customers, vendors, and internal teams
- Proficiency with standard business tools (e.g., Microsoft Office)
- Ability and willingness to learn new technologies quickly
Work Environment
- Primarily office-based with standard equipment (computer, phone, etc.)
- Occasional work in manufacturing or lab environments with exposure to noise, dust, and temperature variations
Physical Requirements
- Ability to alternate between sitting, standing, and walking for extended periods
- Ability to lift up to 20 pounds occasionally
- Ability to wear required personal protective equipment (PPE)
Additional Information
- May provide guidance or oversight to junior team members or technicians
- Participation in safety training and job-specific training as required
EOE (including Disability/Veterans)
#HRUProfessional