๐ From Silent Developer to Open Source Contributor: My 4-Month Journey
Four months ago, I was that developer who stayed quiet, focused solely on my day job, and never touched open source for about 10 years. Today, Iโm sharing an incredible transformation that every software engineer should experience.
๐ฑ The Journey Began Small
It started with tiny personal projects โ scratching my own itches, building small tools I needed. Then courage grew:
- ๐ Rails contributions (still learning the ropes โ PRs didnโt merge, but the feedback was invaluable!)
- ๐จ Jekyll themes for the community
- ๐ Rails gems solving specific problems
- ๐ฆ GitLab contributions โ where everything changed
๐ The GitLab Experience: A Masterclass in Culture
Just earned my GitLab Contributor Level 3 badge ๐ โ but thatโs just a symbol. The real treasure is discovering GitLabโs incredible culture and values.
Every single team I interacted with โ from engineering to technical writing, from security to UX โ demonstrated the same amazing qualities:
- ๐ค Genuine helpfulness that goes beyond politeness
- ๐ Inclusive collaboration that welcomes newcomers
- ๐ก Thoughtful feedback that elevates your thinking
- ๐ฏ Mission-driven approach where everyone cares about the bigger picture
Those qualities perfectly reflect GitLabโs core values: Collaboration; Results for Customers; Efficiency; Diversity, Inclusion & Belonging; Iteration; and Transparency. So you know their values arenโt just words on a wall, theyโre lived daily by real people who make you feel valued as a contributor, regardless of your experience level.
I even had a few merge requests in GitLab that didnโt get merged โ but the feedback I received on those MRs was so constructive that it pushed me to refine my approach and iterate faster.
๐ What Open Source Really Taught Me
The learning explosion was beyond anything I expected:
๐ง Technical Skills:
- Code quality standards that transformed how I write software
- Architecture thinking โ seeing systems from multiple perspectives
- Some Testing approaches I never knew existed
- Performance considerations for global-scale applications
๐ฌ Communication & Collaboration:
- Asynchronous communication across timezones and cultures
- Technical writing that actually serves users
- Code review etiquette that builds rather than tears down
- Constructive feedback that helps everyone grow
๐ง Problem-Solving Approaches:
- User empathy โ real people with real pain points
- Constraint thinking โ working within existing ecosystems
- Community dynamics โ how decisions impact thousands of users
- Iterative improvement over perfect solutions
๐ Global Perspectives:
The diversity of thinking is mind-blowing. Contributors from different countries, backgrounds, and experience levels all bring unique insights that make solutions infinitely better than what any individual could create.
๐ A Real Problem, A Real Solution
During my GitLab contributions, I discovered a recurring issue: dozens of requests for zoom/pan functionality in Mermaid diagrams. The pain was real for anyone working with large, complex diagrams that required detailed exploration โ be it system architecture overviews or extensive flowcharts.
The Mermaid team has explicitly indicated that zoom/pan functionality should be provided via an external library rather than added to their base code โ see their comment here: https://github.com/mermaid-js/mermaid/issues/4022#issuecomment-1499098685. In other words, they prefer that any enhancements remain decoupled so that upgrading Mermaid itself is uninterrupted.
Existing solutions either required heavy dependencies like D3.js or were too simplistic for real-world use.
๐ก From Contribution to Innovation
I created comprehensive merge requests for GitLabโs platform โ but hereโs where GitLabโs amazing culture shined again:
Instead of just saying โno,โ the technical writing team gave me transformative feedback: (shortly) โThis is incredible work, but itโs too much new code for our codebase (about 29% new code). Have you considered making it a standalone package that could help the entire ecosystem and would work for GitLab too?โ
That suggestion changed everything. ๐ก
๐ฆ The Result: SVG Toolbelt
What started as a GitLab-specific solution became something for everyone:
- ๐ Demo: https://zakariaf.github.io/svg-toolbelt
- ๐ GitHub: https://github.com/zakariaf/svg-toolbelt
Zero dependencies. Full accessibility. Mobile-first. TypeScript native.
Born from real GitLab needs, refined by open source collaboration, now helping the ecosystem make their documentation more accessible.
๐ My Strong Advice to Fellow Developers
Contribute to open source. Start today.
Not for your resume (though it helps), but for the incredible learning experience:
- โ Youโll see how world-class teams actually work
- โ Youโll learn from developers much smarter than you
- โ Youโll build real empathy for end users
- โ Youโll improve code quality through rigorous review
- โ Youโll discover new approaches to old problems
- โ Youโll experience true global collaboration
๐ Whatโs Next
This is just the beginning. Open source has shown me a world where:
- ๐ค Collaboration trumps competition
- ๐ Learning never stops
- ๐ Impact transcends job descriptions
- ๐ Giving back creates unexpected opportunities
To my fellow developers: Whatโs stopping you from making your first contribution? The community is welcoming, the learning is invaluable, and your unique perspective is needed.
To everyone at GitLab: Thank you for showing what incredible culture looks like. Your values, paired with genuine care for contributors and users alike โ is truly inspiring. Youโve created something special! ๐
P.S. โ From a small GitLab issue to a published package helping developers worldwide โ this is the magic that happens when amazing people collaborate on meaningful problems! โจ
Links:
- ๐ SVG Toolbelt Demo: https://zakariaf.github.io/svg-toolbelt
- ๐ NPM Package: https://www.npmjs.com/package/svg-toolbelt
- ๐ GitHub Repository: https://github.com/zakariaf/svg-toolbelt
- ๐ GitLab Profile: https://gitlab.com/zakaria-fatahi