NationBuilder Software Engineer - Backend / Distributed Systems

Posted on February 1st, 2019

We are looking for a software engineer with experience with backend and distributed systems to join our team. You will help solve challenges in and improve our fault tolerance, latency, and queuing. Simply put, you will help design, implement, and improve our architectural vision.  Work out of our Downtown LA offices, or remotely.

We're looking for someone who:

  • Has a love of learning.
  • Thrives in a fast-paced, dynamic and highly collaborative environment. 
  • Enjoys the chance to pair with their peers and gives and receives well-crafted feedback.
  • Foundational knowledge of data structures, algorithms, queueing theory, fault-tolerance, caching, consensus and coordination between distributed systems.
  • At least five years of software development experience supporting a high-volume SaaS.
  • Experience developing in one or more of the following programming languages: Ruby, Python, Go.
  • Knowledge of relational databases and NoSQL systems.
  • Understanding of how the Internet works (networking and protocols).

Bonus experience and skills:

  • Building and maintaining APIs (e.g. REST, gRPC, GraphQL)
  • Knowledge of event and streaming systems (e.g. Kafka, Spark, Kappa or Lambda architectures)

Note that this engineer will join the on-call rotation after an onboarding period.

Our stack:

Our platform is primarily built with Ruby on Rails with some additional Ruby and Go services. Data is stored in PostgreSQL, MongoDB, Couchbase, Redis, and Hadoop. All on a cloud native architecture in AWS and managed with Terraform and Puppet.

NationBuilder is an equal opportunity employer and we value diversity. We are committed to finding talent that is not determined on the basis of race, religion, color, national origin, gender, sexual orientation, age, marital status, veteran status, or disability status.

Apply for this Position