: Senior Software Engineer-Core Systems Libraries
245 West 17th Street
New York, NY 10011

The Core System Libraries team provides key distributed systems libraries which enable engineers to build reliable and efficient Twitter-scale services. Ensuring the resiliency of Twitter’s core libraries directly impacts the lives of our users and the success of our business. 



What the job is

You will diagnose, and tackle complex distributed systems problems and provide solutions that have fundamental impact at our massive scale. You will define and deliver libraries which enable engineers to build reliable and efficient Twitter-scale services.


Why it matters

Our libraries are the fundamental building block of all services at Twitter. We serve hundreds of internal customers supporting crucial services. Our work is high-leverage since improvements in our core libraries benefit all services owners. We enable product developers to focus on product development instead of the details of scale, performance, availability, and security.


What you will be doing

As an engineer on our team, you will face some of the hardest problems in modern software engineering. The scale at which your code will operate require not only producing and using highly-performant algorithms and data structures, but also solving complex problems involving emergent behavior of distributed systems. This is an opportunity to work on some of the world’s most highly-scaled distributed systems. Our core infrastructure receives hundreds of millions of tweets per day and serves tens of billions of API requests, while meeting stringent availability requirements. You will have ample opportunities to both learn, teach, and grow. We collaborate to bring out the best in each other. You and your fellow engineers will power the core libraries relied on every single day by Twitter’s engineers who support and build the Twitter product. Many of our team's libraries are open-source including Finagle, Finatra, and others. Your work in our core libraries will play a key role in Twitter user satisfaction and growth as we grow to new scales to serve the public conversation.


What it takes

Below are some of the qualities we’d like to see in a new team member. This list might seem long, but don’t let it scare you off. If you’re enthusiastic about Twitter and about services at scale, please apply!


  • You are passionate about continually redefining the limits of scale and performance.
  • You’re self-directed and can drive features and systems from technical design through to production.
  • You’re always looking for opportunities to grow and learn.
  • You are interested in working closely with a diverse, multi-functional team; you think critically about users’ needs and can translate those findings into features and products.


Ideally, you have experience with:

  • Distributed systems, performance analysis, web infrastructure, and/or large-scale data processing
  • JVM development, including asynchronous I/O, concurrency, and the Java memory model
  • Experience with Scala or other JVM-based languages preferred
  • Proven ability to learn new programming languages, and/or prior experience in a JVM-based and/or functional programming language
  • Strong computer science fundamentals
  • Open-source contributions 



  • BS, MS, or PhD in Computer Science, or equivalent work experience
  • Occasional on-call support during non-standard business hours
  • Minimal travel required (2-4 weeks per year)



We are committed to an inclusive and diverse Twitter. Twitter is an equal opportunity employer. We do not discriminate based on race, ethnicity, color, ancestry, national origin, religion, sex, sexual orientation, gender identity, age, disability, veteran status, genetic information, marital status or any other legally protected status.



By applying for this role, you could choose to work in the following locations:
New York City
San Francisco


Engineering Hiring Process

Step 1

Once your application is received, a recruiter will reach out pending your qualifications are a match for the role.

Step 2

If your background is a match, you may have 1-2 technical phone interviews or be given the chance to provide a work sample depending on the role.

Step 3

If the phone interviews go well or your work sample is strong, the final step includes interviews with 5-6 people held onsite in our office.