Jobs and Careers
RE
Senior Software Engineer
RecogniSan Jose, United Statesfull_timeVerifiedPosted 30 Jan 2024
About the role
About Recogni
Artificial intelligence (AI) is transforming our world. It can perform cognitive functions that previously only humans could do, such as perceiving interactions across different environments with the ability to quickly learn and then solve complex problems. At Recogni we have innovative approaches to machine learning, high resolution imaging, perception processing, and high-performance computation with industry-leading low power efficiency. We're a well funded, fast-paced startup company with headquarters in San Jose, CA, and Munich, Germany; we also have many talented team members working remotely. We're at the leading edge of advancing the latest research and product improvements for Al inference solutions that will make Al even more useful for compelling new applications.
About the role
As a senior member of Recogni's software team, you will be responsible for implementing the software that runs inside a high-performance and low-power convolutional neural network accelerator ASIC that forms the core of the company's flagship perception module product for autonomous driving applications.
Running in the ASIC, this software orchestrates the computational accelerators and system interfaces to form an end-to-end vision perception module that achieves record-breaking computational performance at low power, interfacing with an autonomous vehicle's central path planning system from multiple points on the vehicle. Your responsibilities will be wide-ranging and and run the gamut of full firmware lifecycle including design, development, debugging and ongoing sustaining engineering.
Responsibilities
- Work as a principal technical contributor in the definition, design, implementation and verification of the software of a high-performance AI-based camera and perception module for ADAS systems.
- Utilize formal design processes to develop software that meets the high-reliability and functional safety requirements of the the perception module.
- Contribute to the selection, integration and debug of real-time operating systems (RTOS).
- Integrate (or develop where necessary) low-level I/O drivers (e.g. Automotive Ethernet, USB, GPIO, etc.).
- Implement cryptographic integrity checking, secure boot (with hard time-to-operational requirements) and over-the-air update lifecycle functionalities for the embedded software.
- Collaborate with hardware engineers designing application-specific integrated circuits (ASIC) in the selection of embedded CPU cores (e.g. ARM, RISC-V, etc.), as well as supporting functionality variants of those cores (e.g. MMU, MPU, VLIW vector units, etc.).
- Perform system bringup, debugging and testing.
- Perform requirements analysis and author high-level and detailed requirements.
- Troubleshoot software issues and fix defects.
- Write test specifications and integration tests.
- Architect and maintain automated software build flows, integrate with continuous integration (CI) systems, and author scripts and utilities.
Qualifications
- B.S. (M.S. preferred) in Computer Science, Electrical or Computer Engineering or a related field.
- 3+ years of experience developing embedded software.
- Excellent proficiency in C/C++ programming coupled with a genuine passion for embedded software development.
- Experience with low-level RTOSes (QNX, vxWorks, ThreadX, etc.) and developing device drivers for them.
- Experience with embedded development IDEs and debuggers (gdb, lldb, etc.) and JTAG-based debugging.
- Experience with embedded development tool-chains and cross-compilation methodologies.
- Experience with multiprocessor-based embedded systems.
- Experience with software architecture, development and testing best practices.
- Experience with automated software testing systems for embedded systems.
- Experience with with standard hardware blocks and protocols (MIPI, PCIe, USB, GPIO, I2C, SPI, UART, MMU, DMA, etc.).
- Some experience working with safety critical systems with exposure to DO-178C or ISO 26262 preferred, but is not a must.
- Demonstrable proficiency with test equipment relevant to embedded product development (JTAG, logic analyzers, scopes, etc.).
- Ability to comprehend hardware specs and schematics.
- Familiarity with version control systems (expertise in Git is strongly-preferred).
- Self-starter and
Apply for this role
Generate a tailored application kit with a matched cover letter, interview prep, and CV highlights — in under 60 seconds.
Apply Now →Generate Application KitFree account required — sign up in 30s