Overview: Seeking a skilled and experienced Python developer to modernize and refactor the Python codebase that supports an existing full-stack geocoding system. This system includes multiple Python scripts for data processing and automation, a SQL Server database, Esri file geodatabases, and a PHP-based web interface for configuring and running geocoding jobs. It also features a manual geocoding interface built with the ArcGIS JavaScript API. Geocoding workflows leverage a combination of locally installed geocoding software, ArcGIS Server-based geocoding services, and the Google Maps API.
This contract position will focus on improving the maintainability, clarity, and structure of the existing Python codebase. Core responsibilities include refactoring scripts that handle geocoding logic, address standardization, data validation, and geospatial enrichment. The refactored code should follow Python best practices (including PEP 8), improve error handling and logging, and allow for more efficient testing, debugging, and future enhancement.
Key Responsibilities:
Assess the current Python codebase, workflows, and dependencies related to geocoding and spatial data processing.
Refactor and modernize existing Python scripts to improve code readability, modularity, and adherence to best practices (e.g., PEP 8, logging, error handling).
Maintain and improve integration with multiple geocoding services, including locally installed geocoding software, ArcGIS Server REST-based services, and Google Maps Geocoding API (including quota management and API key security)
Transition data processing from flat files (CSVs, Esri file geodatabases) to an ArcGIS Enterprise Geodatabase (SQL Server).
Implement robust logging, error handling, and validation throughout the codebase.
Optimize and document fallback logic for handling geocoding failures and manual resolution workflows.
Produce high-quality technical documentation, including code comments and usage instructions, architecture diagrams and workflow documentation.
Improve the logging and reporting framework for better error tracking and system transparency.
Collaborate with internal GIS and IT staff for requirements clarification, testing, and implementation support.
Required Skills & Experience:
Core Technical Proficiency
Python Proficiency – Advanced experience writing clean, modular Python code for data processing and automation. Familiarity with best practices including PEP 8, logging, and error handling; libraries may include: pandas, os, shutil, logging, arcpy, pyodbc, requests
Experience using ArcPy for spatial joins, geoprocessing, and field calculations
Strong understanding of SQL Server databases, including querying and updating tabular data; working knowledge of geospatial data stored in ArcGIS Enterprise Geodatabases
Experience working with third-party geocoding APIs, especially Google’s Geocoding API (including authentication, usage limits, and response parsing)
Familiarity with API security protocols such as OAuth2, API keys, or JWT
Understanding of API authentication and security protocols
Software Development Best Practices
Adherence to PEP 8 and modular design principles
Use of Git for version control and collaboration
Experience writing clean, maintainable, and well-documented code
Comfortable working independently and delivering clear, reliable deliverables in a contract environment
Preferred Qualifications
Experience modernizing or rewriting legacy Python codebases
Familiarity with geocoding accuracy scoring, fallback strategies, and manual resolution workflows
Prior work with public health, government, or GIS teams is a plus
Deliverables:
Refactored Python scripts with improved structure, documentation, and testability.
Modularized codebase that supports future enhancements and integration of new geocoding services.
Revised error handling and logging mechanisms.
Documentation including: code comments and docstrings, developer setup instructions, system architecture diagram or data flow chart
Updated configuration files and batch scripts (if applicable).
Knowledge transfer session(s) to internal staff
Qualifications:
Education
a. Bachelor’s degree in Computer Science, Geographic Information Systems,Software Engineering, or a related field.
b. Equivalent professional experience may be substituted for formal education.
Experience
a. Minimum of 5 years of experience in Python development
b. Demonstrated experience refactoring or modernizing existing codebases for improved maintainability and performance.
c. Experience working with government or public health organizations is a plus.