Picture this: You just landed a new role. Or stumbled upon an open-source project that sparks your interest. Maybe it’s some wild idea of your own. Either way, you’re thrust into a brand-new codebase. Unfamiliar tools. New faces might surround you. There’s a lot to figure out, fast.
There’s the codebase itself—that large collection of files, frameworks, and architectural decisions pieced together with varying degrees of care. But if you’re not going alone, people become essential. So, how do you tackle onboarding? Should you bury yourself in docs first, or get hands-on right away?
Reddit user tr14l offers a satirical take on the absolute worst approach:
First, you open docs and read the title of every 4th item. Then, in stand up for the next 4 weeks you mention the names of those doc pages. Then, once you’ve milked that you talk about environment setup for another 2 weeks. At the end of the second week you’ll have to mention some security or access problem that you are waiting to hear back from. Try to stretch that out for another 2 weeks. Then you have a family emergency for a week or two. By then you should be on final interview stage for the next company. Put in your two weeks. Rinse and repeat for 15 years.
The point? Avoid real work. Coast. Complain. But that’s not you. You’re driven to create, to grow, to add real value—not to read docs and wait around.
This note explores effective onboarding. On a team, how do you tap colleagues’ knowledge without draining their time? How do you make sense of a large, unknown codebase? We’ve both been there—let’s dive in.
Going solo? Skip this part. But for team efforts, the people element is unavoidable.
Others rely on you. You rely on others. To get unblocked, seek guidance, or—hear me out—borrow hard-won experience during those early days. The trick? Do it thoughtfully. Respect their time and focus.
Andrew Bosworth’s “Career Cold Start Algorithm” offers a simple framework. It caps the burden you place on any single person to just 30 minutes—one focused meeting to accelerate your understanding. Here’s what to do:
Ryan Peterman suggests a practical twist by narrowing the search space. Start by asking your manager or tech lead for the initial list of people to talk to. Ask those people targeted questions during the 30 minute meeting:
By asking the right people the right questions, you’ll get up to speed faster—without draining your new colleagues.
~ ~ ~
Sadly this approach falls apart when you’re outside a formal team structure. Reaching out to open source contributors? Contacting strangers online? (Stranger danger.) The Career Cold Start Algorithm hits a wall. These people don’t owe you 30 minutes of their time. Fear not—other strategies can bridge that gap.
Join the conversation where it’s already happening. Most distributed group efforts maintain active forums through GitHub Discussions, Slack channels, Discord servers, or mailing lists. These spaces buzz with support requests and collaborative problem-solving.
Introduce yourself. Share your background. Express genuine interest in contributing. Many communities welcome newcomers warmly and offer guidance to those who approach respectfully.
Participate before you ask. Jump into existing discussions. Comment thoughtfully on issues. Help others as your comfort grows. This builds goodwill and demonstrates your commitment to the project.
Seek mentorship. Some projects offer formal mentoring programs that pair newcomers with experienced contributors. Others provide informal guidance through dedicated channels or office hours. These relationships make onboarding smoother and more personal—transforming what could be an intimidating process into a supported journey.
The key difference? You’re earning your place in the conversation rather than requesting it outright. Build relationships through contribution, not through cold outreach.
“How can I contribute?” you ask. “The codebase is massive.” Lucky you—that’s exactly what we’re tackling next.
People
Code
Code is easy to understand when you know what it’s trying to achieve. never start with the code; end with it!
Basically look at a typical endpoint (for example) and try to understand where all the data flows
They all have the same issue, lack of documentation that maps to the source code implementation!
I went through this recently, best way for me was to just take tickets that touch all different parts of the code, instead of focusing on one service or module
But when you don’t have it at all, out of date would be more helpful than nothing!)
Follow a sort of “domain path” or the journey some bit of data takes, just cmd+clicking through to the classes and services, and if something feels like a dead end or black hole, make a point to come back but don’t let it hang you up from grokking the general a-to-b path
Often, a product’s architecture will involve many code bases spread across teams, languages, and even continents
Every time you’re working on something, dig a bit deeper than you need to get the job done
For me I use top down approach.
Diving to codebase without context is a nightmare
Undersanding a code base:
Code ditribution
cloc . --by-file
Structure
[1] Ryan Peterman, “How To Onboard,” developing.dev, 2025-07-14. [Online]. Available: https://www.developing.dev/p/how-to-onboard. [Accessed: 2025-07-14].
[2] A. Bosworth, “A Career Cold Start Algorithm,” boz.com, Jul. 14, 2025. [Online]. Available: https://boz.com/articles/career-cold-start. [Accessed: 2025-07-15].
[3] Reddit user community, “How to efficiently familiarise yourself with a large codebase at a new job?”, r/ExperiencedDevs, Reddit, Aug. 23, 2022. [Online]. Available: https://www.reddit.com/r/ExperiencedDevs/comments/wud22m/how_to_efficiently_familiarise_yourself_with_a/. [Accessed: 2025-07-14].
[4] Hacker News user community, “Ask HN: How do you efficiently get up to speed on a large codebase?”, Hacker News, May 13, 2019. [Online]. Available: https://news.ycombinator.com/item?id=19924100. [Accessed: 2025-07-15].
[5]
~ stay curious ~