Open-Source Software
The power of contributing to OSS 🖥
May 03, 2021 - 763 words - 4 mins Found a typo? Edit meWhat 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?
What is Open-Source Software (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 a company 🛕
- 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.
Benefits — for you, as a single contributor 🤓
- 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.
TL;DR: It can be a “constant kata” if you want to.
GitHub to the rescue 😃
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.
Some Chema’s 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).
Some of Chema’s OSS org 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 ✍🏼
- 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 this 🧑🎓
- 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.