PLEASE COMPLETE THE APPLICATION BY July 6, 2026.
Greener by Default is hiring a backend-leaning Django/HTMX developer to build the first public-facing web application around our existing Python foodservice analysis pipeline.
Greener by Default is an organization that works with institutions (e.g. universities, hospitals, sports venues) to make plant-based food the default, while giving diners the choice to opt into meat/dairy. This strategy helps institutions lower their carbon emissions, save on food costs and improve on health and inclusivity all while preserving diners’ freedom of choice.
Position Objective:
To measure and scale this impact, we analyze extensive institutional food procurement and meal-service data. This analysis allows us to benchmark historical purchasing, quantify environmental outcomes, and continuously refine our methodology. We currently have a working Python data pipeline that analyzes purchasing data, but no browser app around it. We are looking for a mid-to-senior developer to wrap this pipeline in a publicly-available web application.
The visible front end of this V1 product is small: three pages (upload, status, download) built with server-rendered Django templates and HTMX. The objective of this position is: standing up a Django web service and a Python background worker, wiring them to a Supabase Postgres database and Storage, perfecting a direct-to-storage signed-URL upload flow, and writing migrations and Row Level Security (RLS) rules that protect real client data. The developer will also be responsible for auditing the codebase, verifying existing code and adding data security guardrails.
This is a remote part-time contract position.
Primary Responsibilities and Duties:
Database & Migrations: Stand up the local Supabase environment and express the agreed schema as Django migrations, including strict RLS policies to isolate client data
Data security is our highest priority for this role.
Web Service: Verify the Django application, including the base layout, HTMX partials, basic-auth middleware;and the UI for uploading, status checking, and downloading.
Upload Flow: Implement the two-step direct-to-Supabase upload logic
Validation & Error Handling: Ensure bad uploads (wrong extension, missing columns, files >100MB) fail quickly with specific, human-readable error messages in the UI—not stack traces
Operations & Deployment: Deploy the application to Render, wire up basic operational alerts (e.g., worker crashes, storage thresholds), and document service settings
Code Reliability: Audit and optimize the existing prototype to ensure long-term maintainability and stability.
Handover: Setup documentation so a small data team can run, understand, and maintain the system without you.
The Tech Stack:
Framework: Django + HTMX (server-rendered pages, served by gunicorn).
Styling: Tailwind CSS + DaisyUI (via django-tailwind-cli, no Node toolchain required).
Database & Storage: Supabase (Postgres with RLS, private object storage).
Hosting: Render (one web service, one background worker built from the same codebase via Dockerfile).
Testing: Pytest + pytest-django.
Assets: WhiteNoise.
Required Skills:
Security discipline: You exercise excellent judgment around secrets, environment variables, permissions, and private client data.
Mid-to-senior Django experience: You have shipped production apps and are highly comfortable with the ORM, migrations, middleware, and settings management.
Postgres & SQL comfort: You can write schema migrations by hand, reason about transaction boundaries, and understand row locking.
Background job & File upload expertise: You have built systems where a web request hands work to a worker process. You understand cloud object storage, signed URLs, CORS, and handling orphaned uploads.
Code Discernment & Debugging: You are comfortable stepping into existing codebases, tracing logic, and debugging prototypes, especially for AI-generated code.
Optional Skills:
Experience with Supabase (Auth, Storage, RLS, Postgres-native workflows).
Production experience with HTMX and the partial-rendering patterns.
Experience integrating an existing Python package into a web app.
Experience working with AI-coding agents.
Background in building workflow products, internal tools, or data-pipeline-adjacent apps.
A history of working with nonprofits or mission-driven organizations.
To protect both sides from poorly defined scope, this engagement will be split into two steps:
Paid Discovery & Planning: Review our prepared materials (schema plans, JSON handoff shapes, sample files), validate the architecture, and produce a fixed delivery plan.
Fixed-Scope Build: Execute the build and hand over the V1 product for internal dogfooding.
Reports to:
Data Director
Compensation:
Compensation will be competitive and determined based on relevant wage data for the candidate's geographic location, as well as their specific experience and professional credentials. The applicable pay range will be discussed with candidates during their initial screening interview.
To Apply
To apply, complete the application. We will not consider any candidates who have not filled out the form. Please do not contact us via email or message to apply. Application forms must be completed by July 6, 2026.