Senior/Lead Platform Software Engineer – Remote
- Los Angeles, CA or Remote
NationBuilder is looking for a software engineer with experience designing and implementing distributed software systems. We are building the future of NationBuilders core platform using distributed streaming platforms (Kafka/Kinesis), message queues (SQS/RabbitMQ), APIs (GraphQL/REST/gRPC), and last but not least, services (Ruby/NodeJS) running in the cloud (Lambda/Kubernetes). Experience with those technologies is preferred, but other relevant experience will not be discounted.
NationBuilder creates software for leaders of all kinds – political candidates, nonprofit organizations, anyone building a community of people to make something happen in the world. To learn more about NationBuilder, read about our mission and beliefs.
As a member of the Platform team, you might work on:
- Refactoring and re-architecting our software to enable multi-region deployment.
- Bringing thread safety to our core, monolithic Ruby on Rails application.
- Enhancing our automated system to provide SSL certificate for all of our customers websites using Hosted DNS and Akamai APIs.
- Evaluating and prototyping with new technologies like GraphQL, gRPC, and Kafka to enable the rest of the engineering team to solve problems in new ways.
- Responding to incidents, performing service restoration tasks, and contributing to improving our software to reduce the frequency and impact of incidents.
- Expanding our existing Public API to make new integrations with our core application possible.
- Introducing Internal APIs that enable a resilient service-oriented architecture.
- Enhancing our Public APIs to allow 3rd party developers to build innovative applications.
- Extracting non-core functionality from our monolith into modularized components or services, leveraging the same APIs that we provide to our customers.
Your experience and qualities should match the following:
- A firm grasp on Computer Science fundamentals: algorithms, design patterns, data structures, database design, operating systems, and computer networking.
- Eager to learn best practices for writing web software at scale
- Enthusiasm to solve real problems for internal and external customers
- A quiet work environment conducive to remote pair-programming
- 5+ years working full-time in a software engineering role
- Experience developing production software in Ruby or Node.js
- Experience working on large scale applications with thousands or millions of concurrent users
- A passion for building working software and shipping iteratively
- Someone who enjoys rapid prototyping and experimentation
- Experience or a desire to work on a geographically distributed team
- Experience participating in an on-call rotation
As a Lead Software Engineer, your experience and qualities should include the above and:
- 8+ years working full-time in a software engineering role
- 1+ years leading sprint grooming/planning meetings and retrospectives
- Experience in a technical leadership role on a small team of software engineers
- A passion for mentorship and knowing when to delegate and when to collaborate
- Excellent soft skills to work directly with internal stakeholders
- An innate understanding that In the beginner’s mind there are many possibilities, but in the expert’s there are few. -Shunryu Suzuki
Candidates may be local to Los Angeles, CA; Amherst, MA; or remote (US only) and are expected to work overlapping with morning Pacific Time/afternoon Eastern Time.
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, gender identity, sexual orientation, age, marital status, veteran status, or disability status.