Software Engineer (AEM)

Mumbai - India

The Software Engineer will work in an integrated team that embraces Agile methodology with an emphasis on continuous integration and continuous delivery. The developer will participate in full life-cycle web, application and digital marketing platform development and implementation projects. A successful engineer will be able to build high-quality, innovative secure and high performing software in compliance with coding standards and technical designs. The engineer will also attend internal and external training and certification programs to acquire skills and expertise with platforms and products company works with, for example, Adobe AEM, Salesforce, Chef.

Responsibilities


  • Participate in the implementation of Adobe Experience Manager platform, including design, definition, and development of AEM content type models, workflows, templates, and components, and permissions.
  • Implement AEM templates, Components (Sightly, Touch UI, JSP, HTML, CSS, JavaScript), OSGI Services (Java), and Servlets (Java)
  • Implement Microservices using technologies such as SpringBoot and NodeJS.  
  • Set up and configure development and testing environments in-house or in Cloud on multiple operating systems as Linux and Windows Server and enterprise databases such as Oracle, MongoDB, SQL Server. 
  • Work with Infrastructure Provisioning tools such as Chef, Docker, Ansible and develop cookbook’s, recipes, scripts to perform automated provisioning of environments.
  • Assist in deploying applications to Development, QA and Production environments and support content and code propagations across different environments.   
  • Follow best practices for secure web programming and deployment. Adhere to internal best practices with respect to coding standards, unit test coverage, automation, and continuous integration.
  • Troubleshoot and address complex technical problems involving network issues, security issues, performance and application integrations. 
  • Work under the supervision of a technical lead or director and, coordinate on programming and development tasks in an agile environment with scrum teams, product owners and product managers.
  • Participate and contribute in technical design sessions by reviewing and analyzing specifications for performance, security, portability, maintainability, and implementation concerns and provide feedback to the lead. 
  • Participate in scrums (daily standup meetings), backlog grooming and sprint planning sessions to communicate the status of deliverables to team members and supervisors, provide estimations of effort and breakdown development stories into actionable tasks.
  • Maintain regular communication with the team including product managers, architects, product owners, and stakeholders, ensuring opportunities and challenges are addressed in a timely manner.

Requirements


  • Bachelor’s degree in Computer Science or alternative related field along with a minimum of 3 to 5 years of demonstrated work experience is required; Master’s degree with at-least 2 to 3 years of experience preferred. 
  • AEM 6 Developer Certification Preferred (if no certification, then experience with 3 to 5 AEM Projects or a strong understanding of Java and Web Application Development is required).
  • Knowledge of at least three of the object-oriented programming languages such as Java, Ruby, Node, Python, or JavaScript is a must!
  • Strong Java/J2EE background along with working knowledge of Spring, Hibernate or other Web Application Development frameworks is a must!
  • Experience working with SQL, writing and optimizing Queries is a must!
  • Experience with JUnit and other testing frameworks is a must!
  • Systems administration experience, with Windows, CentOS, ubuntu or RH Linux is highly desirable.
  • Experience with Infrastructure automation tools such as Chef, Puppet, Docker, Vagrant is highly desirable.
  • Experience troubleshooting complex issues, such as memory leaks, thread dumps, application deadlocks, security issues in web application.
  • Familiarity with front-end technologies, HTML, CSS, angular and JavaScript experience is a must, should have the aptitude to learn front-end development.
  • Strong analytical, problem-solving skills and technical troubleshooting skills.
  • We expect the candidate to have good communication, analytical and presentation skills, problem-solving skills and learning attitude.
  • The candidate should have experience working in an Agile development environment.
  • Ability to work in a team in diverse/ multiple stakeholder environment is a must.