Senior Software Engineer- VM Team
- San Francisco, CA, USA
- Employees can work remotely
Twitter is what’s happening and what people are talking about right now. For us, life's not about a job, it's about purpose. We believe real change starts with conversation. Here, your voice matters. Come as you are and together we'll do what's right (not what's easy) to serve the public conversation.
The VM team at Twitter is responsible for the language runtime for hundreds of thousands of microservice instances making up the Twitter experience. The overwhelming majority of these services are written in Scala and Java, and run on the JVM. Twitter's JDK and related tools are built, released, and supported by our team.
We tackle novel performance problems, and optimize the JVM across a range of services, workloads, hardware, and ambient conditions. We help our customers with performance tuning, troubleshooting, debugging, and resolving their issues at scale. In our day-to-day work, we partner closely with service owners, site reliability engineering, performance engineering, and hardware engineering teams at Twitter.
We strive to adopt the latest updates in stable JVM/JIT technologies. We continue looking for opportunities to further improve the performance of the JVM runtime, its garbage collectors, and its compilers in the context of Twitter services. We care about JVM performance on both current and emerging hardware platforms and processors. Our team includes a number of OpenJDK committers and reviewers. We work closely with the OpenJDK and Graal open-source communities to develop and upstream many of our improvements.
You enjoy working deep in the internals of a mature language runtime, and solving unfamiliar performance problems with highly multi-threaded software on large, multi-tenanted, multiprocessing hardware, in close interaction with internal customers running complex workloads. You are comfortable with low-level performance profiling using hardware performance counters and tools such as e.g. perf, VTune, or μProf.
You have a deep understanding of just-in-time (JIT) compilation and JVM performance. You are familiar with code generation and optimization for modern hardware processors, with both RISC and CISC ISAs, with relaxed memory models, and with JVM internals.
You are very comfortable in C, C++, and Java, and have good familiarity with Linux APIs and virtual memory system. Familiarity with another JVM language, such as Scala or Kotlin, and experience working with a large and diverse open-source community is desirable.
B.S., M.S., or Ph.D. in Computer Science, Electrical, or Computer Engineering, or an allied engineering or STEM field, or equivalent experience.
A growth approach, and a strong desire to learn, collaborate, guide, and mentor.
A few things we value as a company:
- Challenge - We solve some of the industry’s hardest problems. Come to be challenged, learn, and thrive as an engineer.
- Diversity - Diversity makes us a better organization and team. We value diverse backgrounds, ideas, and experiences. We strive to include everyone in our work and in our decision-making.
- Work-Life Balance - We work hard, but we believe that with hard work should come balance.
- Collaboration - There’s that saying, “If you want to go fast, go alone. If you want to go far, go together.” We want to go far.
- Variety - We encourage team rotations that allow you to work with and learn from other teams at Twitter.
- Continuous Learning - Our technology and our environment are constantly changing, and so are we; we are lifelong learners at Twitter.
All your information will be kept confidential according to EEO guidelines.