Minimum 5 years experience as a software engineer  A firm grasp of Computer Science fundamentals including object oriented design, data structures, algorithm design, problem solving and complexity analysis  Skilled at traversing existing code and deciding when to make short-term fixes and when to refactor a system  Experience balancing short-term vs