Open-Source Software

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:
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:
- php-best-practices: what I consider best practices for web-dev.
- php-scaffolding: a basic PHP scaffolding with Docker.
- typed-arrays: generics replacement for PHP.
Inactive:
- stock-ticker: get a notification with the news from your favorites Tickers.
- jira-status-notifier: Notify when the JIRA tickets don’t move along.
- edifact-parser: a parser for a UN/EDIFACT file format in PHP.
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.