Do you possess current expertise with Lucene, Elasticsearch, Solr, or similar search engines and are looking to drive search-based technology solutions for us?
The Role We are looking for a Principal Software Engineer with extensive search experience that can design and implement complex search and retrieval systems, mentor team members, and help evolve our central search engineering architecture by collaborating closely with product, platform, and other engineering teams to deliver technical solutions, and high-throughput services with meaningful real-world impact.
Responsibilities - Leading architectural design and ensure technical consistency.
- Helping lead our shared search platform - expanding content search, improving relevance via vector and lexical search techniques.
- Building world-class search systems to enhance users' search experience.
- Automating processes to assist other teams.
- Collaborating on new ideas to optimize systems and engineering workflows.
- Building relationships with other engineering teams to identify and solve their pain points.
- Working across the stack, from development to infrastructure.
- Designing and developing scalable data processing workflows and microservices using Spark, Spark Streaming, and Airflow.
- Writing clean, modular, and testable code in Python, Java, or Scala, aligned with coding standards and architecture guidelines.
- Lead implementation of system components that span multiple services and modules.
- Diagnose and resolve complex technical issues across distributed systems and data workflows.
- Leading design discussions, code reviews, and architecture sessions to ensure software quality and maintainability.
- Developing and maintain data models to support analytical and operational use cases.
- Collaborate with cross-functional stakeholders to translate product requirements into reliable engineering solutions.
What We're Looking For - Current expertise with Lucene, Elasticsearch, Solr, or any other search engine, and have industry experience with Semantic Search.
- Proven track record building search systems at scale.
- Proficiency in batch processing technologies, including Spark, Spark Streaming, Airflow.
- Expertise in at least one of Java, Python, Scala.
- Deep understanding of distributed system design, data modeling, and performance tuning.
- Experience with test-driven development and CI/CD practices.
- Ability to independently drive technical outcomes from problem definition to deployment.
- Familiarity with Agile, Kanban, or other iterative development methodologies.
- Familiarity with vector/embedding-based search, KNN algorithms.
- Exposure to graph-based data models or knowledge graph architecture.
- Experience building internal platforms or developer-facing data tooling.
- Knowledge of observability best practices for data systems (e.g., metrics, logs, alerts).
U.S. National Base Pay Range: $115,400 - $192,300. Geographic differentials may apply in some locations to better reflect local market rates.If performed in Maryland, the base pay range is $121,200 - $201,900.If performed in New York, the base pay range is $126,900 - $211,500.If performed in New York City, the base pay range is $138,400 - $230,700.If performed in Rochester, NY, the base pay range is $115,400 - $192,300.If performed in New Jersey, the base pay range is $136,213 - $217,587.This job is eligible for an annual incentive bonus.
We know your well-being and happiness are key to a long and successful career. We are delighted to offer country specific benefits. Click here to access benefits specific to your location.