Objective:
Lead a small-scale outsourcing engineer team(3-5 members) in project delivering, including: compiling software requirements, preparing technical solutions, task breakdown and allocation, tracking delivery progress and quality, supporting the team leader in managing the performance of outsourcing engineers.
Define performance benchmarks, metrics, and goals for cockpit infotainment systems.
Identify and resolve performance bottlenecks across the entire software stack, from application layer to low-level system services.
Collaborate with cross-functional teams to ensure performance requirements are met throughout the product development lifecycle.
Drive innovation in performance optimization techniques to enhance system responsiveness, boot time, graphics rendering, and power efficiency.
Provide technical leadership and guidance in performance engineering best practices. Design a vehicle-side service governance solution, including service routing, load balancing, and fault tolerance mechanisms, to ensure high reliability of services in the embedded automotive environment
Tasks:
Lead performance architecture design, including the selection and integration of profiling tools, data collection frameworks, and analysis pipelines
Conduct in-depth system-level profiling using a combination of kernel-space and user-space tools (perf, eBPF/BCC, Ftrace, Intel VTune, Graphics Performance Analyzers, custom instrumentation).
- Create detailed performance models to simulate and predict the impact of new features, hardware changes, or architectural decision.
Author technical documentation, including performance design specifications, analysis reports, and optimization guidelines.
Collaborate with BSP teams to optimize board support package components, device driver performance (display, audio, GPU, touch), and hardware abstraction layer (HAL) efficiency.
- Design and implement kernel-level optimizations related to CPU frequency scaling (cpufreq), task scheduling (CFS, EAS, PREEMPT_RT), memory management (cgroups, zram, page cache), and I/O scheduling for storage devices (e.g., UFS, eMMC).
Communicate and coordinate resources outside the team to participate in performance work.
- Train and cultivate young engineers in the field of performance.
Education:
Bachelor degree or above, major in electrical engineering, computer sciences, automation, mechatronics, vehicle engineering, electronics or software
Experience:
7+ years of experience in system performance engineering, with at least 3 years focused on Linux-based embedded systems (automotive IVI, smartphones, or similar consumer electronics).
Knowledge:
Deep understanding of operating systems (Linux/QNX/Android Automotive), real-time systems, and hardware-software interaction.
Expertise extends beyond solving isolated issues to planning and implementing a comprehensive performance strategy encompassing goal definition, standardized processes, toolchain development, and fostering a performance-oriented culture.
Hands-on experience in designing, integrating, or developing a unified performance analysis platform/toolchain. Ability to correlate, visualize, and automate the analysis of disparate data sources (application, system, kernel, hardware metrics, traces, logs) to enhance the entire team's troubleshooting efficiency.
In-depth understanding of the Android system architecture, including core frameworks, system services (ActivityManager, WindowManager, PowerManager), and the Binder IPC mechanism.
Proven experience in profiling and optimizing Android graphics and UI performance: deep knowledge of the rendering pipeline (Choreographer), SurfaceFlinger, HWUI, and View hierarchy optimization. Experience with GPU Rendering Profiling and Profile GPU Rendering tools.
Experience with Android boot and startup optimization, including analysis of bootchart, init.rc sequences, and Zygote/SystemServer startup.
Strong expertise in performance profiling and analysis tools (e.g., Perfetto, Systrace, GTK, Intel VTune).
Proven experience in optimizing boot time through bootloader, kernel, and initramfs/userspace analysis.
Proficiency in programming languages such as C++, C, or Java, with experience in low-level optimization.
- Excellent analytical, problem-solving, and communication skills.
