Software Engineer (BrainOS Platform)
Brain Corp is a San Diego-based AI company creating transformative core technology for the robotics industry. Our diverse 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, Clearbridge, and Qualcomm Ventures. For more information please visit: https://www.braincorp.com/
As a member of the Engineering Platform BrainOS team, the Software Engineer is responsible for working with our world-class team of engineers and scientists to build a platform for the next generation of intelligent machines. You will have a unique opportunity to contribute to the BrainOS platform in a way that supports multiple robotic applications across product verticals with extendability and scale in mind. This position will also be responsible for advancing our mission: safe and reliable robots everywhere.
Duties and Responsibilities:
- Design and contribute to the BrainOS platform architecture.
- Implement various BrainOS APIs.
- Integrate new sensors and hardware with BrainOS.
- Implement new robot software features for fleet-wide deployment.
- Create and maintain SDK tools to accelerate robot development.
- Provide engineering support to SDK users both internally and externally.
- Write code and unit tests and integrate code with other software and hardware components.
- Participate in code reviews and design discussions with the team.
- Coordinate with other teams on features and API development.
- Prototype and test concepts or features, both through simulation tools and with live robotic equipment.
- Other duties and projects as assigned.
What you need:
- Bachelor’s degree in Computer Science, Software Engineering or Development, or other relevant fields.
- 2-4 years of experience writing C++ and/or Python production-level applications for Linux or embedded systems.
- Knowledge and experience with Computer Science fundamentals such as object-oriented design, algorithm design, data structures, problem solving, and complexity analysis.
- Strong communication skills with internal customers.
- Experience with Agile and Scrum methodology.
- Experience with version control and continuous integration.
- Strong communication skills with internal and external customers.
Things that make a difference:
- Advanced degree in Computer Science, Computer Engineering, Software Engineering or related field.
- Knowledge and experience with or skilled with optimization mathematics such as linear programming and nonlinear optimization.
- Knowledge and experience with or skilled with distributed, multi-tiered systems, algorithms, and relational databases.
- Experience working on a robotics product or hands on knowledge of the robotic stack.
- Exposure to any of the following: ROS, navigation, path planning, estimation and control, perception, SLAM, schedulers, workflows, state machines, multi-threading
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; talk and hear at normal room levels; using hands to finger, grasp, and feel; repetitive motion; close visual acuity to prepare and analyze data and figures; transcribing; viewing a computer terminal; extensive reading; lift, push, carry, 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.