Job Summary:
Our organization is responsible for innovating the eCommerce shipping and global logistics domain for iHerb Supply Chain Solutions. We are looking for a talented, hands-on Principal Software Developer who is able to influence their immediate team and peers and enjoy mentoring other engineers in core aspects of their technology domain. This individual will be a driving force behind a talented and “humbitious” team of engineers building a multi-tenant SaaS product hosted in AWS for a fast growing international client base of shippers. The Principal Software Developer will be working on complex problems including high scale and fault tolerant services to spearhead iHerb’s investment in the shipping, sort center, carrier and global logistics business. You will be laser focused on outcomes and have a solid track record of delivering technology projects that are robust, meet the scope of work, and most importantly, on schedule. You are excited to identify technology trends happening in the marketplace, exploit them to the advantage of iHerb SCS resulting in cost savings and/or increased revenue. You read and experiment with new technology not because it’s your job, but because you want to. Your experience with data driven engineering, microservice and/or event driven serverless architectures empowers you to make informed decisions to solve our most complex technical problems. At iHerb SCS, you will be surrounded with amazing peers and be given challenging projects to stretch your skills. We strive for a culture of learning and honesty so we can help each other grow regardless of title or role. You will be a key representative of our architectural review board and responsible for the research, design, and evolution of iHerb’s growing technology stack. As a Principal, you will be responsible for the integrity and durability of a technology tier (or tiers) and own the technical aspects of its development from inception, release, and evolution. You will work with the engineering leadership team to strategically develop an actionable roadmap that aligns those technology choices with business need.
Job Expectations:
- Responsible for the ownership (architecture/design/implementation and deployments) of complex software components and systems
- Follow secure programming and web application security best practices
- Regular practice of CI/CD
- Coach the team on software best practices (design, coding, troubleshooting, work breakdown, work estimation, refactor strategies, automated testing, etc.)
- Must be able to mentor all levels
- Work closely with the other teams to optimize system architecture and project efficiency
- Partner with our Product Owner to plan work and prioritization
- Provide technical leadership to teammates through coaching and mentorship
- Maintain high standards of software quality within the team by establishing good practices and habits
- Provide regular updates on projects and team performance
- Adhere to high-quality development principles while delivering solutions on-time and on-budget
- Identify and encourage areas for growth and improvement within the team
- 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
- Ensure the software implementation is in line with the proposed software architecture and recommended design patterns
- Analyze and resolve technical and application problems
- Research and evaluate a variety of software products
The duties and responsibilities described above may provide only a partial description of this position. This is not an exhaustive list of all aspects of the job. Other duties and responsibilities not outlined in this document may be added as necessary or desirable, with or without notice.
Knowledge, Skills and Abilities:
- Solid communication skills
- Must be able to coach the team on software best practices (design, coding, troubleshooting, work breakdown, work estimation, refactor strategies, automated testing, etc.)
- Ability to inspire a team and a strong salesman of ideas
- Experience leading a team
- Expert knowledge and experience in Distributed systems, MicroServices, SOA and n-tier architectures
- Expert in Object-oriented Design and Analysis (OOA and OOD)
- Strong knowledge of C# .NET, Java or Go
- Solid knowledge of Relational and non-relational DBs
- In-depth knowledge of REST API, event-driven architecture applications, caching, scaling, security, etc
- Solid knowledge of CI/CD pipelines, automated testing and deployment
- Expert in debugging, performance profiling and optimization
- Production experience with Docker, Kubernetes is a plus
- Experience with DDD, Event-Sourcing and CQRS is a plus
- Team player with a get it done attitude
- Knowledge of the agile development process and Continuous Integration practices and tools
Equipment Knowledge:
- Experience with Microsoft Office Suite (Word, Excel, PowerPoint)
- Experience with Google Business Suite (Gmail, Drive, Docs, Sheets, Forms) preferred
Experience Requirements:
Requires a minimum of eight (8) years to ten (10) years of experience with software development, design patterns, software architecture
Education Requirements:
Bachelor’s Degree in Computer Science/Engineering or related fields + equivalent work experience
#LI-BF1
#LI-Remote
At iHerb we strive for innovation, targeted at delivering a customer-centric experience while transforming the online shopping experience. We change direction and define ourselves in the idea that individually we are incredible but united our growth is infinite and paramount to our success. iHerb strives to be the global industry leader!
iHerb is an Equal Opportunity employer. All qualified applicants will receive consideration for employment without regard to race, color, religion, sex, sexual orientation, gender identity, national origin, disability or veteran status. iHerb provides equal employment opportunities to all applicants for employment and prohibits discrimination and harassment.