Python Developer

$50 - $68.75/hr

Other

This job posting has expired and is no longer accepting applications. Check out similar jobs


Job description

Python Developer for Geocoding System Modernization

The Arizona Department of Health Services (ADHS) is 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 PEP8, 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.

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

  • Bachelor’s degree in Computer Science, Geographic Information Systems, Software Engineering, or a related field.
  • Equivalent professional experience may be substituted for formal education.

Experience

  • Minimum of 5 years of experience in Python development.
  • Demonstrated experience refactoring or modernizing existing codebases for improved maintainability and performance.
  • Experience working with government or public health organizations is a plus.


Frequently asked questions

Q: What skills or qualities help someone succeed as a Python Developer?

A: To succeed as a Python Developer, key technical skills include proficiency in Python programming language, experience with popular libraries and frameworks such as NumPy, pandas, and Flask or Django, as well as knowledge of data structures, algorithms, and object-oriented programming. Additionally, strong problem-solving skills, attention to detail, and the ability to learn and adapt quickly are essential soft skills, along with effective communication and collaboration skills to work with cross-functional teams. By combining these technical and soft skills, a Python Developer can efficiently design, develop, and deploy scalable and maintainable software solutions, driving career growth and effectiveness in the role.

Q: What is the career path for a Python Developer?

A: A Python Developer's typical career progression involves starting as a Junior Python Developer, where they focus on writing clean, efficient code and learning industry-standard frameworks and libraries. As they gain experience, they can move into mid-level roles such as Python Engineer or Senior Python Developer, where they take on leadership responsibilities, mentor junior team members, and contribute to the design and architecture of complex systems. Ultimately, senior Python Developers can transition into technical lead or architect positions, or explore adjacent roles like Data Scientist, DevOps Engineer, or Technical Product Manager, leveraging their expertise in Python and software development to drive business growth and innovation.