Top 3 Benefits of Contributing to Open-Source Projects
Exposure to cutting-edge projects and the opportunity to make an impact on a global scale is on many people’s career bucket lists. This is the reality for many engineers within Mobica. Our open-source contributions have resulted in many Mobicans building connections with the best experts from around the world and gaining industry-leading skills.
Talent as a Service or Software House businesses are often associated with closed-source, commercial software projects for customers. However, within the Embedded domain, the hardware is the product and software is commonly published as open-source or sample software.
What is open-source software?
Open-source software is developed in a public, collaborative manner. The source code is released under a license that permits users to study, change, and improve the software, and redistribute copies with or without changes.
Let’s explore some of the reasons why Mobicans find contributing to open-source software very useful and advantageous for their careers.
How we are contributing to open-source embedded projects
At Mobica, we provide the platform to help developers sharpen their open-source skills and achieve success in their professional roles. Mobicans work with experienced colleagues, who can provide support and guidance throughout the learning process. Moreover, we facilitate platforms where Mobicans can network with other developers and learn from each other’s experiences.
Here are 3 benefits of contributing to open-source projects in Mobica:
1. Increased visibility in the development community
Contributing to open-source projects has been a great way for our developers to get noticed in the development community. Open-source projects often come with a built-in audience, which allows Mobicans to gain valuable exposure and network with like-minded developers worldwide.
2. Strengthened coding acumen
When developing open-source software, every commit an engineer creates will be visible to the public, even if their Pull Request isn't accepted. This encourages developers to produce higher-quality code as it may be referenced in future job applications or promotions.
3. Contribute to innovation
Open Source skills are invaluable for career development. Let's explore some of the benefits of open-source software and then get into what more Mobicans have to say about their contributions.
“Working on an open-source project means constantly learning new rules and new styles of programming. You significantly develop your skills in the field of code quality, it's testing, CI and CD. As an open-source contributor, you are participating in the community and can take part in events such as Test Days as part of your project work.”
says Artur Tynecki, Expert Software Engineer, working on an Embedded IoT project.
The Benefits of open-source software
It may come as a surprise why corporations would put their Intellectual Property into open-source software rather than keeping it to themselves. However, there are valid reasons for choosing this route.
More freedom for developers
The AUTOSAR consortium's motto of “Cooperate on standards, compete on implementation” speaks to the current approach many businesses take towards software development. AUTOSAR is a fully open standard for automotive software production and design that enables modularity, scalability, transferability, reusability, and standardisation—breaking down silos and inefficiencies. For developers, this means more freedom when working with different automakers.
Ensuring consistent user experiences
The Khronos Group has brought together a collective of 150 industry-leading companies to develop royalty-free interoperability standards in areas such as 3D graphics, augmented and virtual reality, parallel programming, vision acceleration and machine learning. All members with voting rights are able to contribute to the group's efforts and make sure that their technology solutions share the same user interface regardless of platform or device. In this way, they can ensure a consistent experience for all users.
Open-source software can save time
Some hardware manufacturers, such as ARM, are releasing their software to the open-source domain without collaborating with others. They provide full source code of their Mbed ecosystem under a permissive Apache 2.0 license, which includes Mbed-os, supporting tools, sample applications and other SW products.
ARM gives you this exact capability to customise its software by providing a fully functioning embedded software solution which can be modified, ported or optimised as required. This flexibility saves customers time, effort and money in the long run.
Open-source projects unite the world’s best talent
Another way to look at the advantages of open-source code is that it has a much larger pool of testers and bug reporters, making it easier to find and fix any issues. Furthermore, with public coding, fixes can be made quickly and easily by anyone who has the skills or motivation to do so. This also allows for new ideas or features to be suggested, discussed, voted on and even implemented in the codebase if they are deemed useful. Not to mention the opportunity for skilled developers to hone their abilities while benefiting everyone who uses the software.
“It’s really refreshing to see open-source contributors burning with real passion towards a project you’re actively working on! Some of them are devoting a significant portion of their free time to just seeing a feature they like available for others users as well. This approach puts your work in a completely different perspective.”
said Andrzej Kurek, Principal Engineer actively working on open-source projects commercially as well as in his free time.
Open-source software is resistant to cyber threats
Open-source software is inherently uniquely robust against possible vulnerabilities due to its open nature, which encourages the community to quickly identify and repair any vulnerabilities that appear. The number of people involved in supporting a given project also largely contributes to how fast potential threats are taken care of. Moreover, there are academic and commercial teams that specialise in identifying possible problems with open-source projects and proclaiming their discoveries as “trophies”. In short, the openness of open-source software makes it highly resistant to cyber threats.
Let’s explore some examples of open-source projects Mobicans have contributed towards.
Mobica’s internal projects
Mobica has been involved in various embedded projects, and the code related to these projects is accessible on open-source licenses through different platforms like GitHub. We actively pursue open-source projects as part of the R&D framework. Oskar Płaska, Technical Domain Manager, is driving our cooperation with the Khronos group, in the area of Vulkan Samples, OpenCL’s SDK and its C++ bindings.
Mobica is actively involved in the development of Vulkan Samples, which is an open-source software project under the Khronos Group. “The primary aim of these samples is to demonstrate the usage of specific Vulkan extensions at the API level with minimal abstraction”, says Oskar.
Perhaps the most effective way to gain proficiency in Vulkan is by writing code that directly calls upon the Vulkan API without relying heavily on other software layers. Not only is it an exciting experience to write in Vulkan, but it also aids in skill development.
"Participation in an open-source project not only let me build my skills in Vulkan and make an open-source contribution but also reach a level of knowledge which let me enter a commercial project in the area of GPU programming for a leading semiconductor company,"
said Mateusz Kowalewski, Software Engineer who participated in the Vulkan upskilling project.
OpenCL is a crucial technology in High-Performance Computing and training AI at scale. The goal of Mobica's internal project is to implement new C++ bindings, fix bugs, and implement new samples for the new bindings in the OpenCL SDK. By participating in this project, engineers can improve their proficiency in C++ and gain knowledge on how to offload tasks to dedicated accelerators, such as GPUs.
In conclusion, there is no denying the power of open-source software in embedded technology – especially when combined with expertise from experienced contributors across the world. By joining our open-source projects at Mobica, engineers can further their proficiency in C++ and gain knowledge on how to offload tasks to dedicated accelerators, such as GPUs. All of which goes to show that the benefits of open-source embedded contributions are numerous – and only set to increase over time.
Are you ready to make your own contribution?
Get started with Mobica today!
Contributor: Michał Paszta
In Mobica since 2013.
He went all the way from Junior Software Engineer to Principal Engineer, always working around Embedded and middleware domains mainly in C and C++. He participated in 8 different projects for 6 different customers in a plethora of technologies and environments: from low-level microcontroller programming to system-wide set-top-box debugging, from modern C++ standards to fixing bugs in a Fortran compiler.
Since 2021 – Embedded Competence Centre Manager at Mobica.