OverviewResponsibilities
Duties of the API Developer will include the following:
- API development: design and build APIs that ingest structured data and serve results to downstream users and applications.
- Structured outputs: generate versioned, schema-conformant outputs in multiple formats, including PDF and JSON, that faithfully represent the underlying data.
- Schemas & versioning: define and maintain output schemas, data contracts, and schema and API versioning, using standards such as OpenAPI and JSON Schema, so consumers can rely on stable interfaces as the system evolves.
- CLI (secondary): provide a lightweight command-line interface over the same functionality for scripted and batch use.
- Security & deployment: help package and deploy services soundly, applying good practices for access control, dependency management, and compliance in secure or government-adjacent environments.
- Testing & validation: write unit and integration tests and output-validation checks to confirm results are correct, well-formed, and reproducible.
- Documentation & collaboration: document APIs, schemas, and output formats; coordinate with the Science and Platform teams that define the underlying data and logic to keep interfaces clear.
Qualifications
The API Developer selected should have the following:
- Master's in computer science, software engineering, data science, or a related field; or a Bachelor's plus 1-2 years building APIs, services, or data pipelines; or equivalent practical experience, including military or self-taught paths.
- Proficiency in at least one modern programming language; Python experience is a plus, as it is the likely production language for this work.
- Experience designing and consuming REST/JSON APIs and working with structured data formats.
- Understanding of data schemas and versioning, and why stable data contracts matter to downstream consumers.
- Comfort with Git, Linux, testing, and command-line workflows.
The Ideal API Developer will have the following:
- Experience generating documents or reports programmatically (e.g., PDF generation) and producing multiple output formats from a single source of truth.
- Familiarity with schema definition and validation tooling (e.g., JSON Schema) and format versioning practices.
- Exposure to environmental, geospatial, or scientific data, and formats such as GeoJSON or GeoParquet.
- Experience with containerization, Infrastructure-as-Code, and CI/CD for reliable, repeatable builds and deployments (e.g., Docker, Terraform or CloudFormation, GitHub Actions).
- Systems, infrastructure, or networking experience, and familiarity with secure deployment on AWS (e.g., access management, or a security credential such as CC or Security+).
- Experience with R, including Shiny, or other languages for data apps and rapid prototyping.
- Familiarity with Rust or an interest in contributing to Rust-based tooling.
- Colorado Front Range presence for periodic in-person collaboration.