Software Engineer - Serving Infrastructure
Sizmek is the largest independent buy-side advertising platform that creates impressions that inspire. In the digital world, creating impressions that inspire is vital to building meaningful, long-lasting relationships with your customers. Sizmek provides powerful, integrated solutions that enable data, creative, and media to work together for optimal campaign performance across the entire customer journey. Our AI-driven decisioning engine can identify robust insights within data across the five key dimensions of predictive marketing—campaigns, consumers, context, creative, and cost. We bring all the elements of our clients’ media plans together in one place to gain better understanding for more meaningful relationships, make every moment of interaction matter, and drive more value across the entire plan. Sizmek operates its platform in more than 70 countries, with local offices in many countries providing award-winning service throughout the Americas, EMEA, and APAC, and connecting more than 20,000 advertisers and 3,600 agencies to audiences around the world.
Sizmek's technology platform supports a serving system that handles over 150 billion events every day (vs ~3 billion daily Google search queries), a reporting system that aggregates and analyzes terabytes of data in real-time, and a learning system that applies machine learning and artificial intelligence techniques over 48 petabytes of data. These systems work in harmony to serve a right advertisement to the right user at the right time.
Serving platform is at the frontline of processing 150 billion requests per day, 1.2 Million per second at peak, evaluating every bid request within 100ms in our global data centers. Serving platform is a large distributed system that consists of hundreds of servers located globally. It interacts with different supply partners that supply 150 billion requests a day; uses our AI models to evaluate tens of thousands of advertisements for every requests to find the right advertisement for a user; computes the optimal bid for a request, while satisfying various targeting constraints.
We are building some of the most advanced technology in the advertising industry. As a Technical Lead, you will build and scale our infrastructure to keep up with the demand growth; you will construct new distributed protocols and/or algorithms that are needed by new features. You will work with talented, cross-functional teams to design, implement and deliver a variety of projects to help drive our continued growth over various time lines - some long, some short, but all vital to the success of Sizmek’s business.
You will work with engineers, as well as product managers. You are responsible for architecture, design, implementation, delivery of projects involving multiple teams and spanning multiple quarters. Examples of such projects include distributed real time stats pipeline as well as distributed budget service.
What you’ll do:
- Review features and project with focus on performance
- Perform performance profiling and optimization for RTB platform and services
- Determine hardware/software configurations for optimal performance
- Identify and fix application performance bottlenecks, which includes making changes to improve availability, performance and scalability in the application, systems or database layers.
- Work with other engineers closely to improve code base performance (e.g. algorithm redesign), reduce resource consumption and shorten request latency.
- Build tools and infrastructure to support performance work.
- Own and drive overall capacity planning work for different components and recommend data center expansion plan.
What you need:
- Development experience in Java/J2EE technologies. Strong coding and scripting ability.
- Experience with Java stack tuning and debugging including garbage collection, core dump analysis, contention/concurrency and other bottleneck measurement, analysis and tuning.
- Proficiency with JVM internals as they relate to performance tuning and memory management.
- 2+ years of experience with performance profiling/tuning/testing. Experience with typical performance load testing and profiling tools a must
- 2+ years of experience working/debugging in large scale distributed computing infrastructures
- Solid knowledge of algorithms and data structures and be able to assess trade offs between memory vs. CPU vs. I/O vs. database load etc.
- Demonstrated strong problem solving and troubleshooting skills
- Excellent interpersonal and communication skills
- S. in Computer Science or related fields.