Perform all phases of software engineering including requirements analysis, application design, code development and testing (30%)
- Design and implement performance and operational enhancements.
- Review code and provide feedback relative to best practices and improving performance.
- Troubleshoot production support issues post-deployment and come up with solutions as required.
- Participate in an Agile/Scrum methodology to deliver high-quality software releases every 2 weeks through Sprints.
- Mentor and guide other software engineers within the team.
- Work with a team of software engineers for one or more Agile scrum teams assigned to work on the project.
- Designs, codes, tests, debug, and documents software, and enhance existing components to ensure that software meets business needs.
- Contribute to the design and architecture to enable secure, scalable, and maintainable software and should be able to clearly articulate the implications of design/architectural decisions, issues and plans to technology leadership.
- Design reusable components, frameworks and libraries and implement performance and operational enhancements using Java and perform unit testing using Groovy and Spock framework.
- Implement Spring MVC framework for the essential control flow, business level and UI validations and integrate Spring DAO for data access.
- Review code and provide feedback relative to best practices and improving performance.
- Troubleshoot production support issues post-deployment and come up with solutions as require.
CI/CD integration with Jenkins and GIT for version and access control (30%)
- Using Jenkins for CI and for end-to-end automation for all the builds and CD.
- Using GIT and GitHub for software configuration and source code management and maintaining code repositories for branching and tagging.
- Using Maven as a build tool to develop deployable software and artifacts.
- Using Kafka and RabbitMQ both to send/receive messages throughout cross applications.
- Using Docker Containers to improve development workflow, implement microservices, optimize speed and increase scalability.
- Integrated AWS services with third party tools such as Jenkins CI and CD pipelines for automated deployments across multiple environments.
- Developing and maintaining ad-hoc jobs on day to day basis as requirements.
- Used advanced Java 8 features like Lambda expressions for array operations, collections.
Design the Release Plans and deploying the required applications. Keeping track of all the releases and request of the developers through Infrastructure management tool. Continually work towards making improvements in the release process. (10%)
- Participate in an Agile/Scrum methodology to deliver high-quality software releases every 4 weeks through Sprints.
- Monitor release requests and user stories using Rally.
- Ensure QA certification for all sprint related activities in User Acceptance Test environment to enable effective Production release management.
Working closely with application development, QA, Product Management, and Production
Operations teams to make sure Product Releases on-time with quality. (30%)
- Responsibilities include working with the governance teams to ensure code quality and effective releases.
- Keeping track of all the releases and request of the developers through Infrastructure management tool.
- Ensure QA certification for all sprint related activities in User Acceptance Test environment to enable effective Production release management.
- Estimate engineering work effort for engineering team and effectively identify and prioritize the high impact tasks.
- Participate in on-call Dev-Ops support rotation.
- Worked closely with other teams to resolve cross functional issues.
- Provided on-call support for critical production systems.
- Performed root cause analysis to determine underlying causes of incidents.
- Led team meetings focused on identifying process improvements for resolving incidents more quickly.