The full scope across this batch: POST /sessions key→token exchange, SessionStore dual-index with revoke_by_id, CLI Bearer injection (ONTOREF_TOKEN), ontoref setup --gen-keys, install scripts, daemon config form roundtrip, ADR-004/005, on+re self-description update (fully-self-described), and landing page refresh.
9.0 KiB
theme, title, titleTemplate, layout
| theme | title | titleTemplate | layout |
|---|---|---|---|
| default | Why I Needed Rust | %s - Rustikon 2026 | cover |
Why I Needed Rust
Finally Infrastructure Automation I Can Sleep On
Jesús Pérez Lorenzo Las Palmas, Spain Rustikon 2026
The Problem Statement
After decades in infrastructure, I was exhausted.
Not by the work.
By the failures.
layout: two-cols
38 Years of Infrastructure
1987 — 2025
::left::
- Perl (1990s)
- Python (2000s)
- Bash (2000s)
- Chef (2010s)
- Ansible (2010s)
- Terraform (2010s)
- Go (2010s-2020s)
- ???
::right::
"I've tried everything to solve the provisioning problem."
Each time, I thought I had the answer.
Each time, reality proved me wrong.
The Perl Era (1990s)
Power and Chaos
The Reality: We could break anything
- Metaprogramming that was beautiful and terrifying
- No safety net
- Silent failures at 3 AM
- Lesson: Power without safety is a disaster
The Python Pragmatism (2000s)
Flexible, Rapid, Trusted
The Problem: Nothing stopped you from being wrong
- Type hints came late (and optional)
- Runtime errors > compile-time errors
- Scripts that "worked on my machine"
- Lesson: Pragmatism without guarantees is fragile
The Cloud Scale (2010s)
More Tools, Same Problems
Tools arrived: Ansible • Terraform • Chef • Puppet
What didn't? The fundamental problems
- Still fighting type safety
- Still discovering errors in production
- Still maintaining undocumented scripts
- Lesson: More tools don't solve paradigm problems
The Breaking Point
I could automate infrastructure
But I couldn't make it reliable
I couldn't prevent mistakes
I couldn't sleep
layout: section
The Real Problems
What Actually Fails
What Actually Fails
- Typos discovered at 3 AM in production configs
- Scripts that "worked on my machine" fail everywhere else
- Nobody understands the code even 6 months later
- Changes that break other things silently
- Secrets scattered everywhere without audit trails
It's about reliable deployment that doesn't cause panic.
The Cost
Not just technical:
- Hours debugging cryptic errors
- Sleep lost to on-call incidents
- Team stress and burnout
- Lack of confidence in deployments
- Technical debt that compounds
- The thing you can't measure: fear
The Realization
The tools weren't the problem.
The languages weren't the problem.
The paradigm was the problem.
I needed something that:
- Forced clarity (not enabled chaos)
- Prevented errors (before production)
- Made assumptions explicit (not hidden)
- Gave confidence (not anxiety)
layout: section
Rust Enters the Picture
The Shift
First Encounter with Rust
"Memory safety?"
"Do I really need this?"
This looks... complicated.
Initial reaction: skepticism mixed with curiosity
The Shift: Type System as Defense
Wait.
The compiler could prevent my mistakes?
Before they reach production?
Before I even run the code?
This changed everything.
What Changed For Me
| Problem | Old Way | Rust Way |
|---|---|---|
| Typos in config | 3 AM incident | Compile error |
| "Works on my machine" | Hope and prayers | Guaranteed same output |
| Secrets leaking | Runtime discovery | Type system prevents it |
| Undocumented constraints | Institutional knowledge | Compiler enforces it |
| Silent failures | Debug for hours | Explicit error handling |
The Infrastructure Insight
Compiler enforced them everywhere.
Changes forced adaptation everywhere.
No silent failures.
This is not a small thing.
The Human Impact
When the system is trustworthy:
- ✓ Sleep comes back
- ✓ Confidence returns
- ✓ Team trusts the automation
- ✓ Stress decreases
- ✓ You can actually rest
layout: section
What I Built
The Implementation
Current Projects
Building in Rust:
- project-provisioning — Infrastructure provisioning orchestrator
- secretumvault — Secrets management with PQC
- typedialog — Interactive configuration forms
- daemon-cli — Unified service abstraction
Not selling products.
Demonstrating that it works.
The Key Patterns
Type-safe declarations
- Schema defines constraints at compile-time
Schema-driven generation
- Forms, validation, templates all derived from one source
Distributed orchestration
- Control, not chaos. Semaphore-based coordination
Unified governance
- Auth, audit, compliance as first-class concerns
Each pattern prevents specific failures.
Why Rust Specifically
Performance No overhead, can be truly reactive
Ecosystem Coherent tools (Nickel, Nushell, KCL) not disparate solutions
Single Binary Deploy anywhere, no dependency hell
Community People who care about correctness
layout: section
What I Learned
The Philosophy
Three Key Insights
1. Infrastructure is your core, not an afterthought
It's not a support function. It's the foundation your business runs on.
2. Reliability requires preventing errors, not handling them
You can't code around a broken paradigm.
3. Engineers deserve better than anxiety
We shouldn't be woken at 3 AM by infrastructure failures.
The Age Advantage
I've seen technologies come and go.
Rust isn't hype. It solves real problems I've had for decades.
Being older isn't a liability.
It's an advantage.
I can tell you: this matters.
What Infrastructure Actually Is
- Core of your business — not a cost center
- Must evolve with business needs
- Can't be fragile — customers depend on it
- Can't cause panic — engineers can't be on-call all the time
- Engineers deserve to rest — this is non-negotiable
layout: section
The Ask
For Everyone Here
For Infrastructure Veterans
If you've been frustrated like me:
- ✓ Listen up
- ✓ Rust solves the problems you know
- ✓ Not problems you've never had
- ✓ Give it a real chance
- ✓ Your sleep will thank you
For Younger Engineers
Learn from someone who tried everything:
- ✓ Don't waste 30 years on fragile infrastructure
- ✓ Start with type safety
- ✓ Build for reliability from- day one
- ✓ You'll thank yourself later
The Simple Ask
Think differently about infrastructure.
Type safety isn't luxury.
It's foundation.
You deserve better than 3 AM panic.
layout: cover
Why I Needed Rust, Finally
Because I Wanted to Sleep
Questions?
Resources & Contact
Projects:
- github.com/jesusperez/provisioning
- github.com/jesusperez/secretumvault
- github.com/jesusperez/typedialog
Community:
- Rust Las Palmas — rust-laspalmas.dev
Contact:
- jesusperez.pro
Speaker Notes
Delivery Tips
- Opening: Vulnerable, honest. Show the struggle before the solution.
- Tone shift: Around slide "The Shift" — move from struggling to architect who figured it out.
- Key moments: Pause after emotional beats. Let them sink in.
- Age: Not an apology, not bragging. Just perspective.
- Closing: Hopeful, inclusive. This is for everyone.
Audience Engagement
- Opening question: "Who's been woken up at 3 AM by infrastructure failure?" (show of hands)
- Pause points: After problem slides, let silence sit
- Expression: Show relief when talking about Rust solution
- Ending: Direct eye contact, slow delivery
Timing
- 2 min: Opening (slides 1-2)
- 5 min: Journey (slides 3-8)
- 5 min: Problems (slides 9-12)
- 6 min: Rust discovery (slides 13-17)
- 5 min: Implementation (slides 18-20)
- 4 min: Philosophy (slides 21-23)
- 2 min: Call to action (slides 24-26)
- 1 min: Closing (slide 27)
- Total: 30 minutes + Q&A
If Extending to 40 min
Add stories:
- Specific 3 AM incident (2 min)
- First Rust project struggles (2 min)
- Team adoption journey (2 min)
- Measurable improvements (2 min)