About the Team
AVRIDE is an autonomous driving company with the mission to make transportation safer and more efficient through cutting-edge technology. We hold a unique position in the market, developing self-driving taxis and delivery robots. Our delivery robot division already has production in the US and Japan. Our team consists of highly talented engineers with extensive expertise. Joining us means diving into a startup atmosphere and making a significant impact on the company's results and the autonomous industry as a whole.
About the Role
As a Senior Software Engineer at Avride, you will lead the development and optimization of embedded firmware for automotive-grade microcontrollers powering our autonomous vehicles. You’ll design low-level software, develop hardware drivers, optimize real-time performance, and collaborate closely with hardware teams to deliver reliable, efficient, and safe embedded systems critical to autonomous driving.
What You'll Do
- drivers for peripherals devices, developing and optimizing data processing and hardware interaction algorithms.
- Designing the overall architecture of the system, including software and hardware components and their interactions.
- Analyzing and optimizing code and algorithms to minimize memory and power consumption. This activity includes code profiling,benchmarking and code refactoring.
- Collaborating with other developers, engineers, and specialists to achieve project goals. Including code and schemas review, planning, time estimation.
- Developing tests for the verification of embedded software. Conducting integration tests to verify software and hardware interactions. Debugging and resolving issues identified during testing.
- Collaborating with hardware engineers to ensure hardware compatibility with software and project goals.
- Preparing technical documentation, including specifications, user guides and code documentation.
- Exploring new methods and technologies to improve embedded systems. Participating in research and development projects.
- Providing technical support for embedded systems throughout their lifecycle.
- Responding to requests and resolving issues encountered by end users.
What You'll Need
- Professional education: Master's degree in Computer Science.
- Strong proficiency in C++ and assembly language programming. Excellent knowledge of modern standards. At least 7 years of experience is expected.
- Understanding of hardware design principles and the ability to read and interpret schematics.
- Experience with low-level hardware programming and interfacing, including knowledge of CAN, Ethernet, LIN, SPI, UART protocols.
- Experience with embedded systems development and real-time operating systems (especially FreeRTOS, zephyr, nuttx). Proficient in using profiling and debugging tools to analyze code performance and resource usage.
- Knowledge of memory management techniques and power optimization strategies.
- At least 7 years at self-driving projects. Familiarity with their architecture and principles: knowledge of the specifics of development and architecture.
- Strong knowledge of hardware design features in self-driving projects. Specifics of the automotive microcontrollers and peripheral devices used.
- Strong knowledge and experience of industrial and automotive protocols, such as UDS, DoIP, ISO-TP, and others.
- Knowledge of NXP automotive processor architectures, and their peripherals.
Nice to Have
Candidates are required to be authorized to work in the U.S. The employer is not offering relocation sponsorship, and remote work options are not available.