Did you know that we organized the first international TYPO3 codesprint in Poland?
Open source is a vital part of work at Macopedia. Not only do we use open source software to develop systems for our clients, but we are also co-creators of such solutions ourselves.
We are involved in open source in various ways - we code, create tests and documentation, publish the modules and products we produce, develop RFCs, verify bugs, sponsor initiatives, organize codesprints (here you can see a report from Vue Storefront Hackathon in our HQ).
Our team members have already completed over 100 projects and developed thousands of solutions in various languages (mainly JS, PHP, Python) and technologies, such as Magento (Adobe commerce), TYPO3 CMS, Odoo ERP, Akeneo, Symfony or OpenMage, and many others.
Being active in the open source community is essential for us and we consider it part of an unwritten agreement between people gathered around free software. It requires involvement in the co-created solutions in exchange for the possibility of using the jointly developed projects. What value does working on open solutions bring to developers?
Working on Free Software allows me to continually learn and expand my horizons. It gives a new perspective on code, different from the one I see on a daily basis, allowing me to consider the needs of other programmers and the demands of other projects. I love building together as I can see how every little contribution allows more amazing things to be built. Working together with other developers gives me a lot of fun and satisfaction. - Tomek, TYPO3 Developer
Sharing good practices - learning from the best
People involved in open source have the unique opportunity to collaborate with individuals from all over the world who work in many different organizations on a daily basis. Such a wide variety of project contributors enables the exchange of good practices. Interacting with others gives you the opportunity to continually expand your knowledge and grow by confronting your experience with other professionals. The opportunities for development offered by open source and its community are discussed by our CEO, Tomek Grzemski, in the podcast entitled Idee Warte Poznania.
Asynchronous communication - expanding competences
When working in a dispersed team, which typically works asynchronously, it is hugely important to maintain clear, transparent communication. Co-creating software, developers hold team discussions, jointly look for the best solutions and make decisions on the direction of development of the built software. Moreover, in such a project community there are no hierarchical dependencies which in many organizations become a blocker in communication within companies. This fact makes it a unique environment to develop your communication skills.
What I like most about open source is the possibility of developing a product that we later implement ourselves. I appreciate the opportunity to propose my own solutions which are comprehensive answers to the problems of a given software, including security issues being so important for free software. I find it satisfying to know that the entire community not only benefits from the solutions I have implemented, but that they want to continue improving them. Especially that these are solutions to problems that are often more complicated than those I face in my daily work. This gives me unlimited opportunities for development, which is additionally supported by cooperation with experts from all over the world who are always willing to give feedback or perform code reviews. Being an open source contributor is a great programming adventure for me! - Łukasz, Lead TYPO3 Developer
Sharing knowledge - a win-win situation
Learning new technologies on your own can be difficult and tedious. Working in open source projects gives you the opportunity to expand your knowledge while working on real, often complex projects. Additionally, working in a team allows you to learn from other people who are more experienced in a given area. This often also results in establishing personal relationships with top industry professionals. This is an important process for both parties - the person gaining knowledge and the one sharing it, who by entering the role of mentor gains leadership competences.
An atmosphere conducive to development - mutual trust and respect
Creating open source software projects and working with specialists from different parts of the world gives inspiration for development. Partnering with people who have more extensive experience encourages you to match their expertise. This is made possible by a supportive community. In diverse teams, bonded by shared commitment, passion and enthusiasm, there is usually an atmosphere of mutual respect and trust. Such a climate arouses intrinsic motivation, which is the best stimulus for personal development.
Going back in time, open source projects were the ones I had the opportunity to learn a lot from. I remember "Fusion CMS" which I liked a lot in the old days and I learned many things working with it. Later, based on this knowledge, I developed my own CMS as a part of an engineering thesis, which was very interesting and had some non-standard solutions, at least for that time.
Then, I had the opportunity to use many other open source applications and all the time I was learning new solutions, expanding my knowledge, and above all, I met a lot of people who engaged in such projects and were willing to provide support, share knowledge and experience.
This is probably one of the best aspects of participating in open source projects - you meet a lot of interesting people you can talk to not only about technical stuff, but also about ordinary, everyday life topics :)
I also enjoy the fact that my ideas or suggestions for changes often end up in an open source project and then other users can use them. Such feedback gives a lot of positive energy. Involvement in open source projects allows me to give something back, not only take advantage of the benefits of open source, but give something in return.
Working on open source projects gives a lot of freedom and allows you to get away from your everyday work if it is not related to such projects. - Marcin, TYPO3 Developer
Open source culture: transparency, clean code, code review
Developers involved in open source create their own community with transparency at its core. In practice, this means open access to code and documentation. This allows you to not only view the source code, but also learn from it directly. Transparency also manifests itself in the desire to write clean code and provide feedback to one another. Being involved in open source software development is the perfect opportunity to practice code review, both receiving and giving broad and yet professional feedback.
Explore our solutions that we have published as open source, e.g. TYPO3PWA initiative, Nuxt-Typo3 and check our github. See how we implement a mentoring program at Macopedia. If you want to work with us on open source software, see our career page and join one of our teams!
Would you like to enter the world of open source software on your own?
Here are our 5 tips:
1. Find a person or people who are already working on an open source project and would like to share their experience. If you don't know such a person personally, join a community dedicated to the technology of your choice (e.g. via Slack, Discord or other communication channel).
2. Start with small activities, like correcting a typo or adding a sentence to the documentation. Such actions will be a small change in the project, but a huge achievement for you - your first contribution to the co-created software!
3. Think about what problems you encounter in your daily work with a particular system or what was unclear to you in the documentation. Do you have an idea how you can solve this problem? If yes - try it! Working on what you find difficult is a great starting point for greater engagement. After all, this is the problem you know best.
4. Don't be afraid to ask questions and seek feedback. The whole idea of co-development of open source software is based on mutual help, sharing feedback and transparency. Remember that everyone, even most experienced people in a given technology, started their adventure with writing open source code.
5. If you have the opportunity, join a codesprint or hackathon. Check for a special session for first-time attendees at this type of event. It's always better to be in a group!