Context
CarePath runs clinical prediction models for eight lines of business, including Medicare Advantage, Commercial, M360, Maternity, Behavioral Health, and Condition Care.
Every model family needed one repeatable, auditable path from training to production across separate AWS accounts, with continuous monitoring for data quality and bias. I architected that platform and own it end to end, with all infrastructure defined in Python CDK.
What I built
- Multi-account CI/CD in AWS CDK (Python): CodePipeline with three-stage promotion from dev to stage to prod, CodeStar Connections to GitHub Enterprise with branch-specific triggers, and deterministic CloudFormation assets published by CodeBuild.
- Cross-account model promotion: KMS-encrypted silver-to-gold artifact buckets with cross-account S3 and KMS policies. A Lambda custom resource validates artifacts, then registers and approves the version in SageMaker Model Registry on every deploy.
- SageMaker inference pipelines for all 37 models, with per-family Processing steps for feature engineering, inference, and post-processing, plus retry policies.
- SageMaker training pipelines that run cohort creation, model training, and parallel baseline generation for data quality, model quality, and bias using Model Monitor and Clarify, with version-stamped artifacts for reproducibility.
- Cron-scheduled data quality and bias monitoring at the model-family level, with CloudWatch alarms and dashboards.
- A separate pull-request pipeline that runs pytest and linting in VPC-connected CodeBuild, and an SNS and Lambda construct that posts commit status back to the GitHub Enterprise API.
- Least-privilege IAM roles for every CodeBuild project and SageMaker execution, with all pipelines inside a shared VPC whose subnet and security-group IDs come from SSM Parameter Store.
- coe-utils, an internal Python package that standardizes shared MLOps utilities across teams, and a hub-and-spoke shared-service CDK deployment model.
Results
- 37 models across 8 lines of business ship through one auditable path, defined entirely as Python CDK.
- Every deploy validates model artifacts, then registers and approves the version automatically.
- Data quality and bias are monitored on a schedule for every model family, with alarms in CloudWatch.
- Shared utilities in coe-utils and the hub-and-spoke model give other teams a standard way to deploy.