I'm looking at the job market (as I imagine many are at the moment...) and I wanted to ask what the general consensus is on the skill levels required for "intermediate" or "junior" developers (PHP). For example, what tasks should an "intermediate" developer be able to handle - and what would you expect from a junior?
First thing: I hate this sort of title. Only give someone the title junior if you want them to act in a junior manner. I'm not disputing that people are at different levels, just don't put it in the title, it's demeaning. Just go with developer and leave it at that.
My take would be (for any language):
"Junior" - generally requires assistance and mentoring and trusted primarily with smaller or simpler changes and fixes. Knowledge around areas outside core skills (version control, other languages, best practice) tends to be weak.
"Intermediate" - able to work independently on larger code modules and fixes, can do some mentoring of more junior staff members, has a reasonable knowledge of best practice and some other skills around their core competencies. Likely 2 - 3 years plus commercial experience minimum.
"Senior" - seen as a "go to" point for their key skills. Capable of leading good size projects and mentoring others. Champions best practice, frequently and actively suggesting improvements. Good wider knowledge or technology and the industry. Has shown themselves to be pragmatic and versatile and is likely to have some understanding of the business they work in. Likely 5 - 10 years plus commercial experience minimum.