Senior Software Engineer, Search Technologies
Who we are:
Search Technologies is a highly impactful team at Wayfair looking for experienced engineers. We build fast, reliable and powerful customer-facing search systems across all Wayfair platforms. Our infrastructure provides the most enjoyable browsing and shopping experience for our customers and partners. Search Technologies is very collaborative, as we partner with storefront and app teams, data science, infrastructure teams and operational engineering teams to create a holistic search experience for Wayfair’s customers.
This team develops and maintains all the back-end systems that a customer interacts with when they click into the search bar on Wayfair’s sites. The Search platform provides text-search capabilities to nearly every application in our storefront, with minimal latency and pinpoint accuracy. Our Search infrastructure is vast and virtualized across a cloud-based multi-datacenter environment. We strive to create a more usable search platform for all teams building text-search driven experiences. We create automated processes, tools and coach our peers to ease the burden of using, developing and maintaining large search applications. We partner with our infrastructure teams to provide a stable search platform, and with nearly every team at wayfair to produce a quality search experience.
What you’ll do:
- Work collaboratively with partnering teams to create Java APIs for customer applications to enable fast retrieval of product & text data.
- Construct abstraction layers/services over lucene-based and other ML-based systems that power retrieval of product data, search suggestions or other classification data and power personalization of results for individual customers at scale.
- Create event stream producers and consumers to enable fast, modular transfer of data such as inventory, prices, sale events, etc between large applications throughout the company and hydrate search indexes with searchable product data.
- Build and enhance software to maintain our search infrastructure, with disaster recovery, multi-datacenter support, multi-layer caching, failover capabilities, and a customized deployment process.
- Create containerized search applications in docker/kubernetes to be leveraged by Search Technologies peers, as well as all engineering teams at Wayfair looking to utilize text-search and fast filtering capabilities
- Develop and improve relevance in our primary product search indexes based in Elastic & Solr by partnering with Data Science, Merchandising and other teams to provide relevant results to customers.
- Create Big Data and Machine Learning pipelines to augment and enhance search experience by providing search suggestions, allowing for expanded personalization, and enriching search relevance.
What you’ll need:
- A graduate of a computer science, mathematics, engineering, physical science related degree program with 5+ years of relevant industry experience, OR have 7+ years of relevant industry experience
- 4+ years of Java experience experience or 5+ years experience in other OOP-based programming languages
- Experience building high performance, scalable and fault-tolerant Java applications preferred
- Experience with Service-Oriented architecture (REST & GraphQL) and ability to architect scalable microservices
- Experience with Lucene-based Search engines like Solr or Elasticsearch is a plus
- Experience using Docker, Kubernetes or other containerization technologies is a plus
- Expertise in algorithms and data structures
- Ability to maintain a stable application infrastructure with appropriate metrics, logging and CI/CD pipelines
- Experience with streaming technologies like Spark, Storm, Kafka, etc are a plus
- Experience in Information Retrieval, Natural Language Processing is a plus
- Good understanding of SRE/devops and experience in cloud-computing technologies and puppet is a plus.
- A continuous drive to explore, enhance, automate and optimize distributed systems
- Ability to work creatively and problem solve independently
- Comfortable working in a collaborative, fast-paced and dynamic work environment
- Experience with large-scale data processing and design of distributed systems.