Software Development Engineer
Role details
Job location
Tech stack
Job description
EG Clickstream provides data that captures user behavior and experience across Expedia Group sites and apps. This data forms the building blocks for understanding user journeys: what products users search for, which features they see and use, and which marketing channels they arrive from. It powers analysis of Product and Marketing performance to support optimized decision-making and can also be used programmatically to drive personalized, adaptive experiences for our users. As a Software Development Engineer II on Expedia Group's Clickstream team, you will design, build, and operate the real-time data platform that captures and processes user behavior across our sites and apps. You will engineer scalable, resilient streaming systems that power analytics, marketing, and personalized experiences globally. You bring strong analytical and troubleshooting skills, deep proficiency in coding and distributed systems design, and a passion for solving complex problems of scale. You are collaborative, creative, and thrive in a dynamic, agile environment where you continuously learn and raise the bar. What you will do:
- Design, build, and operate highly available, low-latency streaming services and data pipelines (primarily in Java/Kotlin) running in public/hybrid cloud environments.
- Write clean, efficient, well-tested code; practice pair programming and conduct thorough code reviews.
- Apply object-oriented design, distributed computing, performance/scalability tuning, and advanced data structures/algorithms to real-time streaming and data processing.
- Build and evolve microservices and data APIs that power analytics and personalized experiences.
- Implement robust testing, monitoring, alerting, and observability to ensure reliability and rapid incident response.
- Troubleshoot complex production issues, perform root-cause analysis, and drive long-term fixes and improvements.
- Collaborate with product managers, data engineers, analysts, and platform teams to deliver high-impact solutions.
- Contribute to technical design documents; communicate trade-offs and decisions clearly within the team.
- Stay current with advancements in cloud data platforms, streaming technologies, and best practices; mentor junior engineers.
Requirements
Do you have experience in System design?, Do you have a Master's degree?, * Bachelor's or Master's degree in Computer Science or a related field, or equivalent professional experience.
- 2+ years of professional software development experience, including building and operating backend/microservices in Java; Kotlin or Scala experience is a plus.
- Hands-on experience with streaming platforms (e.g., Kafka, Kinesis, Pub/Sub) and event-driven architectures.
- Experience building production-grade data processing applications in public/hybrid cloud environments (e.g., AWS, GCP, Azure).
- Solid understanding of software engineering fundamentals: algorithms, data structures, concurrency, distributed systems, and design patterns.
- Proficiency in testing strategies (unit, integration), CI/CD, monitoring, alerting, and incident management.
- Familiarity with observability concepts and tools to monitor application health and performance.
- Strong debugging, problem-solving, communication, and collaboration skills; self-starter with a learning mindset.
- Familiarity with basic AI tools (e.g., GitHub Copilot, code assistants) to accelerate development or documentation, used responsibly within company policies.
Preferred qualifications:
- Experience with Kafka Streams (KStream) and/or Apache Flink for stateful stream processing.
- Familiarity with schema registry, data lake technologies, and data quality frameworks.
Accommodation requests