All posts
Open-Source Software

Open-Source Software

blog-cover

What is Open-Source Software (OSS)? What are their benefits? How can you start contributing to any OSS? Pet projects? Knowledge sharing? Why all of these?

Contributing to OSS can be a constant kata. It improves your skills, builds your career, and helps the community around you.

What is OSS?#

OSS shares similarities with free software, but it’s not the same. Free software is a form of OSS, but that doesn’t necessarily mean that it has to be free. For example:

  • PHPUnit is an example of OSS which is free.
  • Spryker is an example of OSS which is not free.

OSS is basically software that is public, open to the world.

Benefits#

For Companies#

  • Adoption: the easier the access, the easier the adoption.
  • Training and tutorials help the system to grow.
  • Tech: often on the cutting edge of technology. Tech moves fast. They will get obsolete if they don’t.
  • Community: the people around want to improve as it grows. Public channels enable easy access and community building.
  • Trust: the software is public and accessible. Everyone can check the quality of the software anytime.

For Individual Contributors#

  • Flexibility: decide on what you want to work on.
  • Self-confidence: the experience improves your skills.
  • Training: without the pressure of a PROD environment.
  • Tech: play with the latest features of your tech. Try upcoming versions of your coding lang, or even try new ones!
  • Soft skills: improve your communication skills. Good communication in the project is important. Especially when you face disagreements.

Contributing to OSS#

Getting Started with GitHub#

Nowadays, it’s really trivial to start contributing to OSS:

  • You can start your own project. A pet project fits here perfectly!
  • You can contribute to an existing OSS project.

Pet Projects#

A pet project is a playground to create software and train your professional skills. Creating pet projects in your public GitHub profile has all the benefits of contributing to OSS, plus you’re your own boss:

  • You dictate the roadmap.
  • You decide what to do and how.
  • You’re your own boss.

The project is there for you.
You are responsible to play, explore and pass your limits.

My Pet Projects#

Active:

Inactive:

Abandoned:

  • knob-mvc: a framework to create WordPress templates (2015/2017).

My OSS Organization Contributions#

Active:

  • phel-lang: Phel is a functional programming language that compiles to PHP. It is a dialect of Lisp inspired by Clojure and Janet. I already wrote a post about this: Phel: A Lisp that compiles to PHP
  • gacela-project: Gacela is a PHP framework that helps you to improve the design of your application by splitting the logic into different modules.

Abandoned:

  • nm_template: The base template for NuevaMetal (2013–2016).

Knowledge Sharing and Impact#

Blog Posts#

  • Pull Requests vs Pair Programming
  • The process itself is the goal
  • The art of refactoring; When, How, and Why
  • The art of testing: Where design meets quality

… and many more on https://chemaclass.com/blog/

The Beauty of OSS#

  • Seeing the corrections that you constantly keep doing
  • Seeing how your own code gets old with time
  • Seeing the many mistakes that you have done
  • Seeing how you are getting better at coding over time

Developing a sixth sense to smell patterns which you have already done and their positive & negative experiences.

Showing your skills and helping the community around you.

Open-Source Software offers you one of the best opportunities to start building your career path towards continuous improvement.


This is a (Spanish) talk that I did remotely on April 2021, for PHPMad Madrid Community. I basically present all these ideas together with a live demo of how to contribute to a real OSS.


References#