HealthKit + Celery on ECS, Part 3: Deploying Workers to Fargate
Three ECS services from one Docker image, the env var crash that blocks every first Celery deploy, Redis configuration across environments, and health checks...
Three ECS services from one Docker image, the env var crash that blocks every first Celery deploy, Redis configuration across environments, and health checks...
You can’t process Apple HealthKit data inline. Here’s why we needed Celery, why SQS was the wrong broker for us, and the architecture that emerged.
A visual deep-dive into running Celery workers as separate ECS containers — broker topology, task lifecycle, concurrency models, and the Beat scheduler gotcha.
Part 4 of building the AI assistant. This covers the most critical issue in health AI: preventing the model from making up data that doesn’t exist.
Part 3 of the series on building a women’s health AI assistant. This covers the system prompts, safety guardrails, and behavior control that make an AI agent...
This is the first in a series documenting how I built a women’s health AI assistant using AWS Strands SDK, Bedrock, and Django. The system handles personal h...
If you’re building multi-user AI agents with AWS Strands SDK, you’ll quickly hit a common problem: how do you bind tools to a specific user without passing u...
How I replaced inline URL citations with a token-based reference system that separates machine semantics from user-visible text — and why the old approach wa...
Three ECS services from one Docker image, the env var crash that blocks every first Celery deploy, Redis configuration across environments, and health checks...
Building a 30-day backfill system with anchor-based incremental sync, chunked uploads, UUID deduplication, and the ‘device locked’ problem that breaks everyt...
You can’t process Apple HealthKit data inline. Here’s why we needed Celery, why SQS was the wrong broker for us, and the architecture that emerged.
A visual deep-dive into running Celery workers as separate ECS containers — broker topology, task lifecycle, concurrency models, and the Beat scheduler gotcha.
Part 4 of building the AI assistant. This covers the most critical issue in health AI: preventing the model from making up data that doesn’t exist.
Part 3 of the series on building a women’s health AI assistant. This covers the system prompts, safety guardrails, and behavior control that make an AI agent...
This is the first in a series documenting how I built a women’s health AI assistant using AWS Strands SDK, Bedrock, and Django. The system handles personal h...
If you’re building multi-user AI agents with AWS Strands SDK, you’ll quickly hit a common problem: how do you bind tools to a specific user without passing u...
Part 4 of building the AI assistant. This covers the most critical issue in health AI: preventing the model from making up data that doesn’t exist.
Part 3 of the series on building a women’s health AI assistant. This covers the system prompts, safety guardrails, and behavior control that make an AI agent...
This is the first in a series documenting how I built a women’s health AI assistant using AWS Strands SDK, Bedrock, and Django. The system handles personal h...
If you’re building multi-user AI agents with AWS Strands SDK, you’ll quickly hit a common problem: how do you bind tools to a specific user without passing u...
Three ECS services from one Docker image, the env var crash that blocks every first Celery deploy, Redis configuration across environments, and health checks...
Building a 30-day backfill system with anchor-based incremental sync, chunked uploads, UUID deduplication, and the ‘device locked’ problem that breaks everyt...
You can’t process Apple HealthKit data inline. Here’s why we needed Celery, why SQS was the wrong broker for us, and the architecture that emerged.
A visual deep-dive into running Celery workers as separate ECS containers — broker topology, task lifecycle, concurrency models, and the Beat scheduler gotcha.
How I replaced inline URL citations with a token-based reference system that separates machine semantics from user-visible text — and why the old approach wa...
This is the first in a series documenting how I built a women’s health AI assistant using AWS Strands SDK, Bedrock, and Django. The system handles personal h...
If you’re building multi-user AI agents with AWS Strands SDK, you’ll quickly hit a common problem: how do you bind tools to a specific user without passing u...
Three ECS services from one Docker image, the env var crash that blocks every first Celery deploy, Redis configuration across environments, and health checks...
You can’t process Apple HealthKit data inline. Here’s why we needed Celery, why SQS was the wrong broker for us, and the architecture that emerged.
A visual deep-dive into running Celery workers as separate ECS containers — broker topology, task lifecycle, concurrency models, and the Beat scheduler gotcha.
Three ECS services from one Docker image, the env var crash that blocks every first Celery deploy, Redis configuration across environments, and health checks...
Building a 30-day backfill system with anchor-based incremental sync, chunked uploads, UUID deduplication, and the ‘device locked’ problem that breaks everyt...
You can’t process Apple HealthKit data inline. Here’s why we needed Celery, why SQS was the wrong broker for us, and the architecture that emerged.
I have 268 markdown files in my Obsidian vault – internal docs, architecture decisions, API specs, meeting notes. Searching them with Obsidian’s built-in sea...
If you’re building multi-user AI agents with AWS Strands SDK, you’ll quickly hit a common problem: how do you bind tools to a specific user without passing u...
How I replaced inline URL citations with a token-based reference system that separates machine semantics from user-visible text — and why the old approach wa...
This is the first in a series documenting how I built a women’s health AI assistant using AWS Strands SDK, Bedrock, and Django. The system handles personal h...
How I replaced inline URL citations with a token-based reference system that separates machine semantics from user-visible text — and why the old approach wa...
I have 268 markdown files in my Obsidian vault – internal docs, architecture decisions, API specs, meeting notes. Searching them with Obsidian’s built-in sea...
Three ECS services from one Docker image, the env var crash that blocks every first Celery deploy, Redis configuration across environments, and health checks...
A visual deep-dive into running Celery workers as separate ECS containers — broker topology, task lifecycle, concurrency models, and the Beat scheduler gotcha.
Building a 30-day backfill system with anchor-based incremental sync, chunked uploads, UUID deduplication, and the ‘device locked’ problem that breaks everyt...
You can’t process Apple HealthKit data inline. Here’s why we needed Celery, why SQS was the wrong broker for us, and the architecture that emerged.
This is the first in a series documenting how I built a women’s health AI assistant using AWS Strands SDK, Bedrock, and Django. The system handles personal h...
Part 3 of the series on building a women’s health AI assistant. This covers the system prompts, safety guardrails, and behavior control that make an AI agent...
Part 3 of the series on building a women’s health AI assistant. This covers the system prompts, safety guardrails, and behavior control that make an AI agent...
Part 3 of the series on building a women’s health AI assistant. This covers the system prompts, safety guardrails, and behavior control that make an AI agent...
Part 4 of building the AI assistant. This covers the most critical issue in health AI: preventing the model from making up data that doesn’t exist.
Part 4 of building the AI assistant. This covers the most critical issue in health AI: preventing the model from making up data that doesn’t exist.
I have 268 markdown files in my Obsidian vault – internal docs, architecture decisions, API specs, meeting notes. Searching them with Obsidian’s built-in sea...
I have 268 markdown files in my Obsidian vault – internal docs, architecture decisions, API specs, meeting notes. Searching them with Obsidian’s built-in sea...
I have 268 markdown files in my Obsidian vault – internal docs, architecture decisions, API specs, meeting notes. Searching them with Obsidian’s built-in sea...
I have 268 markdown files in my Obsidian vault – internal docs, architecture decisions, API specs, meeting notes. Searching them with Obsidian’s built-in sea...
I have 268 markdown files in my Obsidian vault – internal docs, architecture decisions, API specs, meeting notes. Searching them with Obsidian’s built-in sea...
I have 268 markdown files in my Obsidian vault – internal docs, architecture decisions, API specs, meeting notes. Searching them with Obsidian’s built-in sea...
After 14 years of building software, I’m finally writing about it.
After 14 years of building software, I’m finally writing about it.
Building a 30-day backfill system with anchor-based incremental sync, chunked uploads, UUID deduplication, and the ‘device locked’ problem that breaks everyt...
Three ECS services from one Docker image, the env var crash that blocks every first Celery deploy, Redis configuration across environments, and health checks...
How I replaced inline URL citations with a token-based reference system that separates machine semantics from user-visible text — and why the old approach wa...
How I replaced inline URL citations with a token-based reference system that separates machine semantics from user-visible text — and why the old approach wa...