· Computer Science degree, or equivalent experience.
· Ability to gather customer requirements and deliver innovative solutions.
· Strong track record of launching projects of significant complexity.
· Ability to mentor other software developers to maintain architectural vision and software quality.
· Experience with software engineering best practices (code reviews, source control management, build processes, testing, release and change management).
· Strong problem solving and coding skills.
· Understanding of data structures, algorithms and their performance.
· Proficient at designing software systems, from high-availability large-scale distributed systems to your application’s object model.
· Understanding of the building blocks of computer systems; comfortable working with bits & bytes.
· Knowledge of at least one scripting language.
· Comfortable with Linux and a good understanding of networking concepts.