Docker Compose in Production: What Works and What Quietly Burns You

Running Docker Compose in production is a reasonable choice for a single host, but the defaults were chosen for a laptop. A walk through the failure families that actually bite: the deploy gap, unrotated logs filling the disk, anonymous volumes, published ports that bypass your firewall, secrets in environment variables, and health checks that report without acting.

Continue ReadingDocker Compose in Production: What Works and What Quietly Burns You

Apache Airflow on AWS: Building SaaS and API Pipelines That Don’t Lie to You

Most API pipeline failures are green DAGs producing incomplete data. A practical guide to running Apache Airflow on AWS for SaaS and API extraction: choosing between MWAA provisioned, MWAA Serverless and self-managed, the pool setting that silently stops throttling when you go deferrable, retry and pagination design, secrets handling, and the four cost lines that actually move.

Continue ReadingApache Airflow on AWS: Building SaaS and API Pipelines That Don’t Lie to You

A 100 Score and a Failing Report: Fixing Core Web Vitals on a Real WordPress Site

You got PageSpeed Insights to 98 and six weeks later Search Console still says the same URLs are failing. The score and the assessment measure different things, and Lighthouse cannot measure INP at all. Here is how to fix Core Web Vitals on WordPress in the order that actually moves the report.

Continue ReadingA 100 Score and a Failing Report: Fixing Core Web Vitals on a Real WordPress Site

Zero Errors, Zero Records: Monitoring Salesforce Integrations with CloudWatch and Grafana

The error count was zero every day for three weeks. So was the invocation count. A stopped integration and a healthy one produce identical graphs, and every CloudWatch default is tuned to stay quiet when data stops arriving. Four signals worth emitting, and the alarm config that actually fires.

Continue ReadingZero Errors, Zero Records: Monitoring Salesforce Integrations with CloudWatch and Grafana

Run It Twice, Get Two Answers: Building an ETL Pipeline From Zoho CRM to Amazon S3

You re-run the same extract for the same window and get a different set of rows. Nothing errored. You were paginating a result set that kept changing while you read it. Here's how to build a Zoho CRM to S3 pipeline whose runs are repeatable, from closed read windows to Bulk Read and deletions.

Continue ReadingRun It Twice, Get Two Answers: Building an ETL Pipeline From Zoho CRM to Amazon S3