My 2 cents:
1. Good understanding of OS.
2. Good understanding of compiler theory (at least structure language).
3. Good understanding of common algrithms.
4. Expert of at least one computer language.
5. Fluent on programming methodologies, such as OO, XP, PO (procedure-oriented).
6. Read and write well in english.