Software Engineer [Multiple Levels]

Democracy Works · Brooklyn, NY/Remote (USA)

Engineering
Public Service & Civic Engagement
$82800 - $115000 Per Year
Posted 3 weeks ago

Excel
AWS
Postgres
Kubernetes
Python
Docker
React
SQL
TypeScript
Ruby
JavaScript
Claim this company

Target Start Date: October-December

Salary Ranges:

  • Associate Software Engineer: $76,500 - $85,000 for most regions (Offers will vary based on experience and location-based cost-of-living calculations.)
  • Software Engineer: $82,800 - $115,000 for most regions (Offers will vary based on experience and location-based cost-of-living calculations.)
  • Senior Software Engineer: $118,800 - $140,000 for most regions (Offers will vary based on experience and location-based cost-of-living calculations.)

Seniority Level: Associate through Senior

Supervisory role: No

Benefits: Vision, dental, & medical insurance; 403(b) retirement savings plan; generous vacation policy; parental leave; long-term disability; employee assistance program

Organizational overview

At Democracy Works, we work to help Americans vote, no matter what. To that end, we build technology for both voters and election administrators to help increase voter access and voter turnout.

  • TurboVote is a tool designed to help voters register, request their ballot, and make their voice heard in every election, from local to national. We’ve connected over ten million Americans with TurboVote by building the largest college, nonprofit, and corporate voter engagement coalition in the country, including more than 300 campuses, nonprofits - like Headcount, Color of Change, and the Hispanic Federation - and companies like Starbucks, Univision, Facebook, Google, and Snap. 
  • As the only comprehensive official election dataset, the Voting Information Project (VIP) helps Americans find their polling site and available ballot dropbox locations where they look for it most: online. Across Google products alone, VIP data was viewed nearly 500 million times in 2020. 
  • How To Vote breaks down all the options each state offers for voting, their voter registration rules, as well as unique circumstances like voting overseas and voting rights restoration for the formerly incarcerated. Across Google products alone, our How to Vote guides were viewed over 2 billion times last cycle. 
  • Our tool Ballot Scout brings transparency and accountability to the vote-by-mail process by allowing elections administrators and voters to track every ballot with ease. Ballot Scout helps election administrators track absentee ballots through the mail, providing transparency in the vote-by-mail process and making it easier to follow up when things go awry.
  • Co-founded by Democracy Works and the CAA Foundation, Civic Alliance is a nonpartisan group of businesses working together to build a future where everyone participates in shaping our country. In 2020, membership grew to 1,030 companies with an employee reach of 5,163,938.

We are currently seeking to hire software engineers for TurboVote, the Voting Information Project, and How to Vote, and are considering applicants in a range of seniority levels.

We support junior team members by explicitly setting aside time for learning, and providing training from a more experienced engineer. No matter your level, you’ll have the opportunity to join one of our teams that best matches your interests and skills.

Candidates joining our TurboVote team will collaborate with our Product and Voter Engagement Program teams to build and maintain software that helps voters register to vote, request their absentee ballot, and sign up for personalized election notifications. The technology underpinning TurboVote is a microservices architecture primarily written in Clojure, with opportunities to use other languages such as JavaScript. Services are deployed using containers (Docker) orchestrated by Kubernetes and running in the AWS cloud. Services primarily communicate using RabbitMQ and store their data in Datomic and PostgreSQL. If you don’t know Datomic, don’t worry - we’ll teach you. The web front-ends are written in ClojureScript + re-frame (a framework built atop React), with opportunities to use JavaScript and TypeScript.

Candidates joining our Voting Information Project (VIP) team will collaborate with the Product and Data Collection teams in building software that helps collect, validate, QA, and publish data about local, statewide, and federal elections. This data is viewed hundreds of millions of times in major election years! This team is an excellent fit for candidates who are excited about solving problems at the intersection of data engineering and US election administration. The VIP team maintains a collection of tools written primarily in Clojure, JavaScript, Python, and some Ruby. Production services are deployed in containers (Docker) orchestrated by Kubernetes or deployed to AWS Lambda, and running in the AWS cloud. Data is stored primarily in PostgreSQL databases.

