Senior Software Engineers for microcode development at Ambarella are responsible for the design, development, and implementation of Imaging and Computer Vision algorithms and tools on proprietary SOC. You will work with industry-recognized scientists, software architects, and engineers to bring out best-in-class performance to the market.
Join a team of highly innovative scientists and engineers to research, architect, and implement new technologies related to Automotive Camera Solutions targeted to evolving fields of advanced driver assistance systems (ADAS), electronic mirrors, drive recorders, driver/cabin monitoring, autonomous driving, etc. This domain requires deep knowledge of Imaging, Computer Vision, Machine Learning/Deep Neural Networks, and Software development processes/methodologies.
As a team, we want to create an efficient platform for customers to develop and port new algorithms for various applications.
Responsibilities
Develop a deep understanding of Ambarella’s SOC and NN accelerator architecture for efficient code development. Use efficient hardware resources like Cores, CPU cycles, and memory systems to optimize performance and scale Imaging and computer vision algorithms. Develop and debug low-level/system software in various environments such as; pre-silicon simulation model, silicon bring-up, and production. Develop tools to ease/automate software development, debugging, and testing. Develop tools to reduce customers’ effort and improve customers’ development experience on Ambarella’s SOC/SDKs. Understand features from a customer point of view and review those with the application and system team. Enable customers to port their algorithms onto Ambarella’s SOC. Help customers to bring them up to speed on Ambarella SOC/Tools/SDKs. Work with cross-functional and cross-site teams across the globe.Qualifications/Skills
You must possess a Bachelor’s degree in EE, Computer Engineering, CS, or equivalent. A Master’s degree in the same discipline is preferred. Must be comfortable with assembly coding, C/C++ programming, Python programming, Makefile-based build systems, and scripting. Must have working knowledge about bare metal, as well as Operating Systems environment/internals. Must have a working knowledge of multi-threading, memory allocation and scheduling algorithms. 3+ years’ experience with computer architecture, which includes registers, interrupts, core/threads, on-chip memory, DRAM, and DMA. Must be able to resolve data synchronization issues with computer architecture. Experience with debuggers like GDB and JTAG/Trace32 is an advantage. Must be comfortable with modern software development processes and methodologies such as developing software requirement specifications, software component design, software development, code review, test plan development, unit testing, peer reviews, etc. Familiarity with mathematically sophisticated algorithms in areas such as Machine Learning/Deep Learning, Computer Vision, Linear algebra, Data Visualization, etc. Experience working closely with customers with fluent verbal and written communication skills is critical for our success. Excellent analytical, problem-solving, presentation, and teamwork skills. Self-starter, driven, and thrive on challenging problems and competitive environments.
Salary Range: $146,000 - $180,000
Background check required if hired. As an Equal Opportunity/Affirmative Action Employer, Ambarella recruits qualified applicants without regard to race, color, national origin, sex, physical disability, or veteran status.