rivianvw.tech Senior Software Engineer working on embedded software for automotive infotainment platforms. Responsible for architecture, integration, optimization, and debugging of display and input subsystems.
Responsibilities
Display & Graphics Pipeline: Develop, integrate, and maintain display drivers and compositor frameworks (e.g., DRM/KMS, SurfaceFlinger, Wayland, OpenWFD) for complex, multi-display automotive topologies.
Touch & Input Subsystems: Develop and integrate drivers and middleware for touch panels (capacitive, resistive) and physical infotainment buttons (e.g., hard keys, rotary dials, steering wheel controls). Optimize input processing, gesture recognition, multi-touch coordination, and noise filtering within the OS input frameworks (e.g., Android InputFlinger, Linux evdev).
System-Level Debugging: Investigate and resolve complex display and input issues (e.g., screen freezes, visual artifacts, touch ghosting, missed button presses, dropped frames) using software profilers, gdb, JTAG, and logic analyzers.
Performance Optimization: Tune the complete glass-to-glass pipeline. Optimize frame rates, visual quality (color accuracy, white point tuning), and touch/button latency to ensure a fluid, highly responsive user experience.
Hardware Bring-Up & Integration: Partner closely with hardware vendors and SoC partners to bring up new display panels (LCD, OLED) and input interfaces via standard buses (MIPI DSI, I2C, SPI) and SerDes links.
Feature Development: Implement advanced system features such as dynamic backlight control, power sequencing, resolution switching, fault monitoring, and multi-display synchronization.
Cross-Functional Collaboration: Work closely with Hardware engineers, UI/UX designers, and System teams to define requirements, document software architectures, and ensure compliance with automotive safety and EMC requirements.
Qualification
Strong proficiency in C/C++ programmingExcellent problem-solving
Required
Bachelor's or Master's degree in Computer Engineering, Electrical Engineering, Computer Science, or a related field.
Strong proficiency in C/C++ programming.
Proven experience in embedded software development or platform engineering, specifically focusing on display panels, touch screens, and hardware input technologies.
Deep understanding of embedded operating systems such as Linux, QNX, or Android Automotive OS.
Solid grasp of display and input frameworks (e.g., Linux DRM/KMS, Android SurfaceFlinger/InputManager).
Experience with hardware peripherals and interfaces (I2C, SPI, UART, MIPI DSI).
Excellent problem-solving, system-level debugging, and teamwork skills.
Preferred
Experience bringing up automotive infotainment platforms on major SoCs (e.g., Qualcomm Snapdragon, NXP).
Familiarity with graphics libraries and hardware compositors (OpenGL ES, Vulkan, HWC).
Experience with automotive communication protocols (CAN, Automotive Ethernet).
Familiarity with display virtualization (VirtIO-GPU) and hypervisor environments (e.g., QNX, Gunyah).
Proficiency with performance profiling tools like Systrace, Perfetto, and vendor-specific GPU profilers.