Candidates joining our How to Vote team will collaborate with our Product and Research teams to build and maintain the product powering the site howto.vote, whose data was accessed over 2 billion times in 2020! The How to Vote team created and maintains a tool to help our research team confidently manage the election information that underpins other products and services at Democracy Works, and the team has a new elections API project opportunity on their roadmap. The How to Vote team has code written primarily in Clojure and Ruby, and uses the Rails framework. Production services are deployed in containers (Docker), orchestrated by Kubernetes, and running in the AWS cloud. Data is stored in PostgreSQL databases.

The following role components apply to engineers at all levels except where otherwise noted.

You will:

  • Collaboratively solve problems, often by writing high quality, supportable code that fulfills the requirements laid out by your Product team
  • Write clear documentation and tests
  • Participate in the processes we use to build our products: scoping work, engaging in planning, and reviewing code written by others
  • Collaborate with your Engineering Manager and Product Owner to make progress and highlight blockers for you or other team members
  • Operate and communicate effectively with a distributed team, using tools such as Slack and Zoom 
  • Give and get feedback to grow yourself and your team
  • Be available for pair programming
  • Participate in an on-call rotation for your team when you’re ready and have the resources to be successful (off-hours pages are rare and we take them seriously)
  • Engage in conversations about anti-oppression and racial justice in our work

[Associate Software Engineer]

  • Demonstrate self-sufficiency within defined projects
  • Analyze situations and/or data required
  • Exercise independent judgement and seek feedback within defined frameworks
  • Actively participate in their own growth and development, seeking opportunity for cross training
  • Actively participate in requirements refinement and sprint planning conversations, asking questions and providing insight
  • Proactively communicate status of projects, blocks, risks, and gaps to the team on an ongoing regular basis

[Software Engineer]

  • Demonstrate an understanding of best practices and provides insight to others on the team
  • Work on projects of moderate scope where analysis of situations or data requires a review of a variety of factors, of which only key factors are provided
  • Work with little to no instruction on daily operations, and with general instructions on new assignments or projects
  • Mentor junior team members
  • Consistently and actively participate in requirements refinement and sprint planning
  • Research and problem solve, providing explanations to others on the team in a clear and concise fashion

[Senior Software Engineer]

  • Deliver high-quality work in a timely manner
  • Implement large-scale technical architecture decisions that have multi-year impact such as choices of new framework, language, or vendors
  • Independently lead successful projects
  • Work on projects of advanced scope where analysis of situations or data requires thorough investigation
  • Set high quality standards for the team on architecture and best practices
  • Advance knowledge and experience in multiple areas of the code
  • Produce high-quality design and deliverables with minimal changes necessary
  • Actively participate in architecture conversations
  • Independently own large-impact initiatives and the research and growth needed to achieve goals
  • Serve as a subject-matter expert in the development/engineering space and a go-to resource for thought partnership
  • Provide technical mentorship to members of your team

You are someone with:

  • Strong English written communication skills
  • An ability to communicate technical concepts to an audience with a variety of technical backgrounds
  • An ability to communicate with empathy and are an active listener, understanding that software is created by and for people
  • A desire to learn one of the following programming languages:
    • JavaScript
    • TypeScript
    • Ruby
    • Python
    • Clojure/ClojureScript
  • A desire to join a remote, distributed team
  • Familiarity with a distributed version control system (such as Git or Mercurial)
  • An ability to learn, make tradeoffs, and think critically about software systems
  • Curiosity: you like exploring new tools, techniques, and perspectives on building software
  • A commitment to being detail-oriented and thorough in your work
  • Interest in supporting voters or working on problems facing election infrastructure in the United States
  • A solid foundation in issues of racial justice, or beginning to learn more in earnest
  • Hands-on experience delivering projects using a functional, object-oriented or scripting programming language.

You have experience:

  • [Associate Software Engineer] Successfully completing one of the following:
    • a coding bootcamp, or
    • a degree in computer science, or
    • at least 1 year shipping software
  • [Software Engineer] Successfully completing at least 2 years working on or with a team shipping software 
  • [Senior Software Engineer] Successfully completing at least 5 years working on or with a team shipping software
    • And leading development on a software project

