In my experience, a junior developer is one that
1. Thinks through problem very linearly, leading to very long and complicated functions.
2. Only thinks about the happy path. They don't validate inputs or analyze what could go wrong and handle those cases.
I can't tell you how many bugs I've fixed because programmers write code that only works if everything goes exactly the way they expect.