Job Description
We are seeking a talented and experienced DevOps Engineer to join our dynamic tech team. In this role, you will be instrumental in designing, implementing, and maintaining the infrastructure that supports our rapidly evolving platform. You will collaborate closely with our development, QA, and product teams to streamline deployment processes, enhance system performance, and ensure the scalability and reliability of our services.
Key Responsibilities:
- Design, implement, and manage scalable, secure, and reliable infrastructure on AWS EC2.
- Utilize Docker, Kubernetes, and EKS for containerization and orchestration of microservices.
- Develop and maintain CI/CD pipelines using GitLab and ArgoCD to automate the build, test, and deployment processes.
- Integrate QA tooling into CI/CD pipelines, including Cypress for E2E testing.
Configuration and Automation:
- Implement Infrastructure as Code (IaC) using Terraform for efficient resource provisioning.
- Manage configuration management using Ansible to automate system configurations and deployments.
Networking and Security:
- Configure and manage load balancers using Traefik to ensure optimal traffic distribution.
- Implement service mesh technologies like LinkerD to manage service-to-service communication securely.
- Ensure infrastructure security and compliance with industry best practices.
Monitoring and Logging:
- Set up and maintain monitoring and alerting systems using tools like CloudWatch, Prometheus, Grafana, and Splunk.
- Proactively identify and resolve system issues to maintain high availability and performance.
Collaboration and Support:
- Work closely with development and QA teams to understand application requirements and ensure seamless integration.
- Provide support for development and staging environments, facilitating efficient testing and deployment cycles.
Optimization and Cost Management:
- Analyze system performance metrics to optimize infrastructure for cost and efficiency.
- Implement strategies for resource optimization without compromising on performance.
Requirements
- Bachelor's degree in Computer Science, Information Technology, Engineering, or a related field.
- Minimum of 3 years of experience in a DevOps or similar role.
- Proven experience with AWS services, particularly EC2, RDS, and networking components.
- Strong expertise in containerization using Docker and orchestration with Kubernetes.
- Past experience as a software developer is highly advantageous.
- Proficiency in setting up CI/CD pipelines using GitLab and ArgoCD.
- Hands-on experience with Infrastructure as Code tools like Terraform.
- Familiarity with configuration management tools such as Ansible.
- Knowledge of load balancing with Traefik and service mesh implementations using LinkerD.
- Experience with logging and monitoring tools, specifically Splunk.
- Scripting skills in Bash, Python, or Go for automation tasks.
- Understanding of microservices architecture and RESTful APIs.
- Familiarity with our tech stack is a plus: TypeScript, Go, ReactJS, ExpressJS,
- Gin-gonic, GraphQL with JWT authentication.
Soft Skills:
- Strong problem-solving and analytical abilities.
- Excellent communication and interpersonal skills.
- Ability to work collaboratively in a fast-paced, agile environment.
- Detail-oriented with a focus on delivering high-quality work.
Preferred Qualifications:
- Certifications such as AWS Certified DevOps Engineer, Certified Kubernetes Administrator (CKA), or similar.
- Knowledge of Redis, MySQL, PostgreSQL, and Elasticsearch.
- Experience with QA tools integration, including Cypress and Pact.js.