Write understandable C and C++ code.
Continuous refactoring.
Testing first mentality. Unit testing, integration testing, and system simulation.
Design patterns and SOLID principles adherence. Design for re-use.
Use of distributed version control systems.
ESSENTIAL EDUCATION, WORK EXPERIENCE, JOB SKILLS
Bachelor's degree in Electrical Engineering, Computer Science, Computer Engineering, or related. Master's preferred.
7+ years professional experience designing and implementing embedded, real-time software systems using C/C++ for embedded processors. Senior software engineering experience preferred.
Familiarity with large multithreaded embedded applications, running on an RTOS.
Familiarity with electrical and mechanical systems.
Ability to work in an open and collaborative team environment.
Strong interpersonal and communication skills.
Must be authorized to work in the
U.S. DESIRABLE EXPERIENCE/SKILLS
Agile software development concepts and processes.
Device drivers for embedded systems.
Unmanned vehicle systems.
Knowledge of flash programming tools.
Communication protocols: TCP, UDP, Controller Area Network (CAN), SPI, RS232.
Robotic Operating System (ROS/ROS2).
Sensor interfacing: GPS, LIDAR, RADAR, ultra-sonics.
Controls systems.
Embedded Software Engineer1tcp, spi, UDP, multithreaded embedded applications, Controller Area Network (CAN), RS232., C and C++ code, running on an RTOS. United States