Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Buildbox - Lessons Learned

E14f55d3f939977cecbf51b64ff6f861?s=47 Keith Pitt
February 12, 2014

Buildbox - Lessons Learned

In this presentation, I share my experiences developing Buildbox, a semi-hosted continuous integration service. I also discuss how the product works, how I made it and some of the challenges I faced along the way.


Keith Pitt

February 12, 2014

More Decks by Keith Pitt

Other Decks in Programming


  1. Lessons learned building a tool for developers.

  2. None
  3. None
  4. None
  5. None
  6. None
  7. None
  8. None
  9. None
  10. None
  11. None
  12. Mario Visic Señor Developer

  13. Desktoppr.co

  14. None
  15. None
  16. None
  17. “Continuous Integration is a software development practice where members of

    a team integrate their work frequently, usually each person integrates at least daily - leading to multiple integrations per day. Each integration is verified by an automated build (including test) to detect integration errors as quickly as possible.” - Martin Fowler (the smartest guy alive)
  18. None
  19. None
  20. Note: Travis is amazing and I love them. You should

    use them.
  21. None
  22. None
  23. None
  24. None
  25. None
  26. None
  27. Ugly Java? Lolwut? Too hard to setup GitHub Pull Requests

  28. Ugly Java? Lolwut? Too hard to setup GitHub Pull Requests

  29. None
  30. None
  31. A semi-hosted continuous integration service

  32. github.com buildbox.io buildbox-agent webhook commit status polling build output

  33. None
  34. Not Ugly No Java Easy to setup! GitHub Pull Request

    Status! Can do what ever I want on
 the server Safe and secure production
  35. None
  36. Alright listen up.

  37. Challenges Rendering terminal output! The agent is a memory hog!

    Having to do all the things
  38. Do as little work as possible All the gems (73

    in Buildbox)! CSS framework (Twitter Bootstrap)! Deploy onto Heroku/Ninefold!
  39. Keep your vision strong Don’t forget the goals! Don’t go

    off on tangents! Why are you doing this again?! Build what you want to exist
  40. Keep the tech stack simple Don’t do SOA! Don’t scale

    to your 1 customer! Keep the code ghetto! Use what you know
  41. Avoid rewrites Ignore all the new shiny things! Just slows

    you down! Founder code is encouraged
  42. Don’t write invoicing stuff Invoices are a must for B2B!

    Generally receipts don’t cut it! It’s such a buzz kill! chargebee.com + Pin Payments
  43. Launch on the first day After your 10th commit, be

    in production! Tease out any issues! Get people looking at it! Users can come later! Continuous Delivery
  44. Regrets Didn’t blog enough! Not enough drip marketing! Didn’t make

    a video on public launch! Took stuff personally
  45. Future Hosted Agents (but still secure)! Pipelines! Rewrite agent in

    Golang! Better IA
  46. That’s it. I have stickers.