Advocating for Best Practices in Software Crafting and Testing
Software Engineer @ Dynatrace | AI Advocate | Public Speaker | Co Organizer of Google Developer Group Linz
Markdown supported · ⌘↵ to post
I read the whole blog and really liked your perspective and insights.
As someone from a tech background, I wanted to ask for your guidance on open source. I’ve tried contributing multiple times before, but I often felt lost and couldn’t stay consistent. This time, I want to approach it properly and efficiently.
Could you share a practical roadmap on how to start contributing effectively — like what should be the first steps after finding a repo? Should I first read the README, understand the project structure, explore the codebase, check issues, or try small fixes first? Also, how do experienced contributors usually understand large codebases and stay consistent while contributing?
Hi Anu! I'm glad you enjoyed it.
I'm not contributing to open source, so take my perspective with a grain of salt, but I'll still answer your questions.
Q: Could you share a practical roadmap on how to start contributing effectively — like what should be the first steps after finding a repo? A: I'd start by defining what "effectively " means. Previously you mentioned that "I’ve tried contributing multiple times before, but I often felt lost and couldn’t stay consistent". What is your overall goal? What do you want to achieve? Gaining experience? Building something? Your overall goal shall guide you as a compass, and you may measure "effectivenes" as how much your actions advance you towards it.
Q: Also, how do experienced contributors usually understand large codebases A: Previously, you just learned them over time. Now - you can ask AI to explore the whole repo and sum it up for you. For example, take another look at my demo where AI makes an article for immich repo - you could alter that prompt and build a CONTRIBUTING.md that will outline what the codebase is, what patterns contributors should follow, what steps should they take to contribute, and etc. This exploration could be your first step. What is nice about open source, is that it's mostly hosted on Github, and it provides you a lot of AI tools (many of which are free) OOTB. Generally, with experience you'll see that there are common patterns and architectures in software, and tech stack itself is just a set of tools to implement them. Once you get to that point you'll be much faster in grasping new codebases.
Q: and stay consistent while contributing? A: This fully depends on your goals. The best routine is such that you can keep doing, so define your goals accordingly. Start with small steps that you'll be able to measure as success, and grow as you get more confident.
Shlomo Friman
One thing I'd add from the enterprise side, where codebases tend to be measured in decades rather than years: the golden files principle runs into a wall when the "approved pattern" in the codebase is itself a workaround for something nobody documented. I've seen teams point AI to golden files that were golden by convention, not by design — the file was just the one nobody broke. The AI learns the workaround as the standard, and the instructions quietly encode technical debt as policy.