When writing safety-critical software, demonstrating compliance with a set of guidelines can present a formidable challenge. Large companies solve this paperwork problem by hiring functional safety engineers. As a startup that values its agility, we need a way for these documents to be the natural byproduct of our normal engineering process, eliminating the need for additional resources. In order to achieve that goal, we’re developing a solution to automate the generation of compliance documentation.
The conversation around self-driving cars has zeroed in on the question of safety, and for good reason. The tragic death of Elaine Herzberg by an autonomous vehicle has revealed the many ways that self-driving cars have not yet caught up with the buzz that surrounds them. Rightfully, the question of blame is the focus.
The Rust programming language provides powerful guarantees around memory and thread safety. It also exposes all the knobs required for implementing custom rules, enabling a project to make additional guarantees and enforce opinions on best practice. Embedded standards are very opinionated about software practices—like using floating point values as loop counters or the number of possible exit points of a function—and Rust’s defaults don’t prevent every runtime panic (for example, recursion that goes too deep and overflows the stack).
The first time I was invited to join a field test for OSCC, our open source car control platform, I was beyond excited. Driving a car with a game controller seemed like playing a real life racing game. As an engineer previously focused on game development, witnessing how the hardware, firmware, and software interacted with real-world physical interference captured my curiosity.
In software systems where components talk to each other, data serialization is an essential challenge. A system's encoding format has to hit the right balance of requirements around performance, expressiveness, tooling quality, and ease of correct usage.
Shea Newton, Nathan Aschbacher
We examine the challenges of using C and its associated standards and tools when applied to safety-critical applications.
Zachary Pierce, Nathan Aschbacher
We examine the effect differences that time budget consumption of cross-component message serialization has on overall system safety.