BS in Computer Science or a related degree; MS preferred. Strong object-oriented design and development skills. Experience working on large-scale distributed systems. Proficiency in algorithms and design focused on performance and scalability. 3+ years of full lifecycle software development experience. 3+ years of backend experience with Java, C++ or similar systems languages.