The Tech Lead will be part of an agile development team, building enterprise grade Applications with different platforms. The Tech Lead-Software Development is responsible for supervising their team members through coaching, mentorship, they are responsible for the development of their team members and for the overall performance of their teams as well as shaping the technical road map and standards for iHerb's applications.
- 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
- Lead the team's software architecture and design
- 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
- Guide team development efforts towards successful project delivery.
- 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
- 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.
- Prepare reports, manuals and other documentation on the status, operation and maintenance of software.
- Design, develop, and unit test applications in accordance with established standards.
- Collaborates and adds value through participation in peer code reviews, providing comments and suggestions
- Package and support deployment of releases.
- Analyze and resolve technical and application problems.
- Assess opportunities for application and process improvement and prepare documentation of rationale to share with team members and other affected parties.
- Adhere to high-quality development principles while delivering solutions on time and on budget.
- Provide third-level support to users.
- Flexible schedule to work with other time zones
- Serve as a link between team members and the management team
- Travel may be required
- Research and evaluate a variety of software products
Knowledge, Skills and Abilities:
- Solid communication skills
- Strong knowledge of system architecture, best practices and design patterns
- Strong knowledge of design and implementation of distributed systems (SOA, Micro Services, Docker, etc)
- Ability to inspire team
- Expert knowledge of and ability to communicate software architecture and design principles
- Expert in writing testable software
- Expert in design patterns which decouple the UI from the business logic
- Proven track record being technical lead of software projects from inception to successful release
- Strong knowledge in CI/CD systems
- Proficient with Object Oriented programming
- Experience leading a team
- Experience with source control systems
- Experience with agile development methodologies
- Experience with debugging, performance profiling and optimization
- Strong initiative to find ways to improve solutions, systems, and processes
- Writes and implements quality procedures.
- Must be able to manage the team's day to day matters: scheduling resources, time off requests, feedback on a timely consistent basis
Education and Experience:
- Requires a minimum of 7 - 10 years of experience with software development, design patterns, software architecture
- Bachelor's Degree required. An emphasis in Computer Science is preferred