🎁 Before you apply, rehearse this interview. Create your free WorkMundi account and get an Interview Training on HelpsYouSpeak — no cost, no card. I want my training →
About the Company DiDi's autonomous driving unit was established in 2016 with the mission of developing Level 4 autonomous driving (AD) technology to make transportation safer and more efficient. In August 2019, the unit became an independent company, DiDi Autonomous Driving, dedicated to advanced AD R&D, product application, and business expansion. We believe integrating AD technology into a shared-mobility fleet will generate immense social value. By leveraging DiDi's specialized technology, operational expertise, and integrated ecosystem, we are positioned to build and operate a highly efficient, user-oriented autonomous fleet. About The Role We are seeking an experienced Sr. Software Engineer / Staff Software Engineer, Infrastructure to lead the architecture and evolution of the core platform powering our autonomous driving software stack. In this role, you will define the technical roadmap for our high-performance middleware, custom compiler infrastructure (including ccatch), onboard toolchains, and large-scale simulation frameworks (ezsim and automated crash triage). As a technical leader, you will collaborate closely with Autonomy and Simulation teams to maximize platform stability, enforce systemic engineering standards, and accelerate cross-team developer productivity at scale. Responsibilities Lead the architectural vision, design, and implementation of next-generation, low-latency, high-throughput IPC messaging middleware and runtime execution engines for onboard systems. Own end-to-end build infrastructure, toolchains, and compiler execution strategies (including ccatch and distributed build caching) to optimize developer velocity and software deployment pipelines. Architect robust, deterministic simulation platforms (ezsim) and build automated post-mortem diagnostic toolchains for rapid simulator crash triaging, core dump analysis, and systemic fault isolation. Drive cross-functional performance profiling, memory optimization, and latency reductions across the full autonomous driving software stack on embedded hardware platforms. Act as a crucial infrastructure domain expert for onboard teams, guiding software design for maximum efficiency, flexibility, scalability, and reliability across our evolving autonomy stack. Continuously elevate internal development tools, diagnostic systems, and engineering workflows to maximize developer velocity while maintaining tight control over system complexity and runtime stability. Technical leadership: Mentor engineers, set high engineering standards, lead technical design reviews, and establish foundational architecture guidelines across cross-functional teams. Qualifications Bachelor’s or higher degree in Computer Science, Computer Engineering, Software Engineering, or a closely related technical field. 6–10+ years of software engineering experience designing, architecting, and maintaining complex real-time systems, Linux systems infrastructure, or autonomous driving platforms in C++. Proven track record of technical leadership, system architecture, and driving complex, multi-team engineering initiatives from inception to production deployment. Expert-level understanding of C++, system programming, multi-threading, concurrency models, and low-latency IPC/middleware architectures. Deep knowledge of compiler internals (Clang/GCC, LLVM), build systems (Bazel/CMake), and compilation optimization tools (including caching systems like ccatch). Proven capability in debugging complex system-level faults, kernel/user-space crashes, memory corruption, and race conditions. Preferred Qualifications Prior experience architecting or extending core simulation execution platforms (ezsim), evaluation frameworks, and automated crash triaging pipelines for robotics or autonomous driving. Recognized domain expertise in embedded systems, cross-compilation target setups (e.g., QNX, Linux RT, NVIDIA Orin), and hardware acceleration layer integrations. Deep experience in low-level systems profiling (e.g., eBPF, gperf), customized memory allocators, or custom IPC protocol design. Demonstrated history of building developer productivity tools, developing quantitative software evaluation metrics, and driving root-cause analysis in complex robotic environments. The base salary range for this full-time position is $169,783 - $338,694 annually in addition to bonus, equity and benefits. Our salary ranges are determined by role, level, and location. Within the range, individual pay is determined by work location and additional factors, including job-related skills, experience, and relevant education or training. I acknowledge that prior to submitting this application, I have read and accepted the Privacy Notice for California Residents which is available on https://v.didi.cn/AQnxlBa
Here's how to pick the right one and stand out in your application.
144.883Jobs
31.687IN
81%EN
That number is real. WorkMundi's database shows 144,883 open engineer roles across the world. India has the most with 31,687 jobs, followed by the United States with 30,084. If you just finished reading one job ad and felt paralyzed by choice, you're not alone—but this scale is actually an advantage. It means you can afford to be selective.
Start by geography and language. The majority of engineer ads—117,837 of them—have the job posting text written in English. Use that as one filter, but remember: the ad text language tells you nothing about whether the role actually requires you to speak English day-to-day. Read the job description carefully. Then check which countries have the volume you're targeting. Singapore, Poland, and Australia round out the top five after India and the US.
Next, learn who's hiring. Accenture has posted 2,801 engineer roles. andurilindustries, speechify, and jobgether are also actively recruiting. If you're applying to one of these names, research their hiring patterns and interview style before you apply. That homework pays off.
When you interview, expect the question every engineer hears: 'Tell me about a time you had to debug a problem that wasn't in your job description.' Have a specific story ready—not a general one. Name the tools, the deadline pressure, and what you learned. Hiring managers listen for whether you see problem-solving as part of the role itself, not a favour.