Permitting platformTechnical Lead · Axis Human · current
Gilly
Montana's 310 stream permits ran on paper: forms filled at a kitchen table, driven to a district office, then checked again on a creek bank. Gilly puts that whole process online, from guided applications to district review, field inspection and a public map of permits across the state. As Technical Lead I planned the rebuild and led the team through it while releases kept shipping. The inspection module was a team build; the offline side of it was mine. I planned that refactor and wrote it, and the result has run far more reliably than the version it replaced: inspectors work with no signal at all, notes, photos and signatures stay on the device, and everything syncs the moment a connection returns, so fieldwork never waits on coverage. Gilly is a commercial product, built and run by a nonprofit.
Visit the project (opens in a new tab)- Role
- Technical Lead
- Partner
- Axis Human
- Year
- 2024 -
- Status
- Live
- Stack
- Next.js
- GIS
- Node.js
- AWS Serverless
- TypeScript
- Offline PWA
The brief
Pay down technical debt without pausing the product
In Montana, work in or near a stream needs a 310 permit, and applications run through local conservation districts. Gilly had already moved that process online for applicants, district staff, field inspectors and agencies, but after several years of growth the original app had become harder and costlier to change. I wrote the case for paying down that technical debt: simpler code so new developers contribute sooner, shared building blocks such as a single signature widget so features ship faster and feel the same in every module, code that is easier to adapt to each organisation's own requirements, and code that is easier to test, meaning fewer test cases, shorter test runs, better coverage and fewer bugs reaching users. Every point came back to time, and time is cost.
I planned the migration and carried it out with the team over many months without pausing feature work. The old app stayed live and handed over one section at a time, starting with emergency permits and finishing with sign in, while regular releases kept going out. Alongside the code, I prepared and coached the team through a bigger change in how we work: from planning in horizontal layers to delivering thin vertical slices of each feature, releasing unfinished work hidden behind feature flags, and creating and managing shared feature flag widgets.
As Technical Lead and the new app's largest contributor, I set its ground rules (typed calls to the back end, domain code kept apart from shared code, one documented design system) and built the automated release pipeline with approval gates. On the front end, I also built most of the map (stream, watershed and district layers, clustering and filters) and the offline side of the inspection module, which saves inspections, photos and signatures without signal and syncs once back in range.
Outcome
- ~13 moFrom starting the new app to retiring the old one, with no feature freeze
- 400+Platform users today, up from 120 in early 2024
- 9Conservation districts on the platform today, up from 2 in early 2024