iHerb is a leading eCommerce platform specializing in health and wellness products. They are seeking a Sr. Software Development Engineer to join their agile development team, focusing on building scalable payment domain services and ensuring high standards of software quality.
Responsibilities:
- Works with an agile development team that designs, develops and maintains scalable services
- Responsible for writing technical design specifications
- Recommend and develop an architectural and detailed design that is used by other members of the development teams
- Coach the team on software best practices (design, coding, troubleshooting, work breakdown, work estimation, refactor strategies, automated testing, etc.)
- Work closely with the other teams to optimize system architecture and project efficiency
- Partner with our Product Owner to plan work and prioritization
- Maintain high standards of software quality within the team by establishing good practices and habits
- Assist in the collection and documentation of user's requirements, development of user stories, estimates and work plans
- Collaborate and add value through participation in peer code reviews, providing comments and suggestions
- Analyze and resolve technical and application problems
- Regular practice of CI/CD
- Support, maintain and document software functionality
- Research and evaluate a variety of software products; create PoCs as necessary to demonstrate new ideas and technologies
Requirements:
- Minimum of 5 years of experience with software development, design patterns, software architecture
- Strong knowledge of system architecture, best practices and design patterns
- Strong background with .NET Core, C#, Kubernetes / Docker
- Knowledge and experience in Distributed systems, MicroServices, SOA and n-tier architectures
- Strong knowledge of Relational and non-relational DBs
- Knowledge of REST API, event-driven architecture applications, caching, scaling, security, etc
- Strong knowledge of Managed Memory Architecture / Garbage Collector / Cache Management
- Expert knowledge of and ability to communicate software architecture and design principles
- Expert in writing testable software
- Expert in design
- Strong knowledge in CI/CD systems
- Proficient with Object Oriented programming
- Experience with source control systems(git)
- Experience with agile development methodologies
- Experience with debugging, performance profiling and optimization
- Strong initiative to find ways to improve solutions, systems
- Attention to quality through unit tests, integration tests, and code reviews
- Understanding of queue processing(MSMQ , RabbitMQ, Kafka)
- Relational Database Experience (MSSQL, Postgres)
- Bachelor's Degree required. An emphasis in Computer Science is preferred
- Experience with e-commerce payment systems
- Experience in Distributed systems, MicroServices
- Experience with REST API, event-driven architecture applications, caching, scaling, security
- Experience with Relational and non-relational DBs
- 5+ Years of experience working with C#, .NET Core
- Experience using Kubernetes, Helm, and Docker
- Experience building dashboards and alerts
- Experience using Prometheus, Grafana, Elasticsearch, Kibana
- Experience in the CI/CD
- Experience as a mentor, tech lead or leading an engineering team
- Experience working with RabbitMQ, Redis, Kafka