I have a coworker who works harder than anyone else on the team, he's the most productive and knows the codebase in depth. I can see him getting a nice bonus, he deserves it, but I don't think he will be promoted. For one, my boss just hired someone more senior and I think his plan is to move that person into management. The other thing is, it would kill our team's productivity to lose our best programmer, he's too useful in his current role.