Key Accountabilities Conducts analysis to determine system requirements and system impacts for new or enhanced applications in order to plan and provide estimates for development tasksDetermines development approach options and recommends the most effective approachEngages with business users, business/technical analysts, solution architects and others to understand needs and requirements for project and maintenance development tasksDesigns and codes quality programs of all levels of complexity in alignment with business requirements and solution architecture for project and maintenance activitiesConducts unit testing, support during system testing and implementation activities for difficult and complex programsProvides emergency technical support and resolution of production problems and other maintenance activities to ensure that applications are performing well and as designed to ensure high system availability, strong data integrity and accurate/timely reportingProvides input to the programming practices and standard to ensure these are up-to-date and of a high-quality standardChallenges existing processes and practices to continuously drive efficiencies and technology delivery performanceMentors and develops analyst programmers to support achievement of key performance indicators, ensuring further development of technical knowledge and service delivery standards Knowledge, Skills And Experience Bachelor’s degree in computer science or related field gained through 8 or more years of experience in a similar development environmentSignificant knowledge of object-oriented programming, applying SOLID principals and design patternsExcellent knowledge of system development lifecycle methodologies including agileProven track record in integration and development of distributed software applications including cloud-based applicationsHighly skilled in analysis, problem solving, troubleshooting, debugging and performance tuningStrong verbal and written communication skills Must Have Strong experience with JavaScript, especially familiar with ES6Strong Node JS knowledge; know how to build up RESTful endpoint with Express frameworkStrong SQL skill, familiar with at least one DB product, better to be PostgreSQLHas knowledge of microservices; familiar with at least one message queue product, better to be RabbitMQFamiliar with RedisHeroku platform experience – know how to configure dyno – upgrade / downgrade / attach resources; know how to deploy and monitor app status / logsKnowledge with Heroku Connect – know how to setup mapping / bi-way writing / troubleshooting skillsStrong Git knowledge together with CI/CD experience Nice To Have SFMC experience, especially know AMPScript / SSJS / GTL for communication via APIHeroku platform setup – domain, SSL, user access, creating pipelinesFamiliar with Heroku CLI / LogDNA operationFamiliar with Docker / Kubernates (bonus points)