Senior Software Engineer (Firmware)
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 Platform engineering team, the Senior Software Engineer is responsible for producing safe, reliable software for our robotics operating system. This position is for a candidate with a strong background in software engineering with embedded software experience. The successful candidate will be integrating hardware and software for mobile robotic products and work on test automation for the eSW product.
Duties and Responsibilities:
- Design, develop, and support the software systems required for our robotic brains.
- System integration with software and hardware systems.
- Design and develop software interfaces and protocols for new sensors and actuators.
- Identify areas for test automation and simulation.
- Analyze timing and performance across both software and hardware systems.
- Support rapid prototyping and vendor evaluations.
- Other duties and responsibilities as assigned.
What you need:
- Bachelor’s Degree in Computer Science, Software Engineering, or a related field.
- Current U.S. work authorization.
- 5+ years of professional experience.
- Strong software engineering/coding skills (5-7 years Linux, C/C++, Python).
- Embedded systems skills (e.g., GPIO, Interrupts, timers, PWM, i2c, USB).
- Experience with RTOS, and programming in multithreaded environments
- Experience with test automation for embedded software
- Experience with AGILE development and continuous integration.
- Familiarity with build systems (cmake, make).
- Familiarity with release management and versioning.
- Previous experience with shipping and supporting complex software products.
- Experience with Github, JIRA, and Jenkins tools for source control, tracking, and testing.
Things that make a difference:
- Experience with mobile robotics or IoT
- Familiarity with control systems (PID, closed-loop control).
- Experience with regulatory, safety and compliance
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.