/* Full-Stack Platform · 2024 */
Soil Health Institute Portal_
Soil health platform built to coordinate large-scale agricultural field data from sample collection through lab analysis to stakeholder reports.
Overview_
/* What it does and why it exists */
What it does
The SHI Application manages the entire lifecycle of a soil health study: defining research projects, mapping the exact land where sampling occurs, tracking soil samples from collection through lab analysis, and generating polished, audit-ready reports for scientists and stakeholders.
The system is built for organizations with layered relationships — farms, advisors, and testing labs — all working within the same platform but seeing only what's relevant to them.
The problem it replaces
Before this platform, a national-scale soil health research effort relied on a patchwork of spreadsheets, email chains, and manual PDF generation — error-prone, slow, and impossible to audit.
/* replaced with */
A single, connected system of record — from field boundary to lab result to published report.
Architecture_
/* Client-server, domain-organized, PostGIS-extended */
- FastAPIHigh-performance Python web framework
- PostgreSQL + PostGISRelational DB with geographic query support
- SQLAlchemyORM with 126 tracked migrations
- Auto-generated API clientOpenAPI spec drives frontend types — eliminates integration drift
- React 19 + TypeScriptComponent-based UI with full type safety
- TanStack Router + QueryFile-based routing and data-fetching with caching
- shadcn/uiAccessible, consistent component library
- MapboxInteractive map for drawing and managing geographic boundaries
/* Domain-organized codebase — 19 matching feature areas */
Both frontend and backend are split into the same 19 domains. A developer working on soil sample tracking touches one well-defined folder on each side — no hunting through a monolith.
Key Challenges_
/* Complex problems, solved deliberately */
Production Readiness_
/* CI/CD · Testing · Infrastructure as Code */
CI/CD Pipelines
- ·Linting + type-checking on every PR
- ·Backend test suite runs in parallel with frontend checks
- ·Fast developer feedback before merge
- ·Separate staging + production deploy pipelines
- ·New features validated in staging before reaching users
Testing
- ·59 automated test files
- ·Thorough backend business logic coverage
- ·Frontend component testing suite
- ·Type-safe API client eliminates integration drift
- ·Static analysis on every commit
Infrastructure
- ·Deployed on AWS
- ·Terraform IaC — entire environment reproducible
- ·Infrastructure changes reviewed like application code
- ·Secrets managed via secure secrets manager
- ·Credentials never stored in version control
Lessons Learned_
/* Trade-offs made honestly */
Lightweight async over a task queue
Background work like audit logging runs in-process async tasks rather than a dedicated job queue. This kept the architecture simpler and is reasonable at current scale. As data volumes grow, a proper task queue would improve reliability and observability of background work.
End-to-end browser testing
Automated tests cover backend logic thoroughly and frontend components individually, but a full browser-based suite that exercises complete user workflows doesn't yet exist. Adding this would catch integration issues that unit tests alone miss.
Formal domain documentation
As the platform grew to 19 interconnected feature areas, a central reference describing how the business concepts relate to one another became increasingly valuable. Investing in this documentation reduces onboarding time and lowers the risk of inconsistent decisions across features as the team scales.
/* Open to new opportunities */
Have a problem to solve?
Let's get to workand start building something awesome.