Skip to content

Case study · Healthcare

Pericare

Maternal and child health platform combining a mobile-facing API and an internal admin dashboard for content, commerce, and operations.

Role
Full-Stack Software Engineer
Timeline
05/2025 — 08/2025 · Contract
Scope
Mobile API + admin dashboard
Pericare admin dashboard showing a nursing space detail page with a location map

Overview

The problem

Product, content, subscriptions, and partner workflows needed to be managed in one reliable system while supporting real user-facing healthcare journeys.

My role

Full-stack ownership across backend architecture (NestJS + Prisma) and the admin experience (TanStack Start + React), with a focus on operational clarity and delivery speed.

Constraints

  1. 01

    Support Firebase-authenticated users and admins with strict route-level access boundaries.

  2. 02

    Keep Shopify and RevenueCat integrations stable while evolving data models and dashboard workflows.

  3. 03

    Ship safely across a growing set of modules: users, learning content, events, products, partners, banners, nursing spaces.

Decisions

  1. 01

    Modular domain services with admin, public, and webhook separation, sharing pagination and DTO conventions.

  2. 02

    Prisma migrations for schema evolution, keeping feature rollout incremental and traceable.

  3. 03

    Provider-based media and CDN handling to avoid lock-in and support future storage backends.

Impact

  1. 01

    One admin surface for users, educational content, products and events, partners and codes, banners, and nursing spaces.

  2. 02

    A scalable integration layer for subscriptions and commerce events via RevenueCat and Shopify webhooks.

  3. 03

    More consistent operations through shared table and query patterns with cursor pagination across modules.

Stack

  • TypeScript
  • React
  • TanStack Start
  • Tailwind CSS
  • TanStack Query
  • TanStack Table
  • NestJS
  • Prisma
  • PostgreSQL
  • Firebase
  • Shopify Webhooks
  • RevenueCat Webhooks

Lessons

  1. 01

    Domain-heavy platforms benefit from clear module boundaries early.

  2. 02

    Webhook-driven systems need explicit contracts and backfill tooling to recover from integration drift.

Next