To be successful in the role:  Experience with fundamentals in distributed systems design and development Proficiency with Java programming as well as good understanding of Java memory model and garbage collection Experience with JVM performance tuning and optimization as well as experience in diagnosing performance bottlenecks