{
    "componentChunkName": "component---src-templates-portfolio-js",
    "path": "/work/berrien-springs",
    "result": {"data":{"contentfulPortfolio":{"title":"Berrien Springs Public Schools","gradient":["14111d","302443"],"date":null,"slug":"berrien-springs","requirements":["Fractional CTO"],"splash":null,"description":{"description":"I sold, scoped, architected and built a unified data foundation across every district system, as sole engineer and fractional CTO for a school district with $100M in annual funding."},"productType":"Data architecture · Customer delivery","body":{"body":"## Overview\n\nIn 2025, I worked as fractional CTO for Berrien Springs Public Schools, consolidating data from every district system into one source of truth. The district has $100M in annual funding; that describes the organization’s scale, not the project budget.\n\n## Owning the engagement\n\nI sold and scoped the project, then personally architected and built the system as the sole engineer and C-level strategy consultant. I owned the engagement from defining the work through implementation.\n\n## Building the foundation\n\nThe result was the backbone of the district’s new data architecture: a unified foundation spanning previously separate district systems.\n\nThe work centered on integration and data architecture. It was not an LLM deployment. Its relevance to Forward Deployed Engineering is the delivery model: work directly with an organization, translate its needs into a technical scope, and personally build the system.\n\n## Outcome\n\nData from every district system was consolidated into a single source of truth, establishing the backbone of the district’s new data architecture.\n"}},"allContentfulPortfolio":{"edges":[{"node":{"title":"Vale","gradient":["14111d","302443"],"date":null,"slug":"vale","requirements":["Founder & Engineer"],"splash":null,"description":{"description":"I built Vale’s ingestion and spatial data infrastructure across hundreds of millions of geospatial data points, combining heterogeneous land sources into cited site reports and grounded AI answers through Python, PostGIS and MCP."},"productType":"Applied AI · Geospatial Intelligence · MCP","body":{"body":"## Overview\n\nI built Vale to make fragmented European land data usable by software and AI agents, ingesting hundreds of millions of geospatial data points into a normalized land-intelligence system. A coordinate resolves to a normalized site report covering parcel identity, buildings, terrain, planning, designations and hazards where sources support them. Field-level evidence, coverage and limitations carry through to the answer layer.\n\n**My role:** Founder and engineer, owning data architecture, geospatial pipelines, the MCP interface, grounded answers and evaluation design.\n\n**Stack:** Python, PostgreSQL / PostGIS, OpenAI API, structured outputs and MCP.\n\n## The problem\n\nLand information is spread across authorities, formats and update cycles. A model can produce a fluent assessment while confusing missing data with a negative finding or treating nearby evidence as a parcel-wide fact. I needed useful evidence with boundaries the answer layer could preserve.\n\n## Data infrastructure at scale\n\nI built ingestion pipelines spanning hundreds of millions of geospatial data points and heterogeneous parcel, planning, environmental, terrain and infrastructure sources. The complexity sits in turning those sources into a maintained spatial data product with stable meaning and inspectable evidence.\n\nThe implementation separates source-specific acquisition and normalization from customer queries. PostGIS stores normalized vectors, source metadata and immutable snapshot identity; larger source archives and terrain raster files stay in object storage. Spatial measurements use each source’s declared metric coordinate system, while building coverage requires clipping and combining footprints against the selected parcel.\n\nExpanding coverage also requires operational control. Data is acquired and validated, normalized into staged snapshots, then activated through versioned geographic bundles with exact source membership and rollback metadata. Downloading a large dataset alone does not make it available to a customer.\n\nThese decisions connect the scale of ingestion to the reliability of an individual answer: the system must know which sources apply to a site, what they actually establish and which gaps remain.\n\n## Architecture\n\nThe CLI and six MCP tools use the same catalogue, coverage and query services. Source-specific ingestion and bounded providers feed PostGIS and object storage. One deterministic parcel lookup gives every analysis in a report the same site identity.\n\nThe normalized `SiteReport` sits between retrieval and generation:\n\n1. Resolve the coordinate and jurisdiction, then select a parcel deterministically.\n2. Retrieve supported fields from normalized data and bounded providers.\n3. Preserve source, analysis unit, effective date, confidence and coverage state for each field.\n4. Generate structured model outputs and use application validation to constrain claims to evidence and communicate uncertainty.\n\nThe CLI provides an inspection surface. MCP exposes the same contract to agents; ingestion remains separate from the customer query path.\n\n## Decisions that mattered\n\n### Missing data is part of the contract\n\nI kept five states distinct: `found`, `null`, `not_covered`, `unsupported` and `unavailable`. A source publishing no value differs from missing coverage, an unsupported field or a temporary provider failure. A covered zero or false remains a real value.\n\nThis gives the answer layer a concrete basis for explaining what is unknown instead of treating missing evidence as an absence of risk.\n\n### Evidence keeps its geographic scope\n\nFields retain their analysis unit and spatial relationship. Point evidence, administrative information and proximity observations cannot automatically become parcel-wide conclusions. Mapped-road distance provides context; it does not establish legal access.\n\n### Availability must reflect validated coverage\n\nDownloaded or staged data does not count as customer availability. Versioned geographic bundles expose validated capabilities and source membership, with atomic activation and rollback. Country differences remain visible.\n\n## Evaluation and iteration\n\nI built a 100-case evaluation suite across 25 English authorities, separating retrieval quality from answer grounding and uncertainty handling. This distinguished missing evidence from a model or validator mishandling evidence that was present.\n\nTargeted prompt and validator changes improved the rubric pass rate from **62% to 89%** and reduced false rejections from **18% to 3%** on that evaluation set.\n\nThese are results from a defined internal test set, not estimates of accuracy across all locations or questions. The set’s size and geographic scope limit what the numbers establish. Broader coverage and new source types need their own validation.\n\n## What this demonstrates\n\nVale combines hands-on data engineering with model integration and failure analysis. The central design choice was to make evidence, coverage and uncertainty inspectable before asking a model to explain them. The evaluation loop then tested whether those distinctions survived into the answer.\n\nThe system supports England and France through concrete source integrations; fields vary by jurisdiction and active coverage. This implementation does not establish full European coverage or customer adoption.\n\n[Visit Vale](https://valeatlas.com)\n"}}},{"node":{"title":"Metris Energy","gradient":["14111d","302443"],"date":null,"slug":"metris-energy","requirements":["Co-founder & CTO / CPO"],"splash":null,"description":{"description":"I co-founded Metris Energy from zero, owning product strategy, engineering, technical sales and team leadership. The platform connected tens of thousands of energy devices and ingested millions of telemetry records from commercial renewables."},"productType":"Energy asset management · Data integration","body":{"body":"## Overview\n\nI co-founded Metris Energy from zero and served as CTO / CPO, building both the product and the organization behind it. We raised millions in venture funding, built an MVP and took it to market. I owned product strategy, engineering, technical sales, hiring, people management and customer onboarding.\n\nThe company evolved from rooftop-solar assessment into an OEM-agnostic platform for commercial renewable-energy assets. The engineering ultimately connected tens of thousands of energy devices and ingested millions of telemetry records across manufacturers.\n\n## Building the company and finding the product\n\nThe initial product assessed rooftop solar potential and designed systems using LiDAR, satellite and aerial imagery. I led customer discovery, product strategy and repeated pivots as we learned where customers had a pressing operational need.\n\nThat work led us toward commercial energy asset management. I translated customer workflows into product scope, led the development and launch of the MVP, and worked directly on technical sales and onboarding. We found early signs of product–market fit; the company subsequently raised a further $5M seed round.\n\nThis was a company-building role spanning the commercial, product and technical work needed to get a new business into market. Alongside hands-on delivery, I hired and managed people and owned engineering priorities as the product and customer needs evolved.\n\n## Engineering at the scale of commercial renewables\n\nThe platform connected tens of thousands of commercial energy assets and devices across OEMs and ingested millions of telemetry records. We normalized five-minute telemetry for commercial PPA billing, asset-performance analysis and predictive fault detection.\n\nThe integration challenge went beyond connecting APIs. Different manufacturers exposed different representations of device and asset data, which had to become a common operational model that could support customer workflows across a mixed portfolio.\n\nI owned the product and engineering decisions connecting that infrastructure to a usable commercial platform: what to build, how to scope it, and how to deliver it alongside technical sales, onboarding and team development.\n\n## My exit\n\nI later sold my shares in a secondary transaction. Metris continues to operate.\n\n## What I bring to Applied AI delivery\n\nMetris required the same combination of customer understanding, product judgment, hands-on implementation and organizational ownership that complex AI deployments demand. Vale builds on that experience with model integration, grounded generation and evaluation design.\n"}}},{"node":{"title":"AchieveCE","gradient":["43C6AC","191654"],"date":"2021-08-20T00:00-04:00","slug":"achievece","requirements":["Development","Product Management"],"splash":{"gatsbyImageData":{"images":{"sources":[{"srcSet":"//images.ctfassets.net/vuek9s8puwzp/4JfTjPTApLm4JqpPGws8af/01db9c1433c70294adafbbdcae2a73eb/achievece-card.png?w=250&h=229&q=50&fm=webp 250w,\n//images.ctfassets.net/vuek9s8puwzp/4JfTjPTApLm4JqpPGws8af/01db9c1433c70294adafbbdcae2a73eb/achievece-card.png?w=500&h=457&q=50&fm=webp 500w,\n//images.ctfassets.net/vuek9s8puwzp/4JfTjPTApLm4JqpPGws8af/01db9c1433c70294adafbbdcae2a73eb/achievece-card.png?w=1000&h=914&q=50&fm=webp 1000w","sizes":"(min-width: 1000px) 1000px, 100vw","type":"image/webp"}],"fallback":{"src":"//images.ctfassets.net/vuek9s8puwzp/4JfTjPTApLm4JqpPGws8af/01db9c1433c70294adafbbdcae2a73eb/achievece-card.png?w=1000&h=914&q=50&fm=png","srcSet":"//images.ctfassets.net/vuek9s8puwzp/4JfTjPTApLm4JqpPGws8af/01db9c1433c70294adafbbdcae2a73eb/achievece-card.png?w=250&h=229&q=50&fm=png 250w,\n//images.ctfassets.net/vuek9s8puwzp/4JfTjPTApLm4JqpPGws8af/01db9c1433c70294adafbbdcae2a73eb/achievece-card.png?w=500&h=457&q=50&fm=png 500w,\n//images.ctfassets.net/vuek9s8puwzp/4JfTjPTApLm4JqpPGws8af/01db9c1433c70294adafbbdcae2a73eb/achievece-card.png?w=1000&h=914&q=50&fm=png 1000w","sizes":"(min-width: 1000px) 1000px, 100vw"}},"layout":"constrained","width":1000,"height":914.0000000000001,"placeholder":{"fallback":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAASCAMAAABsDg4iAAACbVBMVEU5PkY1P07///9ZXmRUVltPQkEcKjofLTshLj0iMUIkN0wnPFQ3Q1k7SmE5S2E9TWI5SmA5RlYzP005RFJFTls2O0VUWWBSVVtIP0EdKzofLDwfLTwgLT0gLj0iMUMxPE82Rl01R183SWA0R183R1wxPUw0Pk48R1YvPE0VJjgOIzYQJDcWKTseLD0eLT0dLT0cLD0bLD0lMD8nMUEcMEUfNU0hOFMkOlYgMUUeLD4bLEAbLUEeLT4eLj4mM0NWXmdZYWpcZG1aYWpbYWpbY21ZYWxYYm4xQlcmPFcjNkweL0IfLUAfLD0fLT4fLj8fL0AeLkAeL0FFT11TXGlTXWpRW2hRXGpSXWtLV2YmOU0jOE4hM0keLT8eKz4eKjwXKj0XKDsUKDsAHTcAAC4ADzIAIjwAIz0AJD8AJEAAKkUANE0AL0wAKUgALkoTK0IXKT4YKDwXJjkAAABETFZ5fIB3e4F3fIN2e4F2eoB2fYV2eH92WFB2V055WVBbQ0QAABkAABMAAAuxs7Wxs7SxsrSur7HV1tb3+Pj5+vr9/f76+vv19vb2+Pn89PD8tIb7rnf9rnXlrIyws7exs7ays7ays7X////+/v7//fz+7OP+6uH+6uD/9O78/Pz29vb29fX6+/vu7u/u7+/z8/T7+/z7/Pz8/f39/f38/P37+/vk4+Pn5ej07Or08vP39PL9/v74+Png3+Dv7/Dq6+7g08/8+/ra1t3r5+nT0trTy875+fn09PXc3eLcvrH7+fj+/v/z9fby8/X4+vzy9PX/9fD/5tr+6N3+5tr+7uf/7OL90bj81Lz91L390bn/4tR7LU7sAAAAA3RSTlP9/f0ldDUMAAAAt0lEQVQYGWXBwUoCURiA0e+b+UfTaJQaCYmidYs2vUNP46u2iqJdiwIjMBOkyM1tvLaZPEdK/1s4cV80dmArwtpU2BGXijv4J55v3BO3gF2rGLuniYaWJKCwtQGCrQR99Yudgqy//ijLcliTBdnmzJcLqkQWZMf+HC3ZmvhOwKl+9z0oP891tTkUgulA32zuRtOBDp8WryOC+ZUPLJd1mp94D+txIuCR1rWiQAKKGVlVVb1ej2z2C19HJnFjgZV9AAAAAElFTkSuQmCC"}}},"description":{"description":"AchieveCE is the professional continued education marketplace of choice, by nurses and other medical professionals, in all 50 states. Currently AchieveCE has over 70,000 users."},"productType":"Web App","body":{"body":"## Project Overview\nLed the complete platform rebuild for AchieveCE, a continuing education provider serving 100,000+ healthcare professionals across pharmacy, dentistry, and nursing. Responsible for architecting and delivering a modern LMS that processes millions in annual recurring revenue while maintaining seamless user experience during a complex data migration.\n\n### The Challenge\nAchieveCE's legacy platform was constraining growth. Built on outdated technology, it struggled with scale limitations during peak enrollment periods, complex healthcare compliance requirements varying by state and profession, and operational overhead from manual processes. The business needed a complete platform overhaul without disrupting service for existing users or jeopardizing revenue streams.\n\n## System Architecture\n\n### Technology Stack\n**Frontend**: Next.js 14 with App Router, TypeScript, Tailwind CSS  \n**Backend**: Next.js API Routes, Prisma ORM, PostgreSQL  \n**Infrastructure**: Vercel for deployment, AWS RDS for database  \n**Integrations**: Stripe for payments, SendGrid for email, CE Broker for license tracking\n\n### Core Platform Design\nBuilt around three primary concerns: user experience optimization for mobile-first healthcare professionals, content management streamlined for compliance tracking across 50 states, and data architecture designed for zero-downtime migration of critical compliance records.\n\n## Data Migration Complexity\n\n### Migration Scale & Constraints\n- **100,000+ user accounts** with active course enrollments\n- **500,000+ course completion records** required for license renewals\n- **2.5M+ certificate records** with legal compliance requirements\n- **Zero tolerance for data loss** - healthcare professionals depend on completion records for license renewals\n- **No maintenance windows** - platform generates revenue 24/7 during peak renewal periods\n\n### Migration Strategy\nExecuted a phased approach with dual-write capability. Phase 1 involved comprehensive data mapping and validation testing against a full production dataset copy. Phase 2 implemented gradual user migration with 10% weekly cohorts, allowing rollback if issues emerged. Phase 3 maintained temporary synchronization between old and new systems during transition.\n\nThe critical challenge was maintaining data integrity for compliance records while transforming legacy schema into a modern structure optimized for multi-state requirements. Built custom validation tools that verified every migrated record against source data, with automated alerts for any discrepancies.\n\n### Risk Mitigation\nImplemented real-time monitoring during migration windows, with automatic rollback triggers if error rates exceeded 0.1%. Created shadow mode testing where new system processed live traffic alongside legacy system for two weeks before cutover. Maintained complete audit trails of every data transformation for regulatory compliance.\n\n## Team Building & Engineering\n\n### Team Structure\nBuilt a 6-person product engineering team: 2 frontend engineers focused on user experience optimization, 2 backend engineers handling data architecture and API design, 1 QA engineer specializing in compliance validation, and 1 product manager with healthcare domain expertise.\n\n### Development Operations\nImplemented continuous integration with automated testing covering unit, integration, and end-to-end scenarios. Maintained 85%+ code coverage requirements with particular emphasis on compliance-critical features. Used TypeScript strict mode and automated linting to prevent runtime errors in production.\n\nDeployment strategy centered on Vercel's zero-downtime deployment with automatic rollback capabilities. Database migrations were version-controlled with tested rollback procedures for every schema change.\n\n## Technical Challenges\n\n### Multi-State Compliance Complexity\nHealthcare professionals need different CE requirements based on state licenses and profession. Built a dynamic compliance engine that calculates requirements in real-time, accounting for renewal periods, special requirements (ethics, law, live courses), and cross-state license holders. This replaced manual tracking that previously required customer service intervention.\n\n### Performance at Scale\nPeak enrollment periods during license renewal deadlines created traffic spikes 10x normal load. Implemented Redis caching for frequently accessed course data, optimized database queries to eliminate N+1 problems, and used Vercel's edge network for static content delivery. Result: platform handles peak load without degradation.\n\n### Real-time Certificate Generation\nUsers expect immediate certificate availability upon course completion for license renewals. Built async processing pipeline with immediate generation attempt and queue fallback for high-load periods. Average certificate generation time: 3.4 seconds, with 99.8% success rate on first attempt.\n\n## Production Results\n\n### Business Impact\n- **Revenue**: 25% increase in ARR within 6 months post-launch\n- **User engagement**: 40% increase in course completion rates\n- **Operational efficiency**: 60% reduction in manual certificate processing\n- **Customer satisfaction**: NPS improved from 6.2 to 8.4\n\n### Technical Performance\n- **Uptime**: 99.9% during peak enrollment periods\n- **Performance**: 85% reduction in page load times (average 1.2 seconds)\n- **Scale**: Handles 2,800+ concurrent users during peak periods\n- **Mobile optimization**: 68% of traffic now mobile, up from 23%\n\n### Migration Success\n- **Zero data loss** across 100,000+ user records\n- **Seamless transition** with no customer-reported issues\n- **Compliance maintained** for all existing certificates and records\n- **Revenue continuity** throughout 4-month migration period\n\n## Architecture Decisions\n\n### Next.js App Router\nChose App Router over Pages Router for better TypeScript integration, improved performance with React Server Components, and more intuitive file-based routing. Tradeoff was learning curve for team, but long-term maintainability benefits justified the investment.\n\n### Prisma ORM\nSelected over raw SQL for type-safe database queries and reduced boilerplate. Some complex compliance calculations required raw SQL, but development velocity gains outweighed limitations.\n\n### Vercel Deployment\nChose over AWS/Docker for zero-config deployment and excellent Next.js optimization. Less infrastructure control but significantly reduced DevOps overhead, allowing team focus on product development.\n\n## Current State\n\nThe platform successfully serves 100,000+ healthcare professionals with 99.9% uptime, sub-2-second page load times, and automated compliance tracking for all 50 states. Monthly active users: 45,000. Average session duration: 42 minutes. Mobile traffic: 68%.\n\n### Key Lessons\n- **Early database design investment** prevented months of later refactoring\n- **Phased migration approach** caught issues before affecting all users  \n- **Healthcare domain expertise** on team prevented costly compliance mistakes\n- **Performance directly correlates** with revenue - faster load times measurably increased enrollments\n- **Automated compliance tracking** enabled business growth without proportional staff increases\n\nAchieveCE demonstrates how thoughtful technical architecture and execution discipline can drive significant business outcomes. The 25% ARR increase and 40% improvement in completion rates show that technical excellence directly impacts the bottom line."}}}]}},"pageContext":{"slug":"berrien-springs"}},
    "staticQueryHashes": []}