Systems Software & Middleware Engineer (C++)
- Type
- Full time
- Posted
- 2H AGO
A signal privately tells Maxinsights you're interested. It is not a job application.
About the role
Job Description:
Location: Santa Clara, CA, United States
Work Arrangement: On-site
We are looking for a Systems Software & Middleware Engineer to develop and optimize high-performance software for robotics data collection systems. In this role, you will work across software and hardware interfaces to build reliable device-side data recording systems, develop efficient data communication middleware, and improve overall system performance.
You will collaborate closely with hardware, sensor, algorithm, testing, and data platform teams to integrate components, troubleshoot issues, and deliver robust software for real-world robotics applications.
Key ResponsibilitiesSystem Integration & Optimization: Debug and optimize integrated hardware and software systems for data collection, working closely with hardware engineers to validate system functionality, improve stability, and enhance performance.
Device-Side Data Recording: Develop on-device data recording systems that manage video, audio, IMU (inertial measurement unit) data, and device status information, including data organization, buffering, storage, and integrity validation.
High-Performance Middleware Development: Design and implement device-side middleware for efficient data exchange, including publish-subscribe messaging, inter-process communication (IPC), shared memory, message queues, and zero-copy data transfer.
Cross-Functional Integration & Delivery: Collaborate with sensor, algorithm, hardware, testing, and data platform teams to integrate system components, validate performance, troubleshoot issues, and support product delivery.
Bachelor's degree in Computer Science, Software Engineering, Electrical Engineering, Automation, or a related technical field.
Strong proficiency in C++ or Python, with solid programming fundamentals, good software engineering practices, familiarity with common design patterns, and experience with code refactoring.
Proficiency in C++11 or later, Linux development environments, and build tools such as GCC, G++, and CMake.
Strong foundation in Linux systems programming, including process and thread management, memory management, network programming (TCP/UDP), and serial communication.
Strong debugging and problem-solving skills, with the ability to independently own a software module throughout its lifecycle, from design and development through testing, deployment, and maintenance.
Experience with embedded Linux systems, including Device Tree Source (DTS) configuration, device driver configuration, or system boot process debugging.
Familiarity with multimedia frameworks and pipelines, including V4L2, GStreamer, and FFmpeg, with experience optimizing video and audio processing workflows.
Experience working with hardware-specific multimedia frameworks or embedded media stacks is a plus.
Health insurance
Vision care
Dental coverage
401(k)
Paid holidays
PTO (Paid Time Off)
Sick leave
Similar roles
Software Engineer, Storage Systems (Agent Infra)Baseten · San Francisco · New York
Senior Software Engineer, Tools - Unpublished R&D ProductRiot Games · Shanghai
Entry-level Software Engineer–DevelopersBoeing
Senior Software EngineerAvalara · Remote
Software Engineer - C++/Linux -AI GatewayNutanix Inc · Vancouver
Software Engineer – External Compute & Application SoftwareCadillac