Embedded Software Engineer
Brain Corp is a San Diego-based AI company creating transformative core technology for the robotics industry. Our diverse engineering teams in Software, Hardware Design, and Embedded Systems are creating comprehensive solutions to support the builders of today's autonomous machines in successfully producing, deploying, and supporting commercial robots across industries and applications. Brain Corp is funded by the SoftBank Vision Fund and Qualcomm Ventures. For more information please visit: https://www.braincorp.com/
As a member of the Engineering Application Firmware team working on our Flagship Floorcare Product line, the Embedded Software Engineer I is responsible for focusing on writing safe, reliable embedded software for integrating hardware and software for mobile robotic products.
Duties and Responsibilities:
- Design, develop and support the embedded software systems required for our robotic brains.
- Manage safety and reliability of the embedded software.
- System integration with hardware and software systems.
- Other duties and responsibilities as assigned.
What you need:
- Bachelor’s Degree in Computer Science, Software Engineering, Electrical Engineering or a related field. Advanced degree in CS/CE/EE or related field desirable.
- 0-2 years professional experience, including:
- Strong software engineering/coding in C/C++/Python
- Experience with ARM Cortex MCUs
- Experience with embedded RTOS, and programming in multithreaded environments
- Experience with embedded system skills (CAN, I2C, SPI, GPIO, interrupts, timers, PWM)
- Familiarity with AGILE development and continuous integration
- Familiarity with build systems (cmake, make)
- Familiarity with lab equipment (DMMs, oscilloscopes)
- Familiarity with Github for source control, tracking, and testing
Things that make a difference:
- Experience with mobile robotics.
- Experience with CAN Bus.
- Experience with the Linux environment.
The physical demands described here are representative of those that must be met by an employee to successfully perform the essential functions of this job. Reasonable accommodations may be made to enable individuals with disabilities to perform the essential functions. Essential functions may require maintaining the physical condition necessary for sitting, walking or standing for periods of time; operating a computer and keyboard; use of hands to finger and grasp; talk and hear at normal room levels; repetitive motion; close visual acuity to prepare and analyze data and figures; transcribing; viewing a computer terminal; extensive reading; visual inspection involving small defects, small parts, and/or operation of machines; use of measurement devices; and/or assembly or fabrication parts at distances close to the eyes; push or pull up to 10 pounds.
The work environment characteristics described here are representative of those an employee encounters while performing the essential functions of this job. The noise level in the work environment is usually quiet to moderate. Employee is exposed to the typical office environment with computers, printers and telephones.