Compose

Reliable software: An interview with Jon Gjengset

17 snips
Dec 25, 2024
In this insightful discussion, Jon Gjengset, an expert in high-quality software engineering, tackles the nuances of developing reliable Rust applications. He emphasizes the importance of effective testing techniques like fuzz testing and model checking to enhance software quality. Gjengset navigates the balance between creativity and quality under tight deadlines, advocating for collaboration among small developers in a challenging capitalist landscape. He also delves into the shift from object-oriented to functional programming, highlighting the value of static typing for improving code reliability.
Ask episode
AI Snips
Chapters
Transcript
Episode notes
ADVICE

Three-Step Porting Process

  • When porting software, start with a verbatim rewrite, then catch up to the original.
  • Finally, improve and optimize, ensuring equivalence through input-output or fuzz testing.
INSIGHT

Fuzz Testing and Property Testing

  • Fuzz testing, or property-based testing, involves generating random inputs to find crashes or violations of expected behavior.
  • Advanced fuzzers use strategies like concolic execution to intelligently explore code paths, increasing bug detection efficiency.
ANECDOTE

Deep Dive Debugging

  • Jon Gjengset recounts discovering bugs arising from complex interactions between kernel parameters, firewall rules, and Rust versions.
  • He emphasizes the satisfaction of uncovering such issues, yet acknowledges the need for varied work beyond debugging.
Get the Snipd Podcast app to discover more snips from this episode
Get the app