Civitech is a public benefit corporation focused on enhancing democracy through technology. They are seeking a Software Engineer, Geospatial Data to develop scalable applications that manage civic and geospatial data, collaborating with various teams to enhance civic engagement and democratic participation.
Responsibilities:
- Participate with other engineers in the design, implementation, and maintenance of Civitech's applications and infrastructure
- Collaborate cross-functionally with product, research, and data science teams to develop features from participation in requirements definition through to testing and documentation
- Build scalable, secure, and high-performing features in a cloud environment
- Communicate effectively with team members and contribute to an open and inclusive engineering culture
- Grow your technical skills and contribute to effective team development practices
- Optimizing data availability: Developing new features to automatically make election research data available in our customer-facing tools, reducing latency to our end users
- Building data pipelines: Developing and maintaining pipelines that ingest, normalize, and serve civic data so it's reliably available to our tools and customers - including geospatial data like shapefiles and political boundary files
- Bridging data silos: Designing strategies to effectively and broadly share data between operational PostgreSQL databases and BigQuery data warehouses to enrich existing datasets
- Working with political geography: Reconciling census shapes against political shapes (precincts, council districts, legislative districts) and keeping that data current as new maps move through legislatures and the courts
- Improving data quality: Diagnosing and fixing bad data - from malformed geometries to inconsistent identifiers - so downstream tools and customers get reliable results
Requirements:
- 3–5 years of software engineering experience
- Strong in Python, especially for data pipelines, scripting, and automation
- Comfortable working across the stack and picking up other languages and frameworks as needed - applications are built largely in Ruby on Rails and JavaScript/TypeScript
- Experience working with cloud environments, particularly Google Cloud Platform or AWS; experience with Azure is also valuable
- Skilled in facilitating collaboration between engineers and with partner teams
- Experienced with identifying issues and helping to develop solutions, including diagnosing and fixing data quality problems
- Actively engaged in planning the team's work via backlog refinement, helping to write user stories, etc
- Practiced with written and verbal communication that helps make complex code accessible
- Prioritize writing maintainable and well-documented code
- Demonstrate the ability to effectively give and receive constructive feedback, especially with other engineers
- Hands-on experience with geospatial data - shapefiles, GeoJSON, projections/coordinate systems, and spatial joins
- Experience with geospatial libraries and tooling (PostGIS, GeoPandas, Shapely, GDAL/OGR, Fiona, etc.)
- Familiarity with political geography: precincts, city council and county districts, and state/federal legislative districts
- Understanding of how census geographies differ from political boundaries, and the challenges of mapping between them
- Awareness of the current redistricting landscape and how court-ordered and legislative map changes affect downstream data
- Understanding of U.S. elections administration and/or campaign operations
- Proficiency in JavaScript/TypeScript (used within and without Rails)
- Knowledge of building and maintaining Ruby on Rails applications, including performing upgrades, using GraphQL-Ruby, Turbo/Stimulus, Rspec, etc
- Understanding of API design, development, and usage, especially GraphQL APIs
- Experience contributing to automated test suites and ensuring robust coverage
- Expertise in PostgreSQL (with PostGIS for geospatial data)
- Experience working with cloud data warehouses, particularly BigQuery
- Knowledge of building scalable data pipelines with dbt
- Knowledge of scaling and high-availability techniques
- Experience maintaining infrastructure hosted on AWS or GCP
- Experience with continuous integration and deployment (CI/CD) tools, especially GitLab CI and/or GitHub Actions
- Familiarity with Terraform for Infrastructure-as-Code