Software Engineer, Controls (C++)
About the Role
Kodiak is seeking a Software Engineer to join its Controls team and work on vehicular motion control for autonomous ground transportation. This role focuses on developing production-level, safety-critical software for autonomous articulated trucks, with responsibilities spanning dynamic control laws, safety limits, monitoring, feedback, state management, vehicle characterization, and control architecture. You will have the opportunity to work across control theory, robotics, vehicle modeling, and software engineering while contributing to driverless vehicle capabilities and using real-world performance data to improve system behavior. Kodiak supports multiple vehicle platforms through a modular controller architecture.
Responsibilities
- Implement control and actuation strategies for autonomous vehicles.
- Develop and test reliable, safety-critical software controlling articulated trucks on highways.
- Characterize vehicle platforms, including braking, steering, and acceleration.
- Develop models for onboard and simulated motion prediction.
- Define software requirements and document their implementation.
- Apply degraded-operation capabilities to support fail-safe driving.
- Develop and tune vehicle controllers based on system performance and test data.
- Collaborate with Planning, Hardware, Systems, and Infrastructure teams to advance a robust vehicle control architecture.
- Contribute to the development and deployment of autonomous driving capabilities.
Required Qualifications
- 2+ years of experience developing production-level vehicular controls software.
- Production-level C++ software development experience.
- Strong background in robotics, controls, and mathematics.
- Experience developing, testing, and tuning controllers for autonomous robots, ideally including trucks, cars, or flying vehicles.
- Strong focus on vehicle safety.
- Ability to work with control systems, software development, and vehicle dynamics in a production environment.
Preferred Qualifications
- Experience characterizing, modeling, and simulating robotic systems.
- Knowledge of control theory, including stability analysis.
- Experience writing low-level drivers for software/hardware interfaces using protocols such as CAN or Ethernet.
- Experience developing efficient software for resource-constrained embedded systems with a real-time operating system.
- Experience with software design and implementation in safety-critical domains such as automotive, aerospace, or medical systems.
- Knowledge of formal verification methods, requirements development, and systems engineering processes.
- Proficiency with Python.
- Proficiency with MATLAB / Simulink.
Skills & Competencies
- C++ software development
- Vehicular motion control
- Robotics and autonomous systems
- Control theory and controller tuning
- Vehicle dynamics and platform characterization
- Safety-critical software
- Embedded and real-time systems
- CAN and Ethernet interfaces
- Modeling and simulation
- Software requirements and systems engineering
- Python
- MATLAB / Simulink
Work Arrangement & Location
Location: Mountain View, California, United States. Work Arrangement: Onsite. Office: Centrally located in Mountain View, CA.
Compensation & Benefits
Base Salary: $145,000–$190,000 USD for the California/SF Bay Area location. Total compensation may include base salary, equity, annual bonus, and benefits. Competitive compensation package with equity and annual bonuses.
- Medical, dental, and vision plans through Kaiser Permanente, Cigna, and MetLife.