His CV needs to get him an interview and I think he is selling himself short.
Personally 'junior' means 'trainee'. Anyone who after five years is still a trainee would have their CV thrown straight into the bin. But I have always worked in environments with very flat hierarchies. Juniors need supervision and mentoring, I expect anyone who been employed for more than a year to be capable of unsupervised work.
Disclaimer: I am the IT manager, I review all the CVs, I get to say who gets employed. I've yet to regret any hiring decision so I am reasonably confident in the methods I employ.
I've employed people with much less experience than the poster and they were up to speed in no time. In 5 years you could get a degree in almost any subject and complete a masters on top of it - at least in the UK.
I would expect competence in a programming language in weeks or months, not years. Note I require competence not expertise.