You don't need to master the whole code base in order to make high quality contributions but you need to be aware of what you don't know and focus your efforts on the parts that you understand really well while learning more about the parts that you don't understand. You can learn as you go throughout for the first 3 months.
If you're already familiar with the framework that the company is using, that's already a big step. Peer review can help as well.
Most good companies have similar coding styles and follow similar practices but they might have different requirements when it comes to testing, security, scalability, Agile/Scrum, etc...
Ooooooh! Yeah, I should have caught that earlier. 6 months now makes a lot more sense.
We basically hire for sections of the codebase. It's pretty common for developers to discover the existence of an area of code that they haven't had to touch before and were unaware of the existence of even years after starting to work here.
For reference, the Bible has ~30k verses in it. A verse isn't a line of code, but I'd say mastering the Bible is a good benchmark for equivalent complexity to coding. If anything the Bible is more straightforward than a 2 million line code base.
The people who'd I'd say mastered the core codebase were the people that wrote it. Over the last couple years, they've been laid off one by one, but most of them have been around for 15-18 years already (the prototypes were built around 1998, and I think that the current code descends from stuff written in 1999). I've been around it for about 8 years now, in total. I wrote most of the current build system, a lot of the packaging code, the initial version of two or three of the plugins, and individual features in a few of the others.
The Bible has a distinctly different kind of complexity, though. Social complexity, rather than technical. A line of code has an unambiguous meaning, with other lines of code, the OS, and the underlying hardware providing an unambiguous context. A verse of scripture can have multiple simultaneous meanings, and the context is provided both by surrounding text and by the millennia-old cultures that the verses were written in. I'm not sure how I'd make the comparison.
We aren't doctors, we just need the skills to figure things out and fix them quickly.
My point was that someone can ramp up quickly on a portion of the system and have a vague idea of other parts of it, but "mastering" it covers too much code to do it in a reasonable time. Each plugin introduces special cases for the data flow, and the plumbing for that ends up running through the whole system.