Staff Embedded Linux Software Engineer
As a member of the Software Engineering Team, the Staff Embedded Linux Software Engineer is responsible for leading the development and integration of system level components on Brain’s robots. The engineer will be working with different teams on various levels of the robot software stack including: camera system, sensor integration, system boot, and operating system. These robots solve complex, real-world problems. As a core member of our Software Division, the Staff Embedded Linux Software Engineer will work with our world-class team of engineers and scientists to build a platform for the next generation of intelligent machines. Their experience will be pivotal in advancing our mission: safe, secure and reliable robots everywhere.
Duties and Responsibilities:
- Interact with Hardware vendors to translate business needs into technical specifications
- Integrate BSP (includes kernel support for sensors) provided by vendors into our embedded system and work on software bring-up on multiple platforms
- Debug kernel-related issues and provide timely resolutions to ensure system stability and performance
- Customize the boot process of embedded systems to meet specific requirements
- Collaborate with hardware engineers, firmware developers, and software teams to ensure seamless integration of software and hardware components
- Conduct thorough testing and validation of embedded systems to ensure compliance with industry standards and specifications
- Improve our Over The Air (OTA) update mechanism for more efficient remote updates and board flashing
- Identify, propose, design, implement, and support new features, fixes, and functionality to move both our products and our software organization forward
- Deliver software features/functionality that improve the security, reliability and performance of of the software powering Brain’s robots
- Increase the agility/ software release frequency of the team and organization through code refactoring, simplification, and removal
- Help set and execute on the technical roadmap for our robotic product lines
- Help resolve production and customer issues and engineer long-term solutions through root cause analysis and data analytics
- Other duties and projects as assigned
- Bachelor or Master degree in computer science, software engineering, or a related field
- 8+ years of proven experience in embedded Linux development.
- Expertise with Linux board support packages (BSPs) for ARM based SoCs
- Experience writing shell scripts for Linux
- Detailed knowledge of systemd, udev and other configuration and initialization sub-systems used in Ubuntu Linux
- Expertise with kernel development for embedded processors
- Experience with boot customization in embedded systems
- Strong debugging skills in kernel context
- Knowledge of operating system fundamentals: file systems, interprocess communication, computer networking, system calls, system resources, security, etc.
- Experience architecting, designing, implementing, testing, and debugging complex system level software
- Ability to translate high level requirements into production ready software
- Ability to provide technical guidance to other members of the team by providing clear architecture definitions and designs in addition to providing feedback in code reviews
Things that make a difference:
- MS in computer science, or related field
- Experience working with Nvidia architectures (i.e. Jetson)
- Experience with robotic sensors such as lidars
- Experience working with securing an IOT device running embedded Linux
- Experience with camera pipelines including ISPs
- Experience working with creating Ubuntu debian packages
- Experience writing C++11 (or newer)
- Experience writing Python applications and knowledge of Python constructs and internals
- Extensive experience designing for ease of testing, both at the unit level and and integration test level
- Track record of delivering quality system software for an IOT based product running embedded Linux
- Good working knowledge of robotics and surrounding systems
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.
The anticipated salary range for candidates who will work in San Diego, California is $151,545 to $183,449. The final salary offered to a successful candidate will be dependent on several factors that may include but are not limited to the type and length of experience within the job, type and length of experience within the industry, education, etc. Brain Corp is a multi-state employer and this salary range may not reflect positions that work in other states.