Senior Software Engineer – Search (Backend)
Posted Date: Jun-16-2021
Job ID: 20435
Job Type: Full Time
Job Function: Information Technology
Store: Seattle HQ
Remote Eligible: No
Please visit the Covid-19 Hiring Updates before applying
What's cool about this job
At REI we help our more than 5.5 million members have amazing outdoor experiences. It’s an exciting time as we’re rapidly changing to better meet our customer’s needs. We've set some lofty goals and the challenges that lie ahead are focused on providing exceptional gear and experiences to our members.
We currently have an exciting opportunity for a backend Senior Software Engineer to join our Search Platform team. In our team are avid climbers, hikers, campers, cyclists, musicians, artists and more that all have a passion for technology. This team is responsible for the Search platform and features that power REI.com. We are always working to improve our search results and experience for our customers. We invite you to join us on our journey. Bring your passion, curiosity and respect for your fellow humans and join a talented and innovative team focused on making our Search platform and experience the best on the planet.
- Analyzes, designs, develops, implements, documents, and maintains application systems, working on moderately complex to highly complex work tasks or project assignments.
- Gathers, analyzes and translates business and non-functional requirements into a solution design. May lead meetings to define business requirements and technical solutions. Executes tasks, estimates resources, establishes timelines, and prioritizes work.
- Designs, develops to specifications, and maintains application code in accordance with the current development and project management methodologies and best practices.
- Manages work assignments according to current project methodologies or as directed. Prepares required documentation for the portion of work assigned.
- Consults with Quality Assurance and Business Analysts in the development and execution of test plans.
- Ability to participate in on-call rotation for 24x7 service requirement.
- Provides technical assistance and problem resolution for assigned systems. Leads resolution of production support problems in accordance with problem management policies and procedures. Leads resolution of production support incidents in accordance with incident management policies and procedures. Coordinates with vendors for problem resolution and change requests.
- Provides technical guidance to ensure that installed systems are working effectively and that proposed systems will meet organization’s future needs.
- Identifies and provides recommendations for system process improvements.
- Ensures smooth implementation of new technologies and vendor integrations by using their expertise on their assigned domains and interfaces.
- May provide direction, training, and guidance for less experienced departmental staff.
Bring your passion and expertise
- 5+ years in professional software development, proficiency in Java (8+)
- 3+ years in web application development, including experience working in enterprise applications with many interconnected systems.
- 2+ years Agile development experience.
- 5+ years working with build tools such as Maven, Gradle or Ant
- 5+ years working with source/version control systems such as Git, SVN, CVS
- 3+ years working with Relational Databases and SQL such as Oracle, MySQL, PostgreSQL
- 3+ years writing unit tests with frameworks such as Junit, TestNG or similar
- 2+ years writing code leveraging Spring MVC, Spring Boot, Spring Framework
- 3+ years writing unit tests with mocks utilizing mocking frameworks such as Mockito, Easymock
- 2+ years working with CI/CD pipelines
- 3+ years designing and building RESTful APIs with tools like JAX-RS, RestEasy, Spring RestTemplate, Spring RestController or similar
- 3+ years scripting experience with BASH or other shell
- 5+ years debugging and troubleshooting software defects in both local and remote environments.
- A proven track record of working with business partners to communicate a perspective on technical complexity, feature dependencies, impacts and risks.
- Demonstrated ability to coordinate tasks among team members and drive small projects or project components.
- Communicates effectively in both verbal and written means.
- Bachelor's degree or higher in Computer Science or equivalent experience.
- Search experience (Solr, ElasticSearch)
- 2+ years writing persistence layer code with JPA, Hibernate, Spring Data or similar
- 2+ years working in microservices architecture and containerization (Docker)
- 2+ years working with enterprise logging systems such as Splunk, Kibana or similar
- 2+ years working with backend metrics and monitoring systems such as Grafana, NewRelic, Graphite or similar
- AWS technologies such as SQS, SNS, S3, ECS, EKS, RDS
- JVM performance tuning, memory and thread analysis
- Distributed and/or off-heap caching solutions – Redis, Infinispan or similar
At REI we offer an enviable work environment that Fortune Magazine has recognized on the "100 Best Places to Work" list since the award's inception – 23 years in a row! Sure, we work hard, but it’s balanced with time off to play—a strategy that works for us as we continue to grow and thrive. Want to enjoy a workplace where you can be yourself, be heard and be respected while having a job that challenges you? This is the place.
With more than 160 retail locations (and growing), REI offers unique competitive benefits to its more than 15,000 employees, including healthcare, gear and apparel discounts, free equipment rentals and challenge grants to help employees reach personal outdoor goals, generous retirement plan contributions, public transit subsidy, adoptions assistance, paid sabbaticals, and more.
REI is an Equal Opportunity Employer