sinclairlabs

Richard Brodie

Senior Systems Engineer

profile photo

About me

A highly competent and flexible software engineer offering over 12 years of professional experience with a particular focus on rust and embedded systems programming. I have extensive background in both the automotive and tele­communications industries, with a proven track-record of thriving in fast-paced startups. I possess exceptional communication skills, and one of my strongest skills is being a fast learner who can easily get up to speed in unfamiliar domains and technologies.

Experience

Zeekr Tech EU (CEVT)

Senior software engineer

-

go

Part of a large team responsible for designing and building two cloud-based systems used by the onboard vehicle journey planning systems. One to take into account projected charge and incorporating charging stations in a planned route. The other an orchestration system to use the vehicle battery to augment the electrical grid. This team presents unique challenges as it has recently been expanded threefold and I am the most senior and experienced developer.

  • use machine learning to predict vehicle SoCs and market prices
  • rewrite a python prototype in go
  • deploy to azure using terraform
  • mentor the junior developers in the team and develop a set of coding standards
  • architect a complex suite of go micriservices that communicate heavily over gRPC

Satcube

Senior software engineer

-

rust

Part of a small team responsible for designing and building a custom embedded operating system for a satellite broadband terminal based on yocto and using a rust-written userspace running on a cortex a53/m7.

  • created a suite of systemd services written in rust to handle functionality such as antenna positioning and network management
  • used tokio to handle functionality effectively in a highly resource constrained environment
  • maintained and developed a rust-based redis message bus to tie the systemd services together

Einride

Senior software engineer

-

rust go

Part of the Remote Operate team, which was responsible for Einride’s mission-critical teleoperations functionality. This rust- and go-based system streams ultra low latency video and control signals between a remote vehicle and a control station using webRTC and gRPC. On the vehicles I maintained the service that interacted with the C-based VCU, again using protobuf heavily and requiring a strong knowledge of embedded C.

  • We developed rust libraries for the teleoperations stack, using tokio, gRPC, and protobuf heavily
  • developed from scratch a custom async libinput device driver written in rust
  • developed a rust-based wrapper for gstreamer to stream low-latency audio from the vehicles
  • a pubsub/protobuf based service implemented in go for remote orchestration of heavily-locked down linux control stations
  • designed and implemented a saltstack-based deployment system

Minna Technologies

Senior software engineer

-

scala typescript

Part of the core “Switch” team, responsible for two of Minna’s key products: the user-facing Switch product and the customer-facing Supplier Portal which suppliers use to manage their products and orders. In addition, we have been working on extraacting this to an independent application, which has been the largest single project I have worked on, and it has offered some unique challenges.

  • develop components comprising both backend scala and frontend typescript
  • manage deployment and production infrastructure
  • take regular scheduled responsibility to triage and project manage production bugs

Volvo Cars

Senior software engineer

-

python matlab

Part of a team in the ADAS safety software division. My role was primarily to overssee and architect the redesign and reimplementation from scratch of a large data ingestion pipeline. The eventual goal was to be able to practically analyse all 12 petabytes of test data gathered by the autonomous cars.

  • written in Python making heavy use of Numpy and Pandas
  • ingest and parse, collate, then run statistical analysis on vast amounts of data
  • massively parallelised execution using an HPC cluster
  • efficiency and scalability primary concerns, sped up the process from days to hours
  • build technical knowledge in the team
  • set up plans to rewrite python components in Rust or C++ for increased efficiency

Icomera

Software engineer

-

ruby

Part of a small team responsible for developing and maintaining a suite of mission-critical central communication nodes; a global fleet of thousands of wifi routers is centrally managed and the huge amounts of data they produce is received and analysed via these systems and their extended infrastructure. The routers and our central systems communicate using a combination of low level protocols and high throughput APIs where efficiency and performance are critical.

  • overseeing the deployment processes of these systems
  • Extensive use of jenkins and docker
  • Helped investigate kubernetes as a replacement for our manual deployments
  • working daily with the product owners to design and architect deployments
  • collaborate with the embedded firmware team

Projects

fit-rs

A rust crate for parsing FIT files from Garmin devices

Garmin watches and other fitness devices produce a heavily compressed binary-encoded file called .FIT, with all data recorded in a continuous stream. This crate

crust-engine

A WGPU game engine written in rust

A handwritten retro game engine designed with 90s style Lucasarts point-and-click games in mind

manta-ray

A rust-based raytracer

An excuse to learn more about vectors and mathematics