· Bachelor’s or Ph.D degree in Computer Science or equivalent work experience.
· 5+ years professional experience in software development of multi-threaded, scalable and highly-available distributed systems.
· Computer Science fundamentals in object-oriented design, data structures, high-performance computing.
· Computer Science fundamentals in algorithm design, complexity analysis, problem solving and diagnosis.
· Proficiency in, at least, one modern programming language such as Java, Python, C/C++, C#, Perl.