This is something I rarely see talked about. How do you hire a grad or junior dev who is remote? How do you mentor them and (over years) help them grow into a senior dev?
From where I sit, "remote first" is all too often a code word for "only senior devs need apply".
Yep, I've mentored junior developers over video chat and Slack. If they have good communication skills (which is much needed for remote!) then they can write questions or ask to be shown something remotely just as well as in person.
In our experience, the day-to-day mechanics aren't too terribly different, but it requires more planning and management commitment. All the things that everyone SAYS they do when the bring on grad/junior devs, matter more, because the spray-and-pray of "hire 10 juniors and throw them in the ring and hope for osmosis" fails pretty badly.
When we bring on a junior, it's typically targeting a specific effort, with a specific team/mentor structure, and a desired exit strategy - at the end of X months, we expect the person will be capable of Y and Z, at which point they can fill these rolls in this other planned effort.
The mainline developer track isn't too tough to negotiate (a Java Dev 1 can do X, a Java Dev 2 can do Y, and so forth), but the harder part of the journey is cultivating breadth. Getting them experience with setting up a build system, or alternate OS familiarity, or learning color theory, or how to interpret a security scan.
From where I sit, "remote first" is all too often a code word for "only senior devs need apply".