Description
Ford's IVI (In-Vehicle Infotainment) organization is seeking a Staff Software Engineer with deep technical expertise in embedded Camera software. In this role, you will be instrumental in designing, developing and deploying mission-critical camera software. Your work will focus on streaming camera feeds from embedded cameras and ADAS ECUs to the displays on our next-generation automotive platforms.
Responsibilities include: Design, develop, and test robust, high-availability camera software for Ford's In-Vehicle Infotainment (IVI) systems. Implement and optimize software for embedded platforms, ensuring reliability and real-time performance in compute-constrained ECU environment. Lead the integration of camera systems, including capturing, processing, and streaming video feeds to vehicle displays. Collaborate with hardware, software platform engineering teams, and external partners to define requirements and ensure seamless system integration. Debug and troubleshoot complex software issues on target embedded hardware, utilizing various debugging tools and techniques. Contribute to architectural decisions and drive best practices for software development, code quality, and maintainability. Stay current with emerging technologies in camera systems, video processing, and embedded software development.
Qualifications include: Bachelor's degree in Computer Science, Electrical Engineering, or a related technical field. A Master's degree is preferred. Minimum of 7+ years of experience in software development, with a significant focus on cameras or embedded systems or automotive background. Deep expertise in C++ programming, including modern C++ standards. Experience with QNX, embedded/automotive Linux or other Real-Time Operating Systems (RTOS). Experience with camera APIs and frameworks such as V4L2 or GStreamer Experience with Git/GitHub as a version control system. Familiarity with Android OS. Nice-to-have Skills: Proficiency in video processing techniques and algorithms using GPU/DSPs. Familiarity with ISP algorithms and camera tuning. Familiarity with image processing and algorithms. Familiarity with Vulkan, OpenGL, or other low-level graphics libraries. Experience with automotive communication protocols (e.g., CAN, Ethernet). Knowledge of software development lifecycle (SDLC) and agile methodologies. Experience with debugging tools and techniques for embedded systems. Understanding of hardware/software interfaces and low-level programming. Experience with software optimization for performance and memory constraints Familiarity with Rust and other defensive coding techniques.