You should have extensive knowledge of programming paradigm and constructs, data structures, operating systems internals, algorithms and scripting languagesframework and a huge passion for solving complex problems