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

Lessons Learned from Open Source

Lessons Learned from Open Source

10+ years contributing and maintaining open source projects. Here are my top lessons learned.

Also, a non-exhaustive list of all the open source projects we maintain at OmbuLabs and FastRuby.io

Ernesto Tagwerker

June 11, 2021

More Decks by Ernesto Tagwerker

Other Decks in Programming


  1. Open by Default When starting a project, we should ask

    ourselves: “Is there any reason to make this a closed source project?” There must be a solid reason to start a new closed source project. Otherwise, our projects should be open by default.
  2. 1 RSpec.configure do |config| 2 3 config.before(:suite) do 4 DatabaseCleaner.strategy

    = :transaction 5 DatabaseCleaner.clean_with(:truncation) 6 end 7 8 config.around(:each) do |example| 9 DatabaseCleaner.cleaning do 10 example.run 11 end 12 end 13 14 end
  3. 1 describe "Signup Email" do 2 include EmailSpec::Helpers 3 include

    EmailSpec::Matchers 4 5 before do 6 @email = UserMailer.create_signup("[email protected]", "Jojo Binks") 7 end 8 9 it "should be set to be delivered to the email passed in" do 10 expect(@email).to deliver_to("[email protected]") 11 end 12 13 it "should contain the user's message in the mail body" do 14 expect(@email).to have_body_text(/Jojo Binks/) 15 end 16 end
  4. Lesson #2: Even simple libraries can get complicated with different

    ORMs, testing frameworks, and multiple databases.
  5. Lesson #3: Volunteer to maintain a project even if you

    are not the best person for the job.
  6. Lesson #4: You can organize your CSS code in a

    way that is easy to maintain.
  7. Lesson #6: You can detect a security hole if you

    don’t stub your API requests.
  8. How can we measure the size of a Rails app

    without having to install its Rails environment?
  9. Lesson #9: We could add planning poker feature to make

    it easier to (not blindly) estimate.
  10. How can we see all the things we need to

    do in Pivotal Tracker _and_ GitHub?
  11. How can we know if one of our dependencies is

    known to have a memory leak?
  12. Lesson #12: Pick a project that intrigues you, challenges you,

    interests you, and/or you feel passionate about.