Staff Software Engineer
Current• Working closely with other software engineers, architects, operations engineers, and product managers.• Participating in our Agile/SCRUM process. Creating designs to support short, iterative delivery cycles.• Contributing to architectural design decisions.• Participating in operational related discussions.• Designing and supporting high traffic, highly available systems.• Contributing to test plans.• Conducting and participating in group code reviews, ensuring high-quality coding standards across the team.• Designing maintainable, testable code with high test coverage requirements.• Adding integration and acceptance test coverage to new features.• Evaluating and investigating alternatives to existing solutions, proposing new designs and technologies.• Working with modern DevOps concepts such as Docker, Kubernetes, Serverless, Terraform.• Deployment of software to a cloud platform environment, such as AWS, GCP, Azure.• Persisting data with NoSQL, as well as relational data stores. Examples include DynamoDB, PostgreSQL, Mysql, RedshiftDB, Redis etc. • Working with distributed messaging and streaming technologies, such as RabbitMQ, Kinesis, Kafka.• Delivering on multiple competing priorities with little supervision.• Designing microservice-based architectures.• Improvising code base continuously with modern software engineering principles, patterns, and best practices. • Effectively communicating technical concepts to team members, architects, and team leads.• Migrating different components from RabbitMQ to Kafka (Amazon MSK)• Dockerized each component to work on (Amazon EKS) Kubernetes Cluster to support autoscaling and reduce the dependency of the developer on Dev-Ops resources• Implemented health-checks for each component to ensure availability of components on Kubernetes