Neon Law
  • Notations
  • Nimbus
  • Workshops
  • Show-and-tell
  • Sign in
← Rust in Peace

The Rails Lesson

Chapter 2 of 7 · Section 6 of 51

Sections

1. Intro

  • 1. Agenda
  • 2. Las Vegas, 2011 — where I learned to program

2. The Rails Lesson

  • 3. Convention over configuration
  • 4. The database was a shared design
  • 5. Controllers — where a request becomes a decision
  • 6. Parameter handling — the shape of what comes in
  • 7. Middleware — the layer I didn't know I needed
  • 8. "It works on my machine"
  • 9. How new all of this still was
  • 10. From Rails conventions to Navigator
  • 11. A eulogy for my programming career

3. Shared craft compounds

  • 12. Keep domain seams in Rust, where interest compounds
  • 13. Widely available — governed in the open
  • 14. A cautionary tale — Java, Oracle, and the price of a single owner
  • 15. Say it with your whole chest

4. Six ways to know a change holds

  • 16. One giant change deserves more than one glance
  • 17. The compiler asks whether the program can be true
  • 18. Clippy and rustfmt ask whether the code speaks our dialect
  • 19. Tests ask whether the promise still holds at the boundary
  • 20. Bloom turns verification into a learning loop
  • 21. Marketing copy must explain the way, not only the claim
  • 22. Three workshops, three people, one method
  • 23. Fast generation, slow enough verification

5. From Law to Workflow

  • 24. The goal — deterministic workflows from law
  • 25. Step 1 — read the law
  • 26. Step 2 — write the behavior before the code
  • 27. "It works on my machine" — so we stopped trusting my machine
  • 28. Step 3 — the template: a questionnaire and a workflow
  • 29. Step 4 — the attorney gate is a graph invariant
  • 30. Step 5 — signature is a modular step
  • 31. Step 6 — the filing, run durably
  • 32. "It works on my machine" — even when my machine dies
  • 33. Why a workflow beats a prompt
  • 34. Privacy-preserving operations are part of the product

6. Rust All the Way Down

  • 35. We did not start all Rust
  • 36. From Postgres to Rust — with a bridge
  • 37. The runtime story: keep the seam, change the engine
  • 38. One deployment bucket; many matter repositories
  • 39. Rust where we can own the path; partners at the edge
  • 40. Rust reaches the places lawyers work
  • 41. I want a commercial relationship with everything I depend on
  • 42. Always the latest, always Rust
  • 43. Swap the seam — it still works
  • 44. The crates we actually run on
  • 45. Ethics is part of the stack
  • 46. The simplest developer environment I can get away with
  • 47. The online developer environment
  • 48. "It works on my machine in the cloud — and on yours, and on my client's"
  • 49. Where we are today — live by August 19
  • 50. Betting on ourselves — Rust in peace

7. Wrap Up

  • 51. Take the method home
✓

Parameter handling — the shape of what comes in

Then we learned to distrust the input. Parameter handling was the convention for taking what a user sent and making it safe before it touched anything that mattered.

Presenter notes

Parameter handling was my first lesson in the trust boundary. Everything a user sends is suspect until you have named it, permitted it, and shaped it. Rails made that a convention instead of a habit you hoped everyone remembered. That lesson runs straight through Navigator: the questionnaire is a typed, ordered set of answers, not a free-form blob, and the privacy rule — identifiers and counts in telemetry, never client content — is the same discipline, grown up. You decide the shape of what comes in.

View all slidesOpen display
← PreviousNext →
Contact us — support@neonlaw.orgTransparency & public disclosures
  • Neon Law Foundation
    5150 Mae Anne Ave Ste 405-9999, Reno, NV 89523

Neon Law Foundation is a Nevada nonprofit corporation and a 501(c)(3) tax-exempt organization. It does not practice law and cannot represent you.

Nothing on this site is legal advice, and nothing here creates an attorney-client relationship.

© 2026 Polin Shook & Neon Law