Software Engineer (Backend) - Core Services
Who We Are: Our Core Services team builds, scales and maintains the software services that define the core components of Twitter: users, tweets, social graph, and URLs. In addition, we provide internal interfaces and tools to conveniently and efficiently access Twitter data from a variety of sources. Our work directly impacts the lives of our users and the success of our business.
Operating our own systems at hyper-growth levels is a rewarding challenge; it is what helps make us great. We are a tightly knit and passionate group that loves working together, and we are looking for exceptional additions to our flock.
What You’ll Do: As an engineer on our team, you will face some of the most difficult challenges in modern software engineering. The scale at which your systems operate will require not only producing and using highly-performant algorithms and data structures, but also solving complex problems involving distributed systems and emergent behavior of service-oriented architectures.
You will have the opportunity to work on some of the world’s most highly-scaled distributed systems. Our engineers specialize in running high throughput, reliable services: our core infrastructure receives hundreds of millions of tweets per day and serves tens of billions of API requests, all with an uptime in excess of 99.9%. You and your teammates will power a system relied on every day by hundreds of millions of people across the world.
Additionally, you’ll work directly with dozens of teams across the company who are innovating on the product and refining Twitter to make it the best place to quickly see and talk about what's happening in the world.
The Core Service team is hiring for the following areas:
- User Service - We encapsulate the core business logic for the entire lifecycle of a Twitter user and provide efficient, scalable access to user data at high volume.
- Social Graph Service - We provide a centralized service layer for handling many-to-many relationships at Twitter's scale.
- Tweet Service - We ensure that Twitter's users and internal teams can create and access tweets: reliably, at scale, and in real time.
- Stratostore - We help increase Twitter's pace of feature development by providing a convenient internal interface for accessing & consuming data from a variety of sources at scale, without needing to worry about operational concerns.
Who You Are: You are passionate about building massively scalable systems and have experience with web infrastructure, distributed systems, performance analysis, and/or large-scale data processing. You have or want to make your own history of open-source contributions.
You have expertise developing on the JVM, including asynchronous I/O, concurrency, and the Java memory model.
- Experience with at least one of the following languages: Scala, Java, and/or any functional language. We code primarily in Scala, so you’ll be excited to either ramp up on that or continue building awesome things with it.
- BS, MS, or PhD in computer science or a related field, or equivalent work experience.
- Experience with software engineering best practices (e.g. unit testing, code reviews, design documentation).
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.
San Francisco applicants: Pursuant to the San Francisco Fair Chance Ordinance, we will consider for employment qualified applicants with arrest and conviction records.
Engineering Hiring Process
Once your application is received, a recruiter will reach out pending your qualifications are a match for the role.
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.
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.