Posts
All the articles I've posted.
-
Why my average position improved while my traffic collapsed
In Google Search Console, average position can improve while clicks drop 70%. It measures your query mix, not your ranking. Segment before you read it.
-
Pulling Brevo email logs into your backoffice without sharing credentials
Read Brevo transactional email events from your own backend with one API key: the endpoint, date filters, three header mistakes and when to use webhooks.
-
Building a member-month churn panel in dbt without leaking the future
Turn eligibility, medical and pharmacy claims into a leak-free member-month training table for disenrollment prediction, with dbt tests and Snowflake ML.
-
De-identifying FHIR data: HIPAA Safe Harbor, limited data sets and leaks
Dropping name and SSN is not de-identification. Apply HIPAA Safe Harbor to FHIR NDJSON with an allowlist, surrogate keys and a leak check, in Python.
-
Synthea vs SynPUF: picking synthetic healthcare data for pipeline tests
Synthea simulates coherent patients and exports FHIR; SynPUF is perturbed Medicare claims. When to use each, and how to turn Synthea into a messy roster.
-
HL7 v2 ADT feeds: from pipe-delimited events to an encounters table
Parse HL7 v2 ADT messages in plain Python, ACK them over MLLP, and fold admits, discharges and cancellations into one row per hospital visit.
-
Migrating from SFTP to a roster API: dual-run and reconciliation
Cut over from CSV-over-SFTP to a FHIR roster API without a big bang: phased dual-run, DuckDB reconciliation of CSV vs NDJSON, and exit criteria.
-
Roster change notifications with FHIR Subscriptions (R4 backport)
Stop polling for new roster files. Use the ATR list-change topic and FHIR R4 Subscriptions backport: rest-hook, id-only payloads, a FastAPI receiver.