In
High Output Management, Andy Grove stresses the importance of training staff in their duties. In fact, he lists it as one of only two methods of improving performance (the other pertaining motivation).
Of course, any time we do anything we "train" ourselves in it and get better at it, but if this was the only training one had, it would be what Grove discourages and refers to as "the customer paying the tuition."
So, clearly, Grove refers to actual, explicit training that is not simply learning on the job. He never goes into detail about how to do this; I assume because it's such an obvious, in-grained thing in all other disciplines that it needs no details.
Yet I've never seen it done in software engineering. So how does your organisation do it? Why do you think it works? What have you tried that didn't work?
Have you decided not to do it? Why?
The next day, and throughout the first week, give them deeper dives into individual systems. Every time you do this start from the overview again, so they're reminded. Always keep it a conversation, go back to different parts when the engineer asks questions that show they haven't understood something you've gone over before. This is normal as you're unloading a lot of knowledge you've built over time. Make sure you keep focused on the mission of sharing knowledge and do not let yourself get lost into too many side chats about how your pet peeves are never prioritised to be fixed and how you hate technical debt - this is not the time.
Once they've setup their company emails and whatever your HR demands, start by giving them a simple task and leave them on their own with the expectation that they will reach out once blocked. Check if they're blocked yourself multiple times during the day. A new dev might be reluctant to reach out for fear of being perceived as too junior. Let them know this is not a concern, the concern is to ramp them up as soon as possible and questions are the best way to do it.
Remember to ask them about the pace, how they're feeling, what they're struggling with or if they're eager for more. Some people will prefer a few more days reading docs, others prefer to jump in to the work straight away. I've seen both approaches work and try to adjust myself to the way the person likes to work best.
Increasingly give them more complex tasks, have them pair with other engineers. Remember that not only you're onboarding them on the systems, you're onboarding them to the people. Make sure their work is throughly reviewed, take your time to explain why things are done in certain ways, take all oportunities to give further back context.
As time goes on, apply a similar playbook to give them extra duties, complex issues to solve, more permissions, etc.
PS: Grove's book is great, definitely recommend it