We can't find the internet
Attempting to reconnect
Something went wrong!
Hang in there while we get back on track
Justin Searls - The Empowered Programmer - Rails World 2024
Learn key traits and practices for building sustainable Rails apps from Justin Searls. Covers architectural choices, testing strategies, and dev philosophy for empowered programming.
-
Rails helps solo developers build ambitious features by providing smart defaults while allowing flexibility when needed
-
Key traits of an “empowered programmer”:
- Courage to tackle risky features early
- Discipline to say no to unnecessary complexity
- Efficiency in choosing the right tools/approaches
- Resilience in planning for long-term maintenance
- Meticulous attention to details
- Dexterity in knowing when to deviate from conventions
-
Architectural recommendations:
- Use email-based authentication for simplicity and reliability
- Leverage ActiveStorage for handling complex file uploads
- Embrace Hotwire/Stimulus for interactive features without heavy JS
- Consider import maps to avoid complex build processes
- Use Tailwind CSS for maintainable styling
- Implement fragment caching for performance
-
Testing best practices:
- Use Playwright instead of Selenium for more reliable system tests
- Address flaky tests early - they indicate brittle implementations
- Ensure tests work reliably across different environments
-
Development philosophy:
- Start with the riskiest features first
- Store only essential data permanently
- Optimize for future maintenance
- Focus on user experience over technical purity
- Make deliberate choices about what features to exclude
- Build for long-term maintainability
-
Success metrics should focus on:
- Reducing future technical debt
- Maintaining predictable costs as usage grows
- Delivering genuine user value
- Building sustainable, maintainable systems