Skills
- C
- C + +
- Computer Engineering
- Embedded Software
- Ethernet
- I2C
- Operating System
- ROS
- RTOS
- Robot Operating System
Job Description
#1595 Embedded Software Engineer Job Description
Responsibilities:
- Design and develop C and C++ code for embedded microcontrollers used in automotive and robotic applications.
- Create unit tests and assist with testing, debugging, and documentation.
- Review hardware schematics
- Debug and prototype applications using Robot Operating System (ROS)
- Interact with clients to determine software specifications, communicate progress and status updates.
- Participate in all phases of development (architecture, design, implementation, debug, validation & verification) of application software and firmware for embedded module production programs.
- Collaboratively lead in the architecting of solutions with other software engineers, the systems engineer, and hardware engineering teams.
- Support quoting new business opportunities with respect to software content.
- Collaborate with hardware engineers to define the hardware/software interface in terms of microcontroller pin assignments, mixed signal processing algorithms, signal scaling/resolution/timing, and diagnostic fault condition algorithms.
- Mentor and train junior engineers
- Design, Develop, Test Low-level embedded software including device drivers for microcontroller peripherals: Ethernet, CAN, SPI, I2C, ADC, PWM, DMA
Requirements:
- Bachelor's degree in technical discipline such as Computer Engineering, Electrical Engineering, Systems Engineering, or Computer Science
- Minimum 5 years of experience in programming primarily in C and C++
- Strong experience in developing software for microcontrollers and embedded systems.
- Real Time Operating Systems (RTOS)
- Circuit-level testing and debugging using an oscilloscope and multimeter.
- Great interpersonal and communication skills
- Legally authorized to work in the US without sponsorship.
- Preferred
- Robot Operating System (ROS)
- Circuit/Schematic design
- Git version control
- Python