Software Engineer - Site Reliability Engineering
What You’ll Do:
As a member of the organization you will be dedicated to improving the reliability of our end-to-end platform. Your work will integrate directly with Twitter's products.
Our core infrastructure receives hundreds of millions of tweets per day and serves tens of billions of API requests. We also serve over 2+ billion search queries per day, render hundreds of millions of ad impressions, and process hundreds of terabytes of log and interaction data daily.
You will dive deep into gnarly operational issues; from the software, systems, automation, and process perspectives. You will understand the challenges around integrating disparate infrastructures into a new facility, processes and procedures.
You will work with open-source technologies and the community.
You will actively participate in the vision to move away from high operational cost tasks such as break/fix, cluster migrations, new service buildouts, abuse, etc. You will contribute to services that can shrink and expand based on demand, self heal, automatically rollout, etc.
Services we work on:
- 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.
Your responsibilities include but are not limited to:
- You will perform deep dives into both systemic and latent reliability issues; partner with software and systems engineers across the organization to produce and roll out fixes.
- You will troubleshoot issues across the entire stack: hardware, software, application and network,
- You will drive standardization efforts across multiple disciplines and services in conjunction with embedded SREs throughout the organization.
- You will mentor SREs on standard methodology for everything from monitoring to troubleshooting complex code issues.
- You will identify and drive opportunities to improve automation for the company; scope and create automation for deployment, management and visibility of our services.
- You will participate in code reviews for projects primarily written in Java and Scala, built on open source libraries such as Finagle, and running on both physical and virtualized platforms.
- You will represent the SRE organization in design reviews and operational readiness exercises for new and existing services.
Who You Are:
- Solid understanding of systems and application design, including the operational trade-offs of various designs.
- Practical knowledge of various aspects of service design like messaging protocols & behavior, caching strategies and software design practices.
- Practical, solid knowledge of shell scripting and at least one higher-level language (Python or Ruby preferred).
- Demonstrable knowledge & experience of Linux servers, specifically RHEL/CentOS, TCP/IP, HTTP, and experience supporting multi-tier web application architectures.
- Experience in handling services in a large scale environment.
- Practical experience in Java or Scala.
- Work well with and be able to influence a myriad of personalities at all levels.
- Ability to prioritize tasks and work independently.
- Be adaptable and able to focus on the simplest, most efficient & reliable solutions.
- Track record of successful practical problem solving, excellent written and social communication, and documentation skills.
- B.S. in computer science or similar field or equivalent experience.
Ability to lead technical teams through design and implementation across an organization.
Experience with existing open source projects such as Scribe, ZooKeeper and Apache Mesos.
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.
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.
We're the People Team @Twitter. We're hiring service, purpose-driven people who are creative and move fast. All things Twitter Careers! #LoveWhereYouWork
We're your one stop shop for anything University related. That means campus outreach, student advice/tips, & of course, our University Recruiting efforts!