iHerb is on a mission to make health and wellness accessible to all. The Sr. Software Development Engineer will be part of an agile development team, building and working on transportation management services, developing scalable software solutions for a high transaction environment.
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
- 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
- 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
- Experience with e-commerce payment systems
- Experience in Distributed systems, MicroServices
- Experience with REST API, event-driven architecture applications, caching, scaling, security
- 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
- An emphasis in Computer Science is preferred