Serve Robotics Senior Embedded Software Engineer developing robotics middleware and application frameworks in modern C++ on embedded Linux for Serve Robotics' delivery robots. Own platform components from design through deployment.
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.
Qualification
Bachelor’s degree in Computer ScienceWhat Makes You Stand Out
Required
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.