Mid. Dev: Knows Best Practices and how to implement them. Knows what questions to ask.
Experienced Dev: Understands why best practices are best practices. Can give insightfull answers.
Senior Dev: Pushes the boundaries of best practices and when to ignore them. Questions him/herself a lot.
And then there are D. Knuth level developers which I still have to figure out.
Junior: doesn't know how to create tests for their code
Mid: Creates the tests but leaves some important parts untested or tests have bad practices.
Experienced: Creates the right tests but might overdo.
Senior: Tests only the stuff that matters and knows when it's not worth it.
Mid. Dev: Knows Best Practices and how to implement them. Knows what questions to ask.
Experienced Dev: Understands why best practices are best practices. Can give insightfull answers.
Senior Dev: Pushes the boundaries of best practices and when to ignore them. Questions him/herself a lot.
And then there are D. Knuth level developers which I still have to figure out.