Infrastructure Analysis
Understand the current application infrastructure and recommend improvements.
**Best Practices**: Define and document best practices and strategies for application deployment and infrastructure maintenance.
**Migration**: Migrate our infrastructure with zero downtime to a highly available and scalable environment.
**Monitoring**: Set up a comprehensive monitoring stack to ensure system health and performance.
**Capacity Planning**: Define service capacity planning strategies to ensure system reliability and efficiency.
**CI/CD Implementation**: Implement the application’s CI/CD pipeline using the AWS CI/CD stack.
**Infrastructure as Code**: Write infrastructure as code using CloudFormation/Terraform or similar tools.
**Database Technologies**: Work with both SQL and NoSQL databases.
**Large-Scale Systems Design**: Apply knowledge of large-scale systems design.
**Troubleshooting**: Ability to troubleshoot distributed systems.
**Security Best Practices**: Implement and follow strong security best practices, such as using IAM Roles, KMS, etc.
**Cloud Awareness**: Stay updated on the latest AWS services, features, and best practices, incorporating them into cloud architecture and development processes.
**Team Collaboration**: Collaborate closely with cross-functional teams, including software engineers and DevOps professionals, to architect and deploy AWS solutions that meet project requirements.
Required Skills
**Java Development**: Expertise in Java 17 and above.
**Spring Boot**: Proficiency with the Spring Boot framework.
**AWS Services**: Deep understanding of AWS services and cloud solutions.
**Architecture Patterns**: Experience implementing microservices, event-driven, CQRS, and cloud-native architectures.
**CI/CD**: Strong understanding of CI/CD pipelines, particularly within the AWS ecosystem.
**Database Management**: Proficiency in both SQL and NoSQL databases.
**Message Brokers**: Experience with Kafka.
**Testing**: Ability to write various types of tests including unit, component, integration, end-to-end, and performance tests.
**Java Streaming**: Core understanding of Java streaming and AWS integration.
**Infrastructure as Code**: Experience with CloudFormation or similar tools for infrastructure management.
**Large-Scale Systems Design**: Experience with designing large-scale systems.
**Distributed Systems Troubleshooting**: Ability to troubleshoot distributed systems.
**Security Best Practices**: Strong knowledge of security best practices, including the use of IAM Roles, KMS, etc.
**Containerization and Orchestration**: Experience with Kubernetes, Docker, and Istio.
**Infrastructure Automation**: Proficiency in Terraform.
**Build Tools**: Familiarity with Maven and Helm.
**Continuous Delivery**: Experience with Argo CD.
Nice to Have
**Java 21**: Experience with Java 21.
**Cloud Migration**: Experience with cloud migration strategies.
**Kafka Streaming**: Familiarity with Kafka Streaming.
**GitLab**: Proficiency with GitLab for CI/CD processes.
**Behavior Driven Design**: Experience writing automation test cases in Cucumber using Behavior Driven Design (BDD).
**AWS Certified Solutions Architect**: Associate or Professional level certification required.
### Key Objectives
**Infrastructure Improvement**: Provide actionable insights and improvements for the current application infrastructure.
**Zero Downtime Migration**: Successfully migrate infrastructure with zero downtime, ensuring high availability and scalability.
**Monitoring and Capacity Planning**: Establish effective monitoring systems and capacity planning strategies to maintain robust application performance.
**CI/CD Automation**: Streamline application deployment and maintenance through an efficient CI/CD pipeline using AWS tools.
**Documentation and Best Practices**: Ensure comprehensive documentation and adherence to best practices in deployment and infrastructure maintenance.
**Security**: Implement and maintain robust security measures following best practices in the industry.