--- theme: default title: Why I Needed Rust titleTemplate: '%s - Rustikon 2026' layout: 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 Promise: We could do anything 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 Appeal: Rapid development, great community 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 changed? The syntax 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 not about deployment. 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
"Type safety?" "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
I could define constraints in code. 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
Type System Prevents entire categories of errors before execution 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
At 63, I have perspective. 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)