Senior Software Engineer - Graph Storage
- Full-time
Company Description
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.
Job Description
Who we are:
Twitter.com is one of the largest and most popular websites in the world. Our code operates at substantial 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 Twitter's 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:
Work on Graph Storage infrastructure and platform
Support and maintain reliability and SLOs of Tier 1 platform and infrastructure
Put distributed systems skills to use daily
Guide and support colleagues who are growing their career as a junior engineer to be a senior engineer
Serve as an on-call engineer once every quarter
Implement software in a reliable and sustainable manner
Support and maintain your software to ensure a high-quality customer experience.
Qualifications
B.S.+ in Computer Science or related field
5+ years of experience in backend software engineering and distributed systems
Experience with building or operating distributed systems, and asynchronous programming
Strong computer science fundamentals, algorithms, and data structures background
Model of software engineering standard methodologies, including agile development, unit testing, code reviews, design documentation, debugging, and shipping features
Previous experience with storage systems
Previous experience with MySQL, Python, Java, and/or Scala is a plus
Additional Information
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.