Question: I have 3 levels of users in my Team Foundation Server:

1. **Programmer**: A code reviewer must review their code and they cannot check in their own code
2. **Professional Programmer**: Their code doesn't need to be reviewed but a copy of their code should be automatically sent to a code reviewer
3. **Code Reviewer**: Their code doesn't need to be reviewed and can be checked in directly

How can i implement this ?

Answer: 
+1 Jason
one of the good 3rd party is team review

<http://teamreview.codeplex.com/>
If you can upgrade to Visual Studio 2012, then there is a great code review interface built right into the Team Explorer UI now (Requires TFS 2012 as well). Check it out:

<http://blogs.msdn.com/b/mvpawardprogram/archive/2012/09/04/new-code-review-feature-in-visual-studio-2012.aspx>