2. About Me
• 20 years of developing web apps
• Doing TDD/BDD since 2001
• Working with Ruby for the last 8 years
3. Teespring
• ~ 100,000 lines of code in the web app
• ~ 5,000 Requests / 800 pages per minute
• ~ 7 million shirts sold in 2014
• Real people making real money
4. Teespring
• We try to TDD as much as possible
• We do serious code review
• We use a CI Server to test pull requests
• We also do manual QA before deploying
• (And, one other thing - we’re hiring!)
5. Some Tools We Use
• Ruby/Rails/(and JS) Stack
• Rspec
• Capybara
• Webmock/VCR
• SimpleCov
18. Things to Consider
• What constitutes valid vs. invalid input?
• Where can invalid input possibly enter the
system?
• How do you deal with invalid input in other parts
if the system?
23. Things to Consider
• Almost any part of your system can fail.
• Handling vs. preventing failure
• Nil is a tenacious enemy
• How will you recover from errors?
27. Things to Consider
• Is it even worth retrying?
• Retrying forever is probably a bad thing.
• How do you communicate to users to come back
later?
• How do you isolate the failure to a small area?