Description
Shield AI is seeking a Staff Engineer for its Engineering Tooling & Observability team. The successful candidate will design, build, and maintain engineering tools that help developers understand and diagnose complex software systems.
Responsibilities:
- Design, build, and maintain engineering tools that help developers understand and diagnose complex software systems.
- Build tooling that brings together logs, telemetry, events, faults, diagnostics, and system state to make system behaviour easier to investigate.
- Build C++ and Python applications, libraries, services, and integrations that interact with complex onboard and distributed software systems.
- Create tools that correlate information across software components, processes, and machines to help engineers understand what happened and where to investigate.
- Build user interfaces and interactive visualisations using React and modern web technologies to explore system behaviour and engineering data.
- Design effective workflows for debugging, fault investigation, system introspection, and engineering analysis.
- Develop APIs and web services that support engineering tooling products and expose system data in useful ways.
- Improve the Developer Experience (DX) of working with complex systems by identifying engineering friction and turning it into effective tooling.
- Work directly with software, autonomy, systems, and test engineers to identify high-value problems and develop practical solutions.
- Treat internal tooling as a product, incorporating feedback from engineers and continuously improving usability and effectiveness.
- Establish reusable UI components, UX patterns, libraries, and engineering standards for system tooling.
- Contribute to the architecture and technical direction of the Engineering Tooling capability.
Requirements:
- Strong software engineering experience with modern C++, ideally C++17/20 or later.
- Strong Python development experience.
- Experience debugging and reasoning about complex, concurrent, distributed, or component-based software systems.
- Experience designing and maintaining production-quality software, libraries, services, APIs, or applications.
- Strong understanding of software architecture and the ability to navigate and reason about large codebases.
- Experience building tools for software engineers or other technical users.
- Experience working with logs, telemetry, metrics, events, traces, faults, or other diagnostic data.
- Ability to reason about behaviour across multiple software components and correlate information from different sources.
- Strong Linux development and debugging skills.
- Experience designing APIs, services, and software interfaces.
- Ability to independently identify engineering problems worth solving and turn ambiguous needs into practical, reliable tooling.
- Ability to make sound architectural decisions and collaborate effectively across engineering teams.
- Strong software engineering practices, including testing, code review, maintainability, documentation, and performance awareness.
- A product mindset toward internal engineering tools, with attention to usability and developer experience.
Nice to Have:
- Experience with React, TypeScript, and modern web application development.
- Experience with robotics, autonomous systems, embedded systems, or other complex physical systems.
- Experience with interactive data visualisation and presenting complex engineering data effectively.
- Experience with time-series, event, telemetry, or other high-volume engineering data systems.
- Experience with distributed systems and messaging architectures.
- Systems programming experience, including networking, IPC, and communication protocols.
- Experience designing UI/UX for technical or engineering applications.
- Experience developing desktop engineering applications.
- Experience analysing large-scale telemetry or diagnostic datasets.
This listing is enriched and indexed by YubHub. To apply, use the employer's original posting:
https://jobs.lever.co/shieldai/7a457f57-0cc9-46d6-82a5-ba2361bfb1c6