Bachelor s Degree in Computer Science or related field
Equivalent experience to a Bachelor's degree based on 3 years of work experience for every 1 year of education
5+ years of software development experience.
Computer Science fundamentals in object-oriented design
Computer Science fundamentals in data structures
Computer Science fundamentals in algorithm design, problem solving, and complexity analysis
Knowledge of, at least, one modern programming language such as C, C++, C#, Java, or Perl
Proven experience mentoring and training the engineering community on complex technical issues.
Knowledge of professional software engineering practices & best practices for the full software development life cycle, including coding standards, code reviews, source control management, build processes, testing, and operations Experience taking a leading role in building complex software systems that have been successfully delivered to customers
Experience with distributed computing and enterprise-wide systems
Experience in communicating with users, other technical teams, and senior management to collect requirements, describe software product features, technical designs, and product strategy
Experience mentoring junior software engineers to improve their skills, and make them more effective, product software engineers
Experience influencing software engineers best practices within your team
Hands-on expertise in many disparate technologies, typically ranging from front-end user interfaces through to back-end systems and all points in between,