freehire launches on Product Hunt on 26 August.

Follow →

Software Engineer

Summary

Own a Rust codebase powering BLE communication between brake controllers, handheld devices, and a React Native mobile app on ESP32-C6 firmware, focusing on integration, protocol versioning, and hardware debugging.

Salary: $120,000 – $150,000 per year + Super

About the role

This role owns the Rust codebase that devices communicate through. Brake controllers, a handheld dial, and new products in development all communicate with each other and with a mobile app over a protocol library built and maintained in-house. The firmware is Rust on ESP32-C6; the same library compiles into the phone app through FFI. You would be taking over a mature codebase from a remote engineer who has been its primary author, with a handover period and their support while you come up to speed. Some products are shipping, some are close, and a lot of what remains is integration - making the pieces we have built actually work together, on real hardware, every time.

Key responsibilities

  • Own the in-house Rust protocol library: the schema DSL and macros that generate typed BLE APIs from a single device definition, the embedded and desktop/mobile backends behind them, and its releases to the private registry.

  • Own the device firmware: brake controller and dial run Rust on ESP32-C6 under ESP-IDF, covering BLE services, over-the-air update, on-device logging and persistent configuration.

  • Own the Rust-to-mobile boundary - the FFI layer that puts the same library inside the React Native app - along with the desktop and diagnostic tooling the team uses daily.

  • Version the protocol so that it stays compatible. Firmware in the field and an app already installed have to keep working when the schema moves.

  • Take new products from definition to shipping, and finish the ones already in progress. Most of the remaining work across the range is integration.

  • Set the engineering standard: architecture decisions, code review, test coverage, and the build and release tooling everyone else depends on.

  • Debug against physical hardware, including hardware-in-the-loop testing and BLE behaviour across iOS and Android.

About you

  • Experience with professional software development, at a level where you have owned a substantial codebase and been accountable for its direction.

  • A systems programming background - C, C++, Zig or similar - with a real understanding of memory, concurrency and the cost of an abstraction.

  • Embedded experience: firmware on a microcontroller, debugged against physical hardware.

  • Rust is what the codebase is written in. Prior Rust experience is a significant advantage, but genuine interest in working in it daily is what is required.

  • The judgement to work on a codebase you did not write: reading before rewriting, and knowing which of the two a given problem calls for.

  • Willingness to review and mentor. You would be the most senior software engineer in the room.

  • Nice to have: Rust in production, particularly async, trait design, and procedural macros.

  • Nice to have: BLE at protocol level: GATT, pairing and bonding, MTU negotiation, connection intervals.

  • Nice to have: ESP-IDF, or another embedded RTOS.

  • Nice to have: Cross-language bindings or FFI work, particularly into mobile.

About us

Aston Dynamics builds brake-by-wire systems for trailers and autonomous vehicles. The electric-over-hydraulic (EoH) platform replaces conventional pneumatic and mechanical trailer braking with electronically controlled hydraulic actuation, giving faster, more precise, independently controllable braking. The team is small and growing with R&D focus. The firmware, electronics and mechanical engineers who build the hardware sit in the same office, and control systems work is owned in-house.

See also

Tailor your CV for this role?

We couldn't check your fit for this role — add a CV to your profile to see it next time.

A new version of freehire is available