Software Developer/ Engineer/ Architect

Software Engineer - Network Engineering

Twitter’s Network Engineering organization designs, builds, and operates the dynamic, continuously growing and evolving global network that fuels public conversations between hundreds of millions of Twitter users every day. Our highly-scaled distributed network enables Twitter to serve billions of requests per second while meeting stringent availability requirements. The scale at which our network operates requires delivering a highly available infrastructure by driving leading-edge architectural strategies and network automation.

 

The Network Software, Services, and Automation (NSSA) team builds software, services, and frameworks used to deploy, operate, and monitor Twitter’s network infrastructure. Our products span across all the aspects of network management: metric collection, configuration management & deployment, zero-touch provisioning, network monitoring, and alarming & auto-remediation, among others. We are building the infrastructure which allows us to operate our networks through code and APIs without the need of touching network devices themselves. We are involved in all aspects of network design with an automation-first approach to ensure we operate the Twitter network with the highest degree of reliability. We build extensible frameworks to make it possible for Network Engineers to develop their case-specific automation rapidly and reliably through our foundational tools and services.

 

We are looking for software engineers to join our team. In this role, you can have a major impact on the architectures and designs of distributed software systems enabling us to deploy, monitor and operate the network at scale.

 

Who You Are:

You will take pleasure building highly resilient, performant, and thoroughly tested distributed systems which deploy, scale, manage, and monitor our large-scale data center, backbone, and edge networks. You will collaborate with both our customers - network engineers - and your teammates to design and develop these systems. You will have strong verbal and written communications, strong ownership and the ability to work in multi-disciplined technical teams.

 

  • B.S. in Computer Science computer engineering or a related technical discipline  
  • 4+ years of software development experience and proficiency in an object-oriented language (i.e. Python, Scala, Java, C++, Go)
  •  Ability to learn new programming languages, and/or prior experience in a JVM-based or functional programming language
  • Proven strengths in algorithms, data structures, data analysis
  •  Experience with business-critical distributed large-scale systems
  • Knowledge of professional software engineering practices & best practices for software development life cycles
  •  Experience with network engineering, developing network automation, or network controllers is not required but would be beneficial
  • Flexibility to travel domestically and internationally up to 4 weeks a year