Senior Software Engineer - Storage Infrastructure - Graph Storage at Twitter
New York City, NY, US

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

#LoveWhereYouWork is one of the largest and most popular websites in the world. Our code operates at massive scale and speed, serving billions of requests per day, connecting hundreds of millions of active Twitter users to real-time information about their lives and the world we live in. Senior Software Engineers in the Twitter Storage Infrastructure org provide the technical leadership needed to build technologies that make the world’s largest real-time system scalable, efficient and flexible to evolve fast.

As a part of the Storage Infrastructure org, Graph storage serves the purpose of storing and exploring the graph scenarios like user/user relations like follow, mute, blocks, etc and also user to tweet relations, like favorite, retweet, etc. Our services take tens of millions of queries per second.

This role focuses on building and sustainably supporting a highly available, scalable, and reliable graph service. You will get to work with relational databases like MySQL, streaming services like Kafka, and service communication protocols like Thrift.

Why it matters:

Graph is instrumental to Twitter timeline curation. It involves millions of queries to find out your tweets, counts/list of favorites and retweets, following and followers list or count, users that need to be muted, tweets that are mentioned, and many more. A drop in availability or increase in our latency breaks twitter experience.

What you’ll be doing:

- Craft tools, processes, and frameworks to guide deliveries through safely releasing production code

- Guide and support colleagues who are growing their career as a junior engineer to be a senior engineer

- Implement software in a reliable and sustainable manner

- Support and maintain your software to ensure a high-quality customer experience...

What it takes:

- B.S.+ in Computer Science or related discipline (or equivalent experience)

- 5+ years of experience

- Experience with building or operating distributed systems, and asynchronous programming

- Strong computer science fundamentals, algorithms, and data structures background

- Model of software engineering best practices, including agile development, unit testing, code reviews, design documentation, debugging, and troubleshooting

- Previous experience with storage systems or database design is a plus

- Previous experience with Mysql, Python, Java, and/or Scala is a plus...