It’s a plus if:

  • You’ve previously worked on a remote, distributed team
  • You enjoy automating repetitive or manual tasks
  • You have experience with or a desire to work with service-oriented or microservices architectures
  • You have experience working with Amazon Web Services
  • You have experience with or an understanding of relational databases and relational data modeling
  • You have experience with or an understanding of accessibility in software development
  • You have a knowledge of testing practices including test automation
  • [Senior Software Engineer] 
    • You have experience with and enjoy data modeling for complex data pipelines
    • You have experience with or an understanding of geospatial databases or spatial relational database extensions
    • You have experience with or an understanding of geospatial software such as ArcGIS or QGIS

Physical demands

These positions require regular, daily use of a computer (including the use of G-Suite and Slack) to conduct work and communicate with colleagues. For those working out of our Brooklyn office, the F train stops closest to our office, but exiting the station requires the use of four flights of stairs. Our office has an elevator available at street level. Streets and buildings nearby are currently under construction, which can disrupt sidewalks and result in varying levels of construction noise audible from the office. Our offices share a set of gendered bathrooms with other offices on our floor.

Social expectations

You will have regular check-ins with an Engineering Manager and regular meetings with the Engineers and Product Managers you work with.

Time and travel expectations

DW’s regular operating hours are 10 a.m. - 6 p.m. Eastern Time, Monday through Friday. Two times per year, all full-time staff members participate in a five day retreat at our Brooklyn office. All Staff is held each year in May and November, when we are able to safely do so.

Application Instructions

To apply, please attach a resume and respond to the following questions (instead of a cover letter) using the form below.

In your responses, please include only the following information:

  • Which role(s) are you applying for? (Multi-select: Associate Software Engineer, Software Engineer, Senior Software Engineer)
  • How did you find this job listing?
  • In one sentence, what makes you interested in Democracy Works?
  • In one sentence, what makes you interested in this role?
  • Would you be available to start between November and December 2021?
  • Are you comfortable working for a nonpartisan organization?
  • In one sentence, describe how you would be effective in a remote working environment.
  • Do you have experience engaging with issues of diversity and inclusion in your workplace? If not, is it something you’d be willing to engage with in your workplace?
  • Democracy Works values diversity in its teams. In one sentence, why is it important to you to work on a diverse engineering team? 

As part of our application, you’ll see an optional form used to collect EEOC demographic information. The data collected in this form is useful in our EEOC reporting and in our assessment of our recruitment practices. However, please keep in mind that the standardized EEOC language used in this form does not reflect the values of Democracy Works - for example, we don’t view gender as binary. We also encourage all applicants to state their pronouns when applying for any job opening at Democracy Works. 

Democracy Works is committed to diversity and inclusion in everything we do and aspires to have a team that's representative of the voters we serve. When hiring, we practice proactive outreach to top talent that’s underrepresented in our sector. We conduct an anonymized skills evaluation, to reduce implicit bias and resume-dependency in our process. We're a woman- and gay-founded nonprofit, and promote an inclusive culture that stands against racism, sexism, homophobia, and ableism (to name a few). To be explicit, we strongly encourage applicants of all races, ethnicities, political party associations, religions (or lack thereof), national origins, sexual orientations, genders, sexes, ages, abilities, and branches of military service. 

Democracy Works follows the I-9 requirements of the Immigration Reform and Control Act of 1986. Immigration sponsorship is not available for this position, and you must possess your own work authorization in the U.S. now and in the future to continue working in this position.

Feel free to contact [email protected] if you have any questions about our commitment to inclusion or about general hiring practices, or if you need an accommodation for a medical condition during the hiring process. Democracy Works posts all current career opportunities at democracy.works/careers.

To apply for this job please sign in or enter your email below.

Related Jobs

Software Developer - CentralSquare Technologies
Greensboro, NC - Posted 1 week ago
Engineering Manager - Mark43
Charlotte, NC/New York, NY/Remote - Posted 6 days ago
CTO / Full Stack Engineer - Dashboard.Earth
Los Angeles, CA/Oakland, CA/Remote (USA) - Posted 2 weeks ago
View more open tech jobs in Brooklyn, NY
View more remote jobs
Be the first to see new Software Engineer [Multiple Levels] jobs

Save this search to get an email when new jobs match this search.

Create Account to Save Search

Connect with your next key hire on Tech Jobs for Good.

Post a featured job Schedule a demo