Skip to content
Keshwar White
All work

Product

Jaro Pets

A companion app for Cane Corso owners and breeders, running on a platform of .NET services I designed around Domain-Driven Design boundaries.

In developmentArchitect, designer, and developer

Overview

Jaro Pets is built for one breed first. Cane Corsos grow fast and get big, and their owners end up tracking a lot: weight, vaccines, feeding, grooming, heat cycles, and who's looking after the dog this week. Jaro Pets keeps all of it in one place, and you can share a dog's records with a co-owner, vet, trainer, or sitter, each with access that fits their role.

The screens here are design concepts for where the owner app and the breeder tools are headed. The platform underneath is the part I've built out most: separate .NET services for pets, owners, breeds, nutrition, subscriptions, and sign-in, each owning its own data and passing integration events to the others instead of sharing tables.

Highlights

  • Each bounded context is its own service, with its own database, repository, and deployment pipeline
  • Integration events through MassTransit, on RabbitMQ locally and Amazon SQS in production, with an outbox so a saved change never loses its event
  • Passwordless sign-in through Microsoft Entra External ID, exchanged for the platform's own tokens with permissions scoped to each service
  • Architecture tests that fail the build when code crosses a boundary it shouldn't, like a Stripe type showing up outside the infrastructure layer

More screens

Get in touch

Let's talk about software, architecture, or the book.

Whether it's a question about a chapter, an invitation to speak, or a design problem you're working through, I'd like to hear about it.