Responsibilities
- Design, develop, test, and maintain robotics middleware and application frameworks using modern C++ on embedded Linux.
- Own significant platform components from technical design and implementation through validation, deployment, and operation across Serve's robot fleet.
- Partner with software teams using the robot platform to identify reliability, performance, and developer experience problems and deliver reusable solutions.
- Collaborate with Autonomy and Systems Engineering on risk assessments, failure analysis, fault-handling strategies, and software architecture.
- Translate system-level safety and reliability requirements into software behavior, interfaces, and verification strategies.
- Develop instrumentation, benchmarks, logging, tracing, and fleet-level metrics to measure and improve software performance, reliability, and system health.
- Diagnose and resolve complex system-level issues involving concurrency, scheduling, interprocess communication, networking, and constrained compute resources.
- Evaluate technical tradeoffs and contribute to architectural decisions that improve the scalability, maintainability, and reliability of the robotics platform.
- Lead technical design and code reviews and contribute to engineering standards, development practices, and technical documentation.
- Provide technical guidance and mentorship to other engineers through design discussions, problem solving, and knowledge sharing.
Qualifications- Bachelor's degree in Computer Science, Robotics, Computer Engineering, Electrical Engineering, or a related technical discipline, or equivalent practical experience.
- 5+ years of professional software engineering experience, including significant experience developing production software in modern C++ (C++17 and newer).
- Experience developing and debugging systems software in embedded Linux environments.
- Strong understanding of multithreaded programming, concurrency, synchronization, interprocess communication, and systems-level software development.
- Experience designing software for latency-sensitive, safety-related, real-time, or high-reliability systems.
- Experience profiling and optimizing embedded software for performance, reliability, and resource utilization.
- Experience independently owning complex software components through design, implementation, testing, and deployment.
- Strong troubleshooting and problem-solving skills with demonstrated ability to diagnose complex issues across software and hardware boundaries.
- Strong written and verbal communication skills and the ability to collaborate effectively across software, systems, and hardware engineering teams.
What Makes You Stand Out- Experience developing middleware for robotics, autonomous vehicles, or similar complex systems.
- Experience developing and deploying production software on NVIDIA Jetson or similar embedded computing platforms.
- Knowledge of Linux internals, scheduling, resource management, device interfaces, and interprocess communication mechanisms.
- Experience with fault-tolerant architecture, failure-mode analysis, functional safety, or safety-related software development.
- Experience with distributed systems, networking, RPC frameworks, or serialization technologies such as Protocol Buffers, FlatBuffers, or Cap'n Proto.
- Experience developing telemetry, observability, health monitoring, or diagnostic capabilities for robotics or distributed device fleets.
- Experience integrating software with sensors, embedded hardware, or other robotic system components.
Additional Information:This role works across multiple engineering disciplines and balances hands-on software development with systems-level problem solving, technical design, and cross-functional collaboration. The position may occasionally require access to robotics hardware or onsite participation in integration, testing, troubleshooting, or validation activities.