Career at a glance
- What you do
- Develop shared software, communication systems and tools that allow robotic components to work together
- Core skills
- C++, Python, Linux, middleware, networking, software architecture and performance debugging
- Education
- Typically computer science, computer engineering, robotics or related technical experience
- Compensation
- $215,000/year
Black Scarab estimate

In this guide
What does a robotics platform engineer do?
Imagine a company developing a humanoid robot.
One engineering team develops software that recognizes objects through the robot's cameras. Another creates algorithms that plan movements, while a third develops the control systems that coordinate its motors.
Each system might work perfectly when tested independently.
But what happens when all these systems need to operate together?
The cameras produce enormous amounts of data. The perception software needs to process that information, the planning system needs to make decisions, and the robot's controllers must execute movements at the appropriate time.
If messages arrive too late, software components crash or the onboard computer becomes overloaded, the robot may stop working correctly even though its individual algorithms are functioning as designed.
Robotics platform engineers build the shared software systems that allow these components to communicate and operate reliably together.
Their work includes communication frameworks, operating-system services, software interfaces, debugging tools and systems used to deploy software onto robots.
Unlike engineers developing specific robot behaviors, platform engineers focus on the software infrastructure that supports many parts of the robot.
Their customers are often other engineers within the same company.
A good robotics platform allows perception, planning, controls and other teams to develop their systems without repeatedly solving the same infrastructure problems.
| Specialization | What engineers work on |
|---|---|
| Middleware and runtime systems | Software that allows robot components to exchange information and operate together |
| Robot operating systems and deployment | Linux platforms, software builds, updates, hardware integration and release management |
| Developer tools and robot infrastructure | Debugging systems, monitoring, telemetry and shared tools used by robotics engineers |
These specialties overlap.
An engineer working on middleware may also develop tools that measure communication delays.
Another engineer might maintain the Linux software environment used across a company's robots.
Someone focused on developer infrastructure may build systems that make it easier for engineers to test, update and investigate robots in the field.
What does a typical day look like?
Robotics platform engineers spend much of their time developing software, debugging complex problems and helping other engineering teams.
Imagine an engineer arriving at work and learning that a mobile robot becomes noticeably slower whenever several cameras are enabled.
The perception algorithms appear to operate correctly when tested individually.
However, when all cameras are active, the robot sometimes responds to obstacles later than expected.
The platform engineer investigates how information travels between the cameras, perception software and other parts of the system.
They discover that large camera images are being copied repeatedly between processes, consuming processing resources and creating delays.
The engineer evaluates a more efficient communication approach, measures whether it reduces the delays and checks that the change doesn't introduce new problems elsewhere.
Later, they might improve a software deployment tool, review a communication interface or help another team reproduce a difficult bug.
A typical development cycle includes:
- Identify a shared problem. Find issues affecting multiple software components or engineering teams.
- Understand the system. Examine software interfaces, communication patterns, hardware resources and operating requirements.
- Design a solution. Develop reusable software, infrastructure or tools that address the problem.
- Implement and test. Write code and verify that it behaves correctly under normal and unexpected conditions.
- Measure performance. Evaluate timing, memory usage, communication and reliability.
- Integrate the improvement. Help other teams adopt the solution.
- Document the system. Explain how the software works, how to troubleshoot it and how to recover from failures.
The work often involves solving problems that exist between otherwise functional components.
When a robot becomes slow even though its algorithms are fast
Consider an autonomous warehouse robot equipped with several cameras.
Each camera continuously captures images of the surrounding environment.
The perception software processes those images to identify obstacles and other objects.
When engineers test the perception algorithm on recorded images, it performs quickly.
But when the software runs on the robot, the system becomes sluggish.
The platform engineer investigates.
Perhaps the camera images are waiting in communication queues. Maybe the images are being copied between programs unnecessarily, or several processes are competing for the same computing resources.
The engineer measures how long information takes to travel through each stage of the system.
They may discover that the algorithm itself processes an image in 15 milliseconds, but the image spends another 80 milliseconds waiting to be processed.
The problem isn't necessarily the perception algorithm.
It's the infrastructure connecting the components.
The engineer improves how the software exchanges information and measures whether the robot receives the data it needs more promptly.
This illustrates an important principle: a robot's performance depends on how well its software components work together, not only on how well each component works independently.
How is platform engineering different from other robotics careers?
Robotics platform engineering overlaps with several software disciplines.
The main distinction is that platform engineers develop reusable foundations used by multiple applications or engineering teams.
| Career | Main responsibility |
|---|---|
| Robotics Platform Engineer | Develops shared robot software, communication systems, runtime infrastructure and developer tools |
| Embedded Software Engineer | Writes low-level software that operates close to processors, sensors, motors and other electronics |
| Machine Learning Infrastructure Engineer | Builds systems used to train, evaluate and deploy machine learning models |
| Robotics Data Engineer | Develops systems that collect, organize and process robot datasets |
| Robotics Integration Engineer | Connects hardware and software components into complete robotic applications |
Imagine a robotics company developing a new camera-based navigation system.
An embedded software engineer might develop a driver that allows the onboard computer to communicate with the camera.
A perception engineer develops software that interprets the camera images.
A robotics platform engineer builds the communication infrastructure that delivers those images to the appropriate software components.
An integration engineer helps ensure the complete system works within the intended robot or customer application.
These responsibilities can overlap, particularly at smaller companies.
Is this the same as backend software engineering?
There are important similarities.
Backend software engineers develop services, APIs, communication systems and infrastructure used by software applications.
Robotics platform engineers use many of the same skills.
However, robots introduce additional constraints.
A conventional web application may tolerate a brief delay before displaying information.
A moving robot may need fresh sensor measurements within a much tighter time window.
Robots also operate with limited onboard computing resources, changing network connectivity and software that directly influences physical movement.
The underlying software engineering principles remain relevant, but the operating environment is different.
Is this the same as ML infrastructure engineering?
Not exactly.
ML infrastructure engineers primarily support the development and operation of machine learning models.
Their work often involves GPU training, experiment management, model evaluation and inference infrastructure.
Robotics platform engineers focus more broadly on the software systems that run on robots and connect their components.
For example, an ML infrastructure engineer may optimize how a robot learning model trains across multiple GPUs.
A robotics platform engineer may develop the software that delivers sensor data to the trained model while it operates on a robot.
Some companies combine these responsibilities, especially when machine learning models are closely integrated into the robot's onboard software.
Which skills and tools do employers look for?
C++ and systems programming
C++ is one of the most important programming languages in robotics platform engineering.
Robotic software often needs to process large amounts of data efficiently while managing memory and computation carefully.
C++ allows engineers to build high-performance applications, communication frameworks and shared software libraries.
Useful concepts include:
- Memory management.
- Data structures and algorithms.
- Multithreading and concurrency.
- Software interfaces and APIs.
- Performance optimization.
- Testing and debugging.
Python is also useful, particularly for automation, diagnostics, testing and developer tools.
The goal is not simply writing software that produces the correct result.
Engineers must also consider how it behaves when several components run simultaneously and compete for limited resources.
Linux and operating systems
Many robots use Linux-based operating systems on their onboard computers.
Platform engineers need to understand how software interacts with the operating system.
Important topics include processes, threads, memory, filesystems, scheduling and device interfaces.
For example, a robot might run separate programs for cameras, localization, planning and monitoring.
The operating system determines how these programs share computing resources.
If one program consumes too much memory or processor time, other components may be affected.
Platform engineers investigate these interactions and develop systems that operate reliably under the robot's resource constraints.
Some positions involve deeper Linux platform work, including software images, startup configuration, updates and hardware support.
Middleware and robot communication
One of the most important concepts in robotics platform engineering is middleware.
Middleware is software that helps different programs communicate and exchange information.
Imagine a robot with a camera, perception software and a motion planning system.
The camera produces images.
The perception system processes those images to identify nearby obstacles.
The motion planner uses that information to help determine where the robot should move.
Middleware provides mechanisms for transferring information between these components.
How publish-subscribe communication works
A common communication pattern is called publish-subscribe.
One software component publishes information, while other components subscribe to receive it.
For example:
- A camera component publishes an image.
- A perception component subscribes to the camera data.
- The perception component publishes detected obstacles.
- A planning component subscribes to the obstacle information.
- The planning system generates movement instructions for other components.
This approach allows software systems to communicate without every component needing a custom direct connection to every other component.
ROS 2, or Robot Operating System 2, is a widely used robotics software ecosystem that supports communication between components.
Other technologies used in robotics platforms include DDS, gRPC and custom communication frameworks.
The important skill is understanding how information moves between programs and what happens when communication becomes delayed, interrupted or overloaded.
For a system displaying a robot's current surroundings, receiving fresher information may be more important than processing every intermediate reading.
A recording system may need to preserve every measurement. A command system may require explicit acknowledgement, ordering and reliable delivery. Platform engineers decide which communication behavior is appropriate for each application.
Queue depth is only one factor; processing schedules, transport delays and delivery policies also influence what information an application receives.
ROS 2 and communication settings
ROS 2 provides configurable communication behavior through settings known as Quality of Service (QoS).
These settings influence how messages are stored, delivered and handled.
For example, an application may prefer to retain a small number of recent sensor measurements rather than a long backlog.
Another application may require stronger message-delivery guarantees.
Platform engineers need to understand these trade-offs because communication choices can affect robot performance and reliability.
Learning ROS 2 is valuable, but the underlying concepts also apply to other robotics communication systems.
Networking and distributed systems
Robots often contain several computers and communication interfaces.
Some processing happens onboard, while other services may run on remote servers or connect through a fleet-management system.
Platform engineers need to understand how these systems communicate.
Useful networking concepts include:
| Concept | Why it matters |
|---|---|
| TCP/IP | Foundation for many networked software services |
| Ethernet | Connects onboard computers and devices |
| Wireless networking | Supports communication with remote systems and fleet infrastructure |
| Latency | Measures delays in transferring or processing information |
| Bandwidth | Describes how much information a connection can carry |
| Connection recovery | Determines how systems behave when communication is interrupted |
For example, a robot may lose its connection to a cloud service while continuing to operate locally.
The platform must define which functionality can continue, what information should be preserved and how communication resumes when the connection returns.
The correct design depends on the robot's operating requirements.
Concurrency and performance debugging
Robotic systems frequently run many software processes simultaneously.
These processes may share processor cores, memory, communication channels or other resources.
A problem called resource contention occurs when multiple components compete for a limited resource.
For example, several programs might attempt to access a shared data structure at the same time.
Another program might delay the processing of sensor messages because it is performing a computationally expensive task.
Engineers use profiling and tracing tools to investigate these problems.
They examine where software spends time, how threads interact and whether communication queues are introducing delays.
Understanding concurrency is particularly important when developing software that must operate predictably under load.
Observability: understanding what happens inside a robot
Robots can experience failures that are difficult to reproduce.
A robot might operate normally for hours and then briefly stop responding.
Without appropriate diagnostic information, engineers may struggle to determine what happened.
Platform engineers develop observability systems that make software behavior easier to understand.
Three common tools are:
| Tool | What it provides |
|---|---|
| Logs | Records of events and errors |
| Metrics | Measurements such as processor usage, latency and memory consumption |
| Traces | Information showing how an operation moves through different software components |
Imagine a camera image taking longer than expected to reach the motion planner.
A trace might reveal how much time the image spent being captured, transmitted, queued and processed.
The engineer can then identify where the delay occurred.
However, recording too much information can create its own performance problems.
Robots have limited computing, storage and network resources.
Platform engineers need to collect enough information to diagnose problems without overwhelming the system.
Software interfaces and API design
Robotics platform engineers frequently develop interfaces that other software teams depend on.
An application programming interface (API) defines how software components interact.
For example, a platform team might create a common interface for accessing robot sensor measurements.
Instead of each engineering team building a separate connection to the sensor, applications use the shared interface.
A good interface needs to define more than function names.
It should specify information such as:
- Which measurements or commands are available.
- The units used for values.
- Coordinate systems and timestamps.
- Expected responses.
- How errors are reported.
- What happens when data is unavailable.
Shared interfaces also need to remain usable as software evolves.
Changing an interface without considering its users can break several robot applications at once.
Platform engineers therefore spend time on documentation, compatibility and collaboration across teams.
Software deployment and updates
Robotics companies frequently update their software.
An improvement to perception, navigation or another subsystem may need to be installed on many robots.
Platform engineers can develop systems that build, test and deploy these updates.
Depending on the organization, they may work with software images, automated testing, version management and recovery procedures.
An update process must also consider what happens if installation is interrupted or a new software version behaves unexpectedly.
A reliable release workflow helps engineering teams deliver improvements without repeatedly introducing avoidable operational problems.
What education do you need?
Robotics platform engineers commonly come from computer science, computer engineering, electrical engineering or robotics.
The profession requires strong software engineering knowledge, particularly in operating systems, networking and high-performance programming.
A robotics-specific degree can be useful, but it is not always required.
Many of the skills are transferable from conventional software engineering.
| Employer | Representative qualifications |
|---|---|
| Applied Intuition | Relevant bachelor's degree and production software engineering experience |
| FieldAI | Related degree or equivalent practical experience developing shared software |
| Figure | Strong modern C++, Linux and timing-sensitive systems experience |
| Nimble Robotics | Relevant software engineering experience, including equivalent practical backgrounds |
The reviewed positions emphasize engineers who have developed reliable production software.
Some roles focus on middleware and communication, while others require deeper operating-system or infrastructure knowledge.
Do you need a master's degree or PhD?
Not generally.
Many platform engineering roles are primarily software engineering positions.
A bachelor's degree combined with strong professional experience can provide suitable preparation.
Advanced education may be useful for specialized research or systems work, but employers frequently value demonstrated experience building and maintaining complex software.
What should you study?
Useful technical foundations include:
- C++ programming and software architecture.
- Python for automation and diagnostics.
- Linux and operating systems.
- Networking and distributed systems.
- Concurrency, threading and performance optimization.
- APIs, middleware and communication protocols.
- Automated testing and debugging.
- Robotics software frameworks such as ROS 2.
A good starting point is developing strong general software engineering skills.
Then learn how those skills apply to robots operating with limited computing resources, real-time requirements and unreliable communication.
Can you enter without a robotics degree?
Yes.
Experienced backend engineers, systems programmers and infrastructure engineers can transition into robotics platform development.
However, they need to understand the particular constraints of robotic software.
Someone without a technical background should begin with programming, Linux and computer systems before attempting more advanced robotics frameworks.
A small software project involving communication between several simulated components can provide useful preparation.
How much do robotics platform engineers earn?
Robotics platform engineering combines advanced software development with the requirements of physical autonomous systems.
Compensation varies by experience, technical responsibility, location and employer.
Black Scarab estimates annual compensation at $215,000 based on reviewed U.S. robotics platform engineering positions, emphasizing experienced software roles.
| Employer, role & location | Annual salary (USD) |
|---|---|
| FieldAISenior/Staff Software Engineer, Robotics PlatformIrvine, CA | $150,000 to $215,000 |
| FigureSenior Software Engineer, Middleware ProductivitySan Jose, CA | $180,000 to $250,000 |
| Nimble RoboticsSenior Software Engineer, Robotics PlatformSan Francisco, CA | $180,000 to $250,000 |
Annual advertised salary, USD.
What influences compensation?
Experience and technical responsibility. Engineers responsible for shared infrastructure used across several robot systems generally command higher compensation.
Specialization. Expertise in C++, Linux, middleware, distributed systems and performance optimization can be valuable.
Production experience. Employers value engineers who have shipped reliable software and investigated complex problems on physical robots.
Scale and complexity. Supporting several applications on one robot presents different challenges from maintaining a platform used across an entire fleet.
Location and employer. Compensation varies across geographic markets, robotics startups and larger technology companies.
Career progression
Early-career engineers may begin by developing software utilities, improving tests and contributing to existing platform components.
With experience, they can take ownership of communication frameworks, runtime services or developer infrastructure.
Senior and staff engineers may define platform architecture, develop technical standards and make decisions affecting multiple engineering teams.
Other career paths include systems software leadership, robotics architecture and specialized infrastructure engineering.
Which companies hire robotics platform engineers?
Robotics platform engineers work across humanoid robotics, warehouse automation, autonomous vehicles and other intelligent machines.
The exact job titles vary because companies organize their software teams differently.
Humanoid robotics
Figure and Humanoid provide examples of organizations developing software infrastructure for humanoid robots.
Platform-related responsibilities can include Linux systems, communication frameworks, hardware integration and tools supporting other engineering teams.
Humanoid robots can be particularly demanding because many sensors, actuators and software components must operate together.
Autonomous field robotics
FieldAI develops autonomy systems for robots operating in complex environments.
Platform engineers may work on shared software interfaces, robot runtime systems and middleware supporting different robotic platforms.
Building reusable infrastructure is valuable when a company needs to support multiple types of machines.
Warehouse robotics
Nimble Robotics develops robotic systems used in warehouse environments.
Platform-related roles can involve robot-facing services, APIs and software used to coordinate operational systems.
Warehouse deployments also introduce challenges involving reliability, monitoring and maintaining software across deployed equipment.
Robot learning and fleet infrastructure
Skild AI provides an example of platform work involving onboard software, fleet connectivity, updates and observability.
These systems help connect robot software with the broader infrastructure used to manage and improve robotic capabilities.
Autonomous vehicles
Zoox, Applied Intuition and Waymo develop software for autonomous systems that require extensive onboard infrastructure.
Platform engineers may work on operating-system environments, middleware, software deployment and developer tools.
Autonomous vehicles require reliable communication between perception, planning, controls and other software systems.
Related job titles
Useful searches include Robotics Platform Engineer, Robotics Software Infrastructure Engineer, Middleware Engineer, Robotics Systems Software Engineer, Robot Runtime Engineer and Onboard Developer Platform Engineer.
Some companies use the title Platform Engineer for general cloud or web infrastructure.
Read the responsibilities carefully.
Look for ownership of shared software used by robotic applications, onboard systems, middleware, communication or developer tools.
How to transition into robotics platform engineering
Several technical backgrounds provide useful routes into this profession.
| Your background | Skills to prioritize | Suggested project |
|---|---|---|
| Backend software engineering | ROS 2, sensor data and robotics communication | Build a simulated robot messaging system |
| Distributed systems engineering | Onboard computing, latency and robot-specific constraints | Develop services that handle intermittent connectivity |
| Embedded software engineering | Shared Linux services, middleware and software architecture | Create a reusable interface for simulated robot devices |
| DevOps or site reliability engineering | Robot monitoring, updates and edge-device limitations | Build a simulated robot deployment and diagnostics workflow |
| Robotics software engineering | Reusable APIs, communication frameworks and platform architecture | Turn a repeated integration problem into a shared library |
| Complete beginner | Python, Linux and software fundamentals | Build a simple producer-consumer messaging application |
If you already work in backend software engineering
Your experience with APIs, software architecture, networking and services is highly relevant.
Focus on understanding the additional constraints of robotic systems.
Learn ROS 2, sensor communication and the importance of message timing.
A practical project is to build a system where several simulated robotics components exchange information.
Demonstrate that the system handles delayed messages, overloaded consumers and communication interruptions.
If you come from distributed systems
Your experience with message delivery, network failures and system reliability can transfer directly.
Develop a stronger understanding of onboard computing and real-time robotics software.
Learn how limited hardware resources and changing connectivity affect system design.
A project involving simulated robot services and intermittent networking can demonstrate this transition.
If you work in embedded software
You may already understand processors, Linux, device drivers and hardware communication.
Focus on developing shared services and reusable software interfaces that support multiple applications.
Build a small platform component used by two or more simulated robotics programs.
Document how the interface works, how it handles failures and how other developers can use it.
If you work in DevOps or site reliability engineering
Your experience with monitoring, deployment, automation and incident response is valuable.
However, robotics platforms introduce physical devices operating with limited resources and potentially unreliable connectivity.
Focus on robot observability, onboard software updates and edge-device infrastructure.
Build a small simulated deployment workflow that demonstrates how updates are tested and how failures are detected.
If you already develop robotics software
You may already be familiar with ROS 2, sensors and robotic applications.
The next step is developing a platform engineering mindset.
Instead of solving a problem for one robot component, consider whether the solution can be made reusable across several systems.
For example, if multiple teams need similar diagnostic tools, create a shared library or service that addresses the common requirement.
If you are starting from scratch
Begin with Python and basic Linux.
Learn how software processes communicate and how information moves between applications.
Then develop a simple program that generates measurements and sends them to another program.
Once that works, introduce message queues, delays and error handling.
Progress toward ROS 2 and more advanced C++ systems programming as your skills develop.
What matters in an interview?
Robotics platform engineering interviews often focus on systems design, performance and debugging.
Employers may ask how you would connect several software components, investigate delayed messages or prevent one process from affecting the rest of the robot.
You may also be asked about memory, threads, networking and Linux.
Prepare one system you developed or improved.
Explain:
- What problem the system was intended to solve.
- Which software components depended on it.
- How information moved between components.
- What went wrong during testing.
- How you identified the cause.
- What trade-offs you considered.
- How you measured whether the improvement worked.
A strong explanation of a system failure and its correction can be more valuable than a long list of robotics frameworks.
Build your first robotics platform project
Create a robot messaging system
A useful beginner project is to build a small software platform that simulates communication between a robot sensor and two applications.
One application uses the latest sensor measurement to represent the robot's current state.
The other records measurements for later analysis.
The project introduces middleware, message queues, timestamps and performance debugging.
You can complete the first version using Python without physical robotics hardware.
Step 1: Define the system
Create three software components:
Sensor publisher: Generates simulated measurements at regular intervals.
Live-state consumer: Uses sensor measurements to display or process the robot's most recent state.
Recording consumer: Preserves the measurements for later analysis.
For example, the sensor might publish a simulated distance measurement every 20 milliseconds.
Each message should contain a sequence number, timestamp and measurement value.
Document the measurement units and timing assumptions.
Step 2: Establish normal operation
Begin with a publisher generating measurements at a fixed rate.
Configure both consumers to process the incoming messages without delays.
Record when each message was created, received and processed.
Verify that the live-state consumer receives reasonably fresh information and that the recording consumer preserves the expected sequence.
This provides a baseline for later comparisons.
Step 3: Introduce a slow consumer
Modify the live-state consumer so that it occasionally takes longer to process a measurement.
For example, introduce a controlled processing delay.
Observe what happens when the publisher produces new measurements faster than the consumer can handle them.
Depending on your implementation, messages may accumulate, be replaced or cause the publisher to wait.
Record the observed behavior.
Step 4: Compare message-queue strategies
Experiment with different queue policies.
Strategy A: Retain several measurements
Allow the consumer to process a queue containing several older measurements.
Strategy B: Retain only the newest measurement
Replace waiting measurements with newer data so the consumer can use a fresher reading.
Compare the two approaches using the same simulated input.
Measure:
| Metric | What it tells you |
|---|---|
| Message age | How old a reading is when the consumer uses it |
| Queue length | How many messages are waiting |
| Messages processed | How many readings the consumer handles |
| Messages replaced or dropped | How many readings are not consumed |
| Processing delay | How long the consumer takes to handle a message |
The objective is to understand the trade-off between preserving every measurement and providing the freshest available information.
Step 5: Introduce a failure
Simulate a communication interruption or consumer restart.
Observe whether messages are lost, delayed or processed after recovery.
Define what successful recovery should mean for each application.
For example, the live-state consumer may need to resume using fresh measurements, while the recording consumer may need to identify a gap in its history.
A restarted process is not necessarily a fully recovered system.
The application should return to the behavior required by its purpose.
Step 6: Add diagnostic information
Create logs showing when messages are generated, received and processed.
Track queue length, message age and sequence numbers.
Use this information to identify where delays or losses occur.
For example, you might determine that sensor generation remains consistent while the live-state consumer falls behind.
This demonstrates how platform engineers use observability to diagnose performance problems.
Step 7: Improve the architecture
Separate the message definitions, queue behavior and application logic into reusable components.
Add automated tests that verify message ordering, queue limits and recovery behavior.
Document how another developer could use your messaging interface.
The objective is to turn a small experiment into a reusable software component.
Step 8: Document your findings
Prepare a short technical report explaining the architecture and results.
Compare the queue strategies and show how they affect message freshness and completeness.
Explain which approach is more suitable for a live robot-state application and what a recording system would need to preserve complete data.
What to include in your portfolio
- Python source code and installation instructions.
- A diagram showing the publisher and two consumers.
- A documented message format.
- Normal and delayed-consumer test scenarios.
- Plots or tables comparing message age and queue behavior.
- Logs showing a simulated failure and recovery.
- Automated tests for message ordering and queue handling.
- A README explaining the architecture and engineering trade-offs.
An optional advanced extension
Move the project into ROS 2.
Use ROS 2 publishers and subscribers to exchange simulated sensor information.
Experiment with supported Quality of Service settings and observe how they affect communication under different conditions.
Use available tracing tools to investigate callback timing and message processing.
Compare the results with your original Python implementation.
This introduces a real robotics middleware environment while preserving the same engineering principles.
Where to go next
- ROS 2 — Official Documentation
Learn how ROS 2 connects robotic software components through publishers, subscribers, services and other communication mechanisms.
- ROS 2 — Quality of Service Settings
Explore how ROS 2 handles message history, reliability and communication requirements.
- ROS 2 Tracing
Learn how to inspect timing and software execution in robotics systems using tracing tools.
- OpenTelemetry — Distributed Tracing
Study how software operations can be traced across multiple services to identify delays and failures.
Start with a simple communication system you can explain completely.
Once you understand how messages move between components, how delays arise and how failures affect the applications, progress toward more complex robotics software involving middleware, distributed processes and physical robots.
Sources and methodology
Research methodology
Employer advertisements were collected November 2, 2026. Nine full stored sources across eight employers were contextually reviewed November 10, plus one boundary case. The original primary cohort contains eleven advertisements across eight employers. It is a dated selected sample, not a current vacancy count or skill-frequency study.
The guide covers shared robot and autonomous-vehicle middleware, runtime, Linux/OS platform, deployment tooling, developer infrastructure and robot-facing services. Primary collection-data tooling is excluded. Some roles overlap embedded systems, simulation or cloud infrastructure; responsibilities determine inclusion. Source archives and original classifications remain unchanged.
The $215,000 estimate is the median of seven explicitly annual U.S. salary-range midpoints from six employers, rounded to the nearest $1,000. Two distinct Zoox requisitions at different seniority levels contribute. The sample emphasizes experienced engineering positions and is not an entry-level rate or representative market median. Bonus and equity are excluded. Structured salary fields do not consistently establish base-pay status. The complete derivation preserves observations, source clauses and exclusions.
The message-history visual uses invented arrivals at 0, 20 and 40 ms and one FIFO dequeue at 50 ms. The modeled subscriber retains the newest three or one samples. All messages have already arrived; no consumption occurs beforehand. The next sample ages are 50 and 10 ms respectively. Transport, retransmission, callback execution and scheduling are omitted. This illustrates a retained-history tradeoff, not a real middleware benchmark or delivery guarantee.
Source references (18)
- Robotics Platform: reviewed employer evidence
Selected sources, qualification spans and immutable source hashes.
- Black Scarab: Robotics Platform compensation
Seven annual observations, source clauses, scope and exclusions.
- Illustrative message-history model
Exact arrival times, queue depths, dequeue time and assumptions.
- Applied Intuition: Software Engineer - Middleware
Employer advertisement collected November 2, 2026.
- FieldAI: Senior/Staff Software Engineer, Robotics Platform
Employer advertisement collected November 2, 2026.
- Figure: Senior Software Engineer, Middleware Productivity
Employer advertisement collected November 2, 2026.
- Humanoid: Senior Platform Software Engineer
Employer advertisement collected November 2, 2026.
- Nimble Robotics: Senior Software Engineer, Robotics Platform
Employer advertisement collected November 2, 2026.
- Skild AI: Senior Robot Infrastructure Engineer
Employer advertisement collected November 2, 2026.
- Waymo: Onboard Developer Platform Software Engineer
Employer advertisement collected November 2, 2026.
- Zoox: Software Engineer - Robot Software Infrastructure
Employer advertisement collected November 2, 2026.
- Zoox: Senior Software Engineer - Robot Software Infrastructure
Employer advertisement collected November 2, 2026.
- ROS 2: Official Documentation
Official robotics software communication, services and development documentation.
- ROS 2: Quality of Service Settings
Official rendered QoS documentation; source reference is also preserved below.
- ROS 2: Middleware interface design
Official architecture rationale for shared communication interfaces and middleware abstraction.
- ROS 2: Quality of Service settings
Official retained history, queue depth, reliability and compatibility concepts.
- ROS 2 Tracing
Maintainer documentation for ROS 2 tracing and timing investigation.
- OpenTelemetry: Traces
Official reference for connected spans and operation tracing.