Software Engineer

Center for Tech and Civic Life · Remote (US)

Software Engineering
Human Rights & Equality
Education
Public Service & Civic Engagement
$107,000 - $107,001 Per Year
Posted 6 days ago

Excel
JQuery
HTML
Product Management
Security
Python
React
Flask
SQL
Report an Issue
Featured Job

Starting Salary: $107,000

Location: Remote in the United States

Expected Start Date: Early January 2025

Deadline: October 21, 2024 or until we hit our cap of 350 applications, whichever is earlier. Apply early!

Description

The Center for Tech and Civic Life’s (CTCL) Civic Info programs help organize the country’s civic information and answer voters’ most pressing questions like, “What’s on my ballot?”, “Who represents me?”, and “What are the responsibilities of my elected officials?” for federal, state, and local levels of government.

Our north star is that access to such civic information allows communities to develop lifelong civic engagement habits, resulting in governments that are more reflective of their communities. These communities include voters who are newly eligible, have limited English proficiency, live with disabilities, or are from communities that are impacted by the digital divide or historical disenfranchisement due to race.

This is an entry-level position. We’re looking for a Software Engineer with an interest in civic engagement to join our small tech team and someone who is willing to grow alongside it. This position will work across all aspects of Civic Info Department’s technical stack, partnering with our Research, QA, and Partnerships Teams to develop internal tools to improve the quality of our work and datasets, and to meet the needs of our external partners. Below is a list of responsibilities that a Software Engineer will be expected to own over the course of their tenure at CTCL. However, as an entry-level Software Engineer, you will only have some of the following responsibilities, but will have the opportunity to take on additional responsibilities as your expertise grows:

Responsibilities

Standardize and publish core project datasets

  • Transform candidate data and elected officeholder data into various machine readable formats including CSV, XML, or JSON.
  • Publish data to partners on the Apache-based static server and CTCL’s Civic Info API. Work with Project Managers during the release process and troubleshoot any issues.

Provide support to the Research/QA teams and external partners

  • Provide basic technical support to Research/QA teams and partners. Address user issues and errors that arise and impede normal use of internal software tools and access to published datasets, and implement any solution as needed. Data collection is a year-round effort, and there may be need for on-call support during major election periods.
  • Manage the Github issue board for prioritization and address issues according to priority, investigating and troubleshooting more critical features with Engineering staff. Update support tickets in a timely manner.
  • Collaborate with Project Managers on tools and processes to help better measure impact of core projects, to track various internal metrics, and on any quality of life/user-facing improvements to internal software tools. Seek feedback and input on the design of any new features.

Maintain and improve existing technical infrastructure and systems

  • Manage and update the database, which includes multiple schemas and complex queries involving jsonb columns. Manage asynchronous tasks using Celery.
  • Streamline internal workflows, focusing on reducing command line dependencies and improving documentation. Address and resolve issues with legacy code, including migrating jQuery and HTML components to React. Develop and maintain the Flask backend and React frontend.
  • Help eliminate technical debt through refactoring, updating, and maintaining existing code to enhance performance and maintainability, including basic security maintenance of packages (pip, npm).

Assist and consult on process development, internal product management, and streamlining workflows

  • Collaborate with Engineering staff to map out internal product development timelines. Regularly provide updates about internal product development timelines to Civic Info staff.
  • Research tools and techniques that can help improve processes and workflows and put the Engineering team on a more sustainable footing. Help develop best practices for the team.
  • Document work thoroughly by adding in-code comments and contributing to user-facing documentation. Review and create documentation for existing features with the goal of minimizing overall technical debt.

Qualifications

A successful candidate for the Software Engineer position will have some basic development skills, be a good collaborator, and have a familiarity with CTCL’s mission. Since this is an entry-level position, we are looking for a candidate who is willing to grow within our organization. Even if you aren’t sure you’re qualified, but are excited about the position, we encourage you to apply! 

While no candidate will possess every skill, they will have some of the following technical skills:

  • General development experience. You have experience with problem-solving and debugging. You have proven experience writing, testing, and maintaining code in one or more programming languages (Python preferred).
  • Database management experience. You have a good understanding of relational databases, including schema design and some experience in SQL and working with complex queries.
  • Experience with version control tools. You have some experience with version control systems, like Git, Github or similar collaborative systems to manage repositories, commit changes, and track project history.
  • Backend development experience. You have some experience in backend development and best practices and some knowledge of authentication and authorization mechanisms, like key management. 

While not required, a promising candidate will have these bonus skills:

  • Familiarity with geospatial data in any context (even outside of elections)
  • Familiarity with AWS or other cloud computing platforms, including virtual machines, networking, and databases.
  • Experience with Flask or a similar Python web framework

In addition, successful candidates will have most of the following personal attributes:

  • Strong communicator and collaborator. You know how to effectively communicate technical concepts, both verbally and in written communications. You thrive in a team environment and lean into collaboration when designing and building tools and processes, identifying and solving problems, and creating technical documentation.
  • Strong sense of curiosity and attention to detail. You take delight in problem-solving – immersing yourself in thorny technical problems and brainstorming solutions. You are able to make sense of different standards of information, discern patterns, and find some order through mess.
  • Strong initiative. You propose new ideas and are eager to participate in discussions. You are proactive about raising issues and coming up with solutions. You are able to stay motivated to produce excellent results when the work gets tedious.
  • Sound judgment. You’re able to balance different projects with different timelines, and know when to ask for help when you need it. You practice discretion when dealing with sensitive information and when adhering to non-disclosure agreements.
  • Reflectiveness. When working on a project, you identify parts of the process that work well and parts that need improvement, and provide constructive feedback during team debriefs. You are reflective about your own strengths and weaknesses and seek to continuously improve.
  • Eagerness to learn. You are committed to continuous learning and increasing your knowledge. This includes learning about American politics, elections, and election administration. This also includes learning about new tools, development languages, and technology. 

Growth Opportunities

We stay curious and persistent as the landscape of election administration shifts in the United States. To adapt to new challenges and invest in the excellence of our team, all positions at CTCL provide opportunities for continued education and improvement, with a focus on professional growth opportunities related to the scope and complexity of your work, specialized knowledge, independence, and leadership.

CTCL is proud to be an Equal Opportunity Employer. We encourage people of all races, colors, religions, national origins, sexual orientations, genders, sexes, ages, abilities, branches of military service, and political party affiliations to apply.

Benefits

  • Health, dental, and vision insurance
  • Life, AD&D, short-term disability, and long-term disability insurance
  • 401k through Guideline - CTCL matches employee contributions up to 4%
  • Flexible spending accounts (FSA) for health care and/or dependent care
  • 15 vacation days per year
  • Unlimited sick time
  • Other paid time off - birthday, jury duty, bereavement, and parental leave
  • Paid holidays - all federal holidays and a two-week winter break
  • Individual employee allowance - $900 per year for tech/home office expenses
  • Individual professional development budget - $500 per year
  • Flexible working hours

To Apply

Hiring decisions shouldn’t be rushed, and we want to make sure we hire the right candidate. Therefore, our job application process consists of five stages in order to give us the best chance to evaluate applicants for the role:

  1. Complete a short application form and upload your resume. Please do not submit a cover letter. (Only applications submitted through this form will be accepted; materials submitted via email will not be considered.) This should take no more than 30 minutes.
  2. If you meet our criteria, you will be invited to demonstrate your coding ability in a basic skills test. 

Related Jobs

Engineering Lead (CDC) - Skylight
Remote (US) - Posted 2 weeks ago
View more open Manager, Software Engineering jobs
View more remote jobs
Be the first to see new Software Engineer jobs

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

Create Email Alert