Want to get hired at Criteo?

Senior Software Development Engineer - JVM Performance Team

Criteo

Paris, Île-de-France, FranceOn Site

Original Job Summary

About the Role

At Criteo, as a Senior Software Development Engineer in the JVM Performance Team, you will play a key role in designing, optimizing, and maintaining Java and Scala based systems. This role bridges Product, Platform Engineering, and Infrastructure, contributing to building the most reliable platform in AdTech.

What You'll Do

  • Drive quality standards for efficient Java and Scala code.
  • Challenge and optimize system designs to reduce infrastructure cost.
  • Support teams in troubleshooting and performance tuning.
  • Keep the JVM ecosystem updated and scalable.

Your Responsibilities

  • Engage in services lifecycle from design to operation.
  • Consult on system design and assist in capacity planning.
  • Scale, automate, and evolve systems for improved performance.
  • Lead large-scale upgrade initiatives and migrate across repositories.

Who You Are

You have a master’s or PhD in computer science (or equivalent experience) with at least 6 years of software development using multiple programming languages, data structures, and algorithms. You are experienced in large-scale distributed systems, debugging, optimization, and automation. Familiarity with big data frameworks and distributed processing technologies like Hadoop and Spark is essential.

Stack and Tools

Linux, Kubernetes, Mesos, .NET Core, C#, Java/Scala/JVM, Python, Prometheus, Grafana, Kibana and more.

Key Skills/Competency

  • Java
  • Scala
  • Performance Optimization
  • Distributed Systems
  • System Design
  • Debugging
  • Capacity Planning
  • Automation
  • Linux
  • Kubernetes

How to Get Hired at Criteo

🎯 Tips for Getting Hired

  • Customize your resume: Highlight Java, Scala, distributed systems experience.
  • Research Criteo: Explore culture, recent projects, and tech stack on their website.
  • Emphasize performance: Showcase your optimization and troubleshooting skills.
  • Prepare examples: Use project stories about system design and scaling.

📝 Interview Preparation Advice

Technical Preparation

Review Java and Scala performance concepts.
Practice distributed systems design exercises.
Study Linux, Kubernetes, and cloud tools.
Refresh debugging and system monitoring skills.

Behavioral Questions

Describe a challenging project experience.
Explain your teamwork approach.
Discuss handling tight deadlines.
Share problem-solving examples under pressure.