A college degree or equivalent experience in Computer Science or similar field, including a solid understanding of Computer Science fundamentals
5+ years of developing and implementing systems at scale preferred
Strong understanding of computer science concepts, object-oriented design principles
Strong understanding of distributed systems, operating systems, networking, databases, security, and analytics
Experience developing software in different programming languages, and demonstrated ability to quickly learn new languages, preferred languages Javascript, Java (Spring), Python and C# on Microsoft Core
Experience in developing REST APIs versioning, service discovery/registration, testing and management; experience using API gateways a plus
Experience with web and API security including authentication, authorization, OAuth, OWASP, OpenID, and SAML
Experience in backend development design and implementation; database (relational, NoSQL, caching) and messaging, implementation and optimization
Experience in responsive web front end / single page application development using modular JavaScript, React including apps targeted for mobile devices
Hands on experience on modern JavaScript tools
Experience developing continuous integration, continuous delivery and continuous deployment pipelines for distributed apps. Git and Jenkins a plus.
Knowledge and experience on approaches and tools for automated testing and monitoring
Experience working in an eXtreme Programming (XP) or agile environment
Experience in Test Driven Development; including knowledge and experience in testing frameworks like junit, mockito, jasmine, enzyme, jest and other like technologies