Adobe Experience Platform (AEP) enables businesses to deliver the right experience at the right time to their customers. The Segmentation Service is one of the key AEP services, providing the ability to define customer segments and generate target audiences based on real-time customer profiles. Customer segment definitions are sophisticated queries over profile and event data capturing specific attributes or behaviors shared by a subset of users. With the need to perform trillions of audience segment evaluations per day, scalability and efficiency are paramount in segment evaluation. This is a great opportunity for engineers to solve extremely interesting challenges of scale and build core services that are used by all Adobe Digital Experience solutions.
Requirements
- Strong grasp of algorithms and data structures
- Excellent knowledge of Java and or Scala
- Proficiency in Databases or compilers is a plus.
- Working knowledge of query optimization techniques
- Conceptual knowledge of distributed system technologies
Responsibilities
- Contribute to query engine implementations that evaluates complex customer segment definitions efficiently
- Develop query compilation algorithms that transform and rewrite customer segment definition queries
- Develop query optimization and evaluation algorithms including multi-query optimization, incremental evaluation and streaming evaluation
- Build tools to monitor query performance and identify & debug potential semantic errors
- Collaborate with a team of engineers & product managers in building a high-performance query engine.
- Follow Agile methodologies using industry leading CI/CD pipelines
- Participate in architecture, design & code reviews
Other
- B.S. in Computer Science or a related field is required
- M.S. in Computer Science or a related field or equivalent practical experience is preferred
- Excellent communication skills
- Adaptable to evolving priorities, accepting challenges outside one's comfort zone, learning new technologies, and delivering viable solutions within defined time boundaries.
- Ability to think through solutions from a short term and long-term lens in an iterative development cycle.