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

Buildbox - Lessons Learned

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
Tweet

More Decks by Keith Pitt

Other Decks in Programming

Transcript

  1. Lessons learned building a tool for developers.

    View Slide

  2. View Slide

  3. View Slide

  4. View Slide

  5. View Slide

  6. View Slide

  7. View Slide

  8. View Slide

  9. View Slide

  10. View Slide

  11. View Slide

  12. Mario Visic
    Señor Developer

    View Slide

  13. Desktoppr.co

    View Slide

  14. View Slide

  15. View Slide

  16. View Slide

  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)

    View Slide

  18. View Slide

  19. View Slide

  20. Note: Travis is amazing and I love them. You should use them.

    View Slide

  21. View Slide

  22. View Slide

  23. View Slide

  24. View Slide

  25. View Slide

  26. View Slide

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

    View Slide

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

    View Slide

  29. View Slide

  30. View Slide

  31. A semi-hosted continuous integration service

    View Slide

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

    View Slide

  33. View Slide

  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

    deploys

    View Slide

  35. View Slide

  36. Alright listen up.

    View Slide

  37. Challenges
    Rendering terminal output!
    The agent is a memory hog!
    Having to do all the things

    View Slide

  38. Do as little work as possible
    All the gems (73 in Buildbox)!
    CSS framework (Twitter Bootstrap)!
    Deploy onto Heroku/Ninefold!

    View Slide

  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

    View Slide

  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

    View Slide

  41. Avoid rewrites
    Ignore all the new shiny things!
    Just slows you down!
    Founder code is encouraged

    View Slide

  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

    View Slide

  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

    View Slide

  44. Regrets
    Didn’t blog enough!
    Not enough drip marketing!
    Didn’t make a video on public launch!
    Took stuff personally

    View Slide

  45. Future
    Hosted Agents (but still secure)!
    Pipelines!
    Rewrite agent in Golang!
    Better IA

    View Slide

  46. That’s it. I have stickers.

    View Slide