Version 1.0
Session
Wednesday 09:00
Scaling Rails to a million requests
Scaling Rails to a million requests. What actually breaks first. This abstract is demo content generated by demo:seed.
A longer description for "Scaling Rails to a million requests".
It covers the background, a live demo and a short Q&A at the end. All of this is generated demo data so you can click through frab.
Growing a local user group
Growing a local user group. From 5 to 300 people. This abstract is demo content generated by demo:seed.
A longer description for "Growing a local user group".
It covers the background, a live demo and a short Q&A at the end. All of this is generated demo data so you can click through frab.
CSS layout in 2026
CSS layout in 2026. Grid, subgrid and beyond. This abstract is demo content generated by demo:seed.
A longer description for "CSS layout in 2026".
It covers the background, a live demo and a short Q&A at the end. All of this is generated demo data so you can click through frab.
Threat modeling for small teams
Threat modeling for small teams. Start on a whiteboard. This abstract is demo content generated by demo:seed.
A longer description for "Threat modeling for small teams".
It covers the background, a live demo and a short Q&A at the end. All of this is generated demo data so you can click through frab.
Wednesday 10:15
Why we left microservices
Why we left microservices. And what we built instead. This abstract is demo content generated by demo:seed.
A longer description for "Why we left microservices".
It covers the background, a live demo and a short Q&A at the end. All of this is generated demo data so you can click through frab.
Zero downtime migrations
Zero downtime migrations. A hands-on workshop. This abstract is demo content generated by demo:seed.
A longer description for "Zero downtime migrations".
It covers the background, a live demo and a short Q&A at the end. All of this is generated demo data so you can click through frab.
Component libraries that survive
Component libraries that survive. Versioning and deprecation. This abstract is demo content generated by demo:seed.
A longer description for "Component libraries that survive".
It covers the background, a live demo and a short Q&A at the end. All of this is generated demo data so you can click through frab.
Hardening a small fleet
Hardening a small fleet. Ten changes that matter. This abstract is demo content generated by demo:seed.
A longer description for "Hardening a small fleet".
It covers the background, a live demo and a short Q&A at the end. All of this is generated demo data so you can click through frab.
Wednesday 11:30
Building a plugin system
Building a plugin system. Extension points done right. This abstract is demo content generated by demo:seed.
A longer description for "Building a plugin system".
It covers the background, a live demo and a short Q&A at the end. All of this is generated demo data so you can click through frab.
The art of the postmortem
The art of the postmortem. Blameless, but useful. This abstract is demo content generated by demo:seed.
A longer description for "The art of the postmortem".
It covers the background, a live demo and a short Q&A at the end. All of this is generated demo data so you can click through frab.
Passkeys in production
Passkeys in production. Killing the password. This abstract is demo content generated by demo:seed.
A longer description for "Passkeys in production".
It covers the background, a live demo and a short Q&A at the end. All of this is generated demo data so you can click through frab.
Wednesday 12:30
Ask the organizers anything
Ask the organizers anything. Open Q&A. This abstract is demo content generated by demo:seed.
A longer description for "Ask the organizers anything".
It covers the background, a live demo and a short Q&A at the end. All of this is generated demo data so you can click through frab.
Wednesday 12:45
Typed Ruby in a legacy codebase
Typed Ruby in a legacy codebase. Sorbet, one file at a time. This abstract is demo content generated by demo:seed.
A longer description for "Typed Ruby in a legacy codebase".
It covers the background, a live demo and a short Q&A at the end. All of this is generated demo data so you can click through frab.
Mentoring junior developers
Mentoring junior developers. Structure beats good intentions. This abstract is demo content generated by demo:seed.
A longer description for "Mentoring junior developers".
It covers the background, a live demo and a short Q&A at the end. All of this is generated demo data so you can click through frab.
On-call without burnout
On-call without burnout. Rotations that work. This abstract is demo content generated by demo:seed.
A longer description for "On-call without burnout".
It covers the background, a live demo and a short Q&A at the end. All of this is generated demo data so you can click through frab.
Wednesday 14:00
Volunteer coordination in practice
Volunteer coordination in practice. Shifts, radios and coffee. This abstract is demo content generated by demo:seed.
A longer description for "Volunteer coordination in practice".
It covers the background, a live demo and a short Q&A at the end. All of this is generated demo data so you can click through frab.
Incident response on a shoestring
Incident response on a shoestring. Two people, one pager. This abstract is demo content generated by demo:seed.
A longer description for "Incident response on a shoestring".
It covers the background, a live demo and a short Q&A at the end. All of this is generated demo data so you can click through frab.
State management, do you even need it
State management, do you even need it. A minimalist's guide. This abstract is demo content generated by demo:seed.
A longer description for "State management, do you even need it".
It covers the background, a live demo and a short Q&A at the end. All of this is generated demo data so you can click through frab.
Wednesday 14:45
Dark mode is an accessibility feature
Dark mode is an accessibility feature. Contrast in both themes. This abstract is demo content generated by demo:seed.
A longer description for "Dark mode is an accessibility feature".
It covers the background, a live demo and a short Q&A at the end. All of this is generated demo data so you can click through frab.
Wednesday 15:15
OAuth pitfalls
OAuth pitfalls. Where implementations go wrong. This abstract is demo content generated by demo:seed.
A longer description for "OAuth pitfalls".
It covers the background, a live demo and a short Q&A at the end. All of this is generated demo data so you can click through frab.
Wednesday 16:00
Dependency scanning that developers trust
Dependency scanning that developers trust. Fewer false positives. This abstract is demo content generated by demo:seed.
A longer description for "Dependency scanning that developers trust".
It covers the background, a live demo and a short Q&A at the end. All of this is generated demo data so you can click through frab.
Wednesday 17:15
The state of Ruby concurrency
The state of Ruby concurrency. Fibers, Ractors and threads. This abstract is demo content generated by demo:seed.
A longer description for "The state of Ruby concurrency".
It covers the background, a live demo and a short Q&A at the end. All of this is generated demo data so you can click through frab.
Thursday 09:00
Hexagonal architecture in practice
Hexagonal architecture in practice. Ports, adapters, regrets. This abstract is demo content generated by demo:seed.
A longer description for "Hexagonal architecture in practice".
It covers the background, a live demo and a short Q&A at the end. All of this is generated demo data so you can click through frab.
Running a conference on frab
Running a conference on frab. Lessons from the orga desk. This abstract is demo content generated by demo:seed.
A longer description for "Running a conference on frab".
It covers the background, a live demo and a short Q&A at the end. All of this is generated demo data so you can click through frab.
Observability on a budget
Observability on a budget. Logs, metrics, traces. This abstract is demo content generated by demo:seed.
A longer description for "Observability on a budget".
It covers the background, a live demo and a short Q&A at the end. All of this is generated demo data so you can click through frab.
Building a design system from zero
Building a design system from zero. Without a design team. This abstract is demo content generated by demo:seed.
A longer description for "Building a design system from zero".
It covers the background, a live demo and a short Q&A at the end. All of this is generated demo data so you can click through frab.
Thursday 10:15
My first open source contribution
My first open source contribution. A beginner story. This abstract is demo content generated by demo:seed.
A longer description for "My first open source contribution".
It covers the background, a live demo and a short Q&A at the end. All of this is generated demo data so you can click through frab.
Continuous deployment for teams of one
Continuous deployment for teams of one. Ship on Friday anyway. This abstract is demo content generated by demo:seed.
A longer description for "Continuous deployment for teams of one".
It covers the background, a live demo and a short Q&A at the end. All of this is generated demo data so you can click through frab.
Progressive enhancement is back
Progressive enhancement is back. Less JavaScript, more product. This abstract is demo content generated by demo:seed.
A longer description for "Progressive enhancement is back".
It covers the background, a live demo and a short Q&A at the end. All of this is generated demo data so you can click through frab.
Thursday 11:00
Forms nobody hates
Forms nobody hates. Validation, errors and focus. This abstract is demo content generated by demo:seed.
A longer description for "Forms nobody hates".
It covers the background, a live demo and a short Q&A at the end. All of this is generated demo data so you can click through frab.
Thursday 11:15
Secrets management done right
Secrets management done right. Stop committing .env. This abstract is demo content generated by demo:seed.
A longer description for "Secrets management done right".
It covers the background, a live demo and a short Q&A at the end. All of this is generated demo data so you can click through frab.
Thursday 11:30
Onboarding new contributors
Onboarding new contributors. The first pull request. This abstract is demo content generated by demo:seed.
A longer description for "Onboarding new contributors".
It covers the background, a live demo and a short Q&A at the end. All of this is generated demo data so you can click through frab.
Rotate your keys
Rotate your keys. Three minutes of nagging. This abstract is demo content generated by demo:seed.
A longer description for "Rotate your keys".
It covers the background, a live demo and a short Q&A at the end. All of this is generated demo data so you can click through frab.
Thursday 12:00
Event sourcing without the buzzwords
Event sourcing without the buzzwords. A practical intro. This abstract is demo content generated by demo:seed.
A longer description for "Event sourcing without the buzzwords".
It covers the background, a live demo and a short Q&A at the end. All of this is generated demo data so you can click through frab.
Thursday 12:15
Caching strategies that survive contact
Caching strategies that survive contact. Invalidate this. This abstract is demo content generated by demo:seed.
A longer description for "Caching strategies that survive contact".
It covers the background, a live demo and a short Q&A at the end. All of this is generated demo data so you can click through frab.
Thursday 12:45
Design tokens in a small team
Design tokens in a small team. One source of truth. This abstract is demo content generated by demo:seed.
A longer description for "Design tokens in a small team".
It covers the background, a live demo and a short Q&A at the end. All of this is generated demo data so you can click through frab.
Thursday 13:15
Backups you have actually restored
Backups you have actually restored. A checklist. This abstract is demo content generated by demo:seed.
A longer description for "Backups you have actually restored".
It covers the background, a live demo and a short Q&A at the end. All of this is generated demo data so you can click through frab.
Application security for non-security people
Application security for non-security people. A starter kit. This abstract is demo content generated by demo:seed.
A longer description for "Application security for non-security people".
It covers the background, a live demo and a short Q&A at the end. All of this is generated demo data so you can click through frab.
Thursday 13:30
Self-hosting your metrics
Self-hosting your metrics. Prometheus on one box. This abstract is demo content generated by demo:seed.
A longer description for "Self-hosting your metrics".
It covers the background, a live demo and a short Q&A at the end. All of this is generated demo data so you can click through frab.
Thursday 14:00
Building a bug bounty program
Building a bug bounty program. What we learned in year one. This abstract is demo content generated by demo:seed.
A longer description for "Building a bug bounty program".
It covers the background, a live demo and a short Q&A at the end. All of this is generated demo data so you can click through frab.
Thursday 14:30
Sponsorship without selling out
Sponsorship without selling out. How we fund this. This abstract is demo content generated by demo:seed.
A longer description for "Sponsorship without selling out".
It covers the background, a live demo and a short Q&A at the end. All of this is generated demo data so you can click through frab.
Thursday 14:45
Our first hackathon
Our first hackathon. What we would change. This abstract is demo content generated by demo:seed.
A longer description for "Our first hackathon".
It covers the background, a live demo and a short Q&A at the end. All of this is generated demo data so you can click through frab.
Thursday 15:30
GraphQL at scale
GraphQL at scale. Lessons from three years in production. This abstract is demo content generated by demo:seed.
A longer description for "GraphQL at scale".
It covers the background, a live demo and a short Q&A at the end. All of this is generated demo data so you can click through frab.
Thursday 15:45
Building your own component framework
Building your own component framework. Lessons from the trenches. This abstract is demo content generated by demo:seed.
A longer description for "Building your own component framework".
It covers the background, a live demo and a short Q&A at the end. All of this is generated demo data so you can click through frab.
Friday 09:00
Postgres indexes you are not using
Postgres indexes you are not using. A practical tour. This abstract is demo content generated by demo:seed.
A longer description for "Postgres indexes you are not using".
It covers the background, a live demo and a short Q&A at the end. All of this is generated demo data so you can click through frab.
Kubernetes without tears
Kubernetes without tears. An honest retrospective. This abstract is demo content generated by demo:seed.
A longer description for "Kubernetes without tears".
It covers the background, a live demo and a short Q&A at the end. All of this is generated demo data so you can click through frab.
Accessibility is not optional
Accessibility is not optional. Testing with real users. This abstract is demo content generated by demo:seed.
A longer description for "Accessibility is not optional".
It covers the background, a live demo and a short Q&A at the end. All of this is generated demo data so you can click through frab.
Supply chain attacks explained
Supply chain attacks explained. How dependencies bite. This abstract is demo content generated by demo:seed.
A longer description for "Supply chain attacks explained".
It covers the background, a live demo and a short Q&A at the end. All of this is generated demo data so you can click through frab.
Friday 10:15
Debugging production at 3am
Debugging production at 3am. War stories. This abstract is demo content generated by demo:seed.
A longer description for "Debugging production at 3am".
It covers the background, a live demo and a short Q&A at the end. All of this is generated demo data so you can click through frab.
Code of conduct enforcement
Code of conduct enforcement. The unglamorous work. This abstract is demo content generated by demo:seed.
A longer description for "Code of conduct enforcement".
It covers the background, a live demo and a short Q&A at the end. All of this is generated demo data so you can click through frab.
Terraform anti-patterns
Terraform anti-patterns. Modules gone wrong. This abstract is demo content generated by demo:seed.
A longer description for "Terraform anti-patterns".
It covers the background, a live demo and a short Q&A at the end. All of this is generated demo data so you can click through frab.
Security reviews for feature teams
Security reviews for feature teams. A lightweight process. This abstract is demo content generated by demo:seed.
A longer description for "Security reviews for feature teams".
It covers the background, a live demo and a short Q&A at the end. All of this is generated demo data so you can click through frab.
Friday 11:00
Documentation that people read
Documentation that people read. Writing for tired humans. This abstract is demo content generated by demo:seed.
A longer description for "Documentation that people read".
It covers the background, a live demo and a short Q&A at the end. All of this is generated demo data so you can click through frab.
Infrastructure as code reviews
Infrastructure as code reviews. What to look for. This abstract is demo content generated by demo:seed.
A longer description for "Infrastructure as code reviews".
It covers the background, a live demo and a short Q&A at the end. All of this is generated demo data so you can click through frab.
Friday 11:30
Rate limiting for humans
Rate limiting for humans. Fair queues and honest errors. This abstract is demo content generated by demo:seed.
A longer description for "Rate limiting for humans".
It covers the background, a live demo and a short Q&A at the end. All of this is generated demo data so you can click through frab.
Web performance for content sites
Web performance for content sites. Core Web Vitals in practice. This abstract is demo content generated by demo:seed.
A longer description for "Web performance for content sites".
It covers the background, a live demo and a short Q&A at the end. All of this is generated demo data so you can click through frab.
Friday 12:15
Running a code of conduct team
Running a code of conduct team. Process, not vibes. This abstract is demo content generated by demo:seed.
A longer description for "Running a code of conduct team".
It covers the background, a live demo and a short Q&A at the end. All of this is generated demo data so you can click through frab.
Offline-first web apps
Offline-first web apps. Sync is the hard part. This abstract is demo content generated by demo:seed.
A longer description for "Offline-first web apps".
It covers the background, a live demo and a short Q&A at the end. All of this is generated demo data so you can click through frab.
Friday 12:45
Cost control in the cloud
Cost control in the cloud. Reading the bill. This abstract is demo content generated by demo:seed.
A longer description for "Cost control in the cloud".
It covers the background, a live demo and a short Q&A at the end. All of this is generated demo data so you can click through frab.
Privacy engineering basics
Privacy engineering basics. GDPR for developers. This abstract is demo content generated by demo:seed.
A longer description for "Privacy engineering basics".
It covers the background, a live demo and a short Q&A at the end. All of this is generated demo data so you can click through frab.
Friday 13:30
Ten JavaScript frameworks in 40 minutes
Ten JavaScript frameworks in 40 minutes. A speedrun. This abstract is demo content generated by demo:seed.
A longer description for "Ten JavaScript frameworks in 40 minutes".
It covers the background, a live demo and a short Q&A at the end. All of this is generated demo data so you can click through frab.
Incident response tabletop exercises
Incident response tabletop exercises. Practicing before the fire. This abstract is demo content generated by demo:seed.
A longer description for "Incident response tabletop exercises".
It covers the background, a live demo and a short Q&A at the end. All of this is generated demo data so you can click through frab.
Friday 14:00
Background jobs that never lose work
Background jobs that never lose work. Idempotency in practice. This abstract is demo content generated by demo:seed.
A longer description for "Background jobs that never lose work".
It covers the background, a live demo and a short Q&A at the end. All of this is generated demo data so you can click through frab.
My gem has 12 downloads
My gem has 12 downloads. And I am proud of it. This abstract is demo content generated by demo:seed.
A longer description for "My gem has 12 downloads".
It covers the background, a live demo and a short Q&A at the end. All of this is generated demo data so you can click through frab.
Friday 15:15
GitOps in practice
GitOps in practice. Deploying from a single source of truth. This abstract is demo content generated by demo:seed.
A longer description for "GitOps in practice".
It covers the background, a live demo and a short Q&A at the end. All of this is generated demo data so you can click through frab.