Sr. Software Development Engineer
Role details
Job location
Tech stack
Job description
The Sr. Software Development Engineer will be part of an agile development team, building and working on transportation management services. The Sr. Software Developer develops information systems by designing, developing, and installing software solutions that are scalable for a high transaction environment., * 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.
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.
Requirements
- Communication skills: must be able to articulate and have a strong technical vocabulary
- Must be able to coach the team on software best practices (design, coding, troubleshooting, work breakdown, work estimation, refactor strategies, automated testing, etc.)
- Strong knowledge of system architecture, best practices and design patterns
- Evaluate and identify new technologies for implementation
- 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
- DDD and event driven architectures a plusAbility to inspire team
- 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)
- NoSQL databases(Elastic , Cassandra , Mongo )
- Relational Database Experience (MSSQL, Postgres)
Experience Requirements
- Requires a minimum of 5 years of experience with software development, design patterns, software architecture
- Experience with e-commerce payment systems preferred
- 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
Education Requirements
Bachelor's Degree required. An emphasis in Computer Science is preferred
Judgment/Reasoning Ability: Able to identify, troubleshoot and resolve problems quickly using sound judgment, poise and diplomacy. Ability to use judgment and reasoning skills, and determine when to escalate issues, as required, in a timely manner.
Physical Demands (Reasonable accommodations may be made to enable individuals with disabilities to perform the essential functions.) While performing the duties of this job, the team member is regularly required to talk and hear. The team member is frequently required to sit; use hands and fingers, bend, stoop and reach with hands and arms. May require walking primarily on a level surface for periodic periods throughout the day. Reaching above shoulder heights, below the waist or lifting as required to file documents or store materials throughout the work day. Proper lifting techniques required. May include lifting up to 25 pounds.
Work Environment: The noise in the work environment is usually moderate. Other factors are:
- Hectic, fast-paced with multi-level distractions
- Professional, yet casual work environment
- Office / Warehouse environment
- Ability to work extended hours as required
The anticipated pay scale for this position can be found below, however the pay range applicable to you may vary by geographic location based on where the job is located or where you work. The final pay offered to a successful candidate will be dependent on several factors that may include but are not limited to the type and years of experience within the job, the type of years and experience within the industry, education, etc. iHerb, LLC is a multi-state employer and this pay scale may not reflect positions that work in other states or locations.
Benefits & conditions
Employees (and their families) that meet eligibility criteria as outlined in applicable plan documents are eligible to participate in our medical, dental, vision, and basic life insurance programs and may enroll in our company's 401(k) plan. Employees will also be eligible for Time Off and Paid Sick Leave pursuant to the company's policies. Employees will enjoy paid holidays throughout the calendar year. Eligibility requirements for these benefits will be controlled by applicable plan documents.
Hired applicant may be awarded Restrict Stock Units and receive annual bonuses pursuant to eligibility and performance criteria defined in the respective plan documents and policies.