<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>André Matiello Caramanti — Blog</title>
    <link>https://andrematiello.com/blog/</link>
    <description>Articles about analytics engineering, data engineering, analytics, and business analysis.</description>
    <language>en-us</language>
    <atom:link href="https://andrematiello.com/feed.xml" rel="self" type="application/rss+xml"/>
    <lastBuildDate>Tue, 28 Jul 2026 12:00:00 -0300</lastBuildDate>
    <item>
      <title>Pipelines I Trust Blindly: Idempotency, Retries, and Defensive Engineering in Practice</title>
      <link>https://andrematiello.com/blog/pipelines-idempotency-retries-alerts.html</link>
      <guid isPermaLink="true">https://andrematiello.com/blog/pipelines-idempotency-retries-alerts.html</guid>
      <description>The three properties every production pipeline must have before I stop watching it: idempotency that makes re-runs safe, retries that distinguish transient from structural failures, and alerts that fire before a stakeholder does.</description>
      <category>Data Engineering</category>
      <author>matiello.andre@hotmail.com (André Matiello Caramanti)</author>
      <pubDate>Mon, 20 Jul 2026 20:26:01 +0000</pubDate>
    </item>
    <item>
      <title>Consuming Real APIs with Resilience: Rate Limits, Pagination, and Fallbacks</title>
      <link>https://andrematiello.com/blog/consuming-apis-with-resilience.html</link>
      <guid isPermaLink="true">https://andrematiello.com/blog/consuming-apis-with-resilience.html</guid>
      <description>The patterns I use with CoinGecko, Open-Meteo, and OpenSky to handle rate limits gracefully, page through large result sets without data loss, and keep pipelines running when the upstream source does not.</description>
      <category>Data Engineering</category>
      <author>matiello.andre@hotmail.com (André Matiello Caramanti)</author>
      <pubDate>Mon, 20 Jul 2026 20:26:01 +0000</pubDate>
    </item>
    <item>
      <title>Batch vs. Streaming: How I Decide, with Trade-offs Documented</title>
      <link>https://andrematiello.com/blog/batch-vs-streaming.html</link>
      <guid isPermaLink="true">https://andrematiello.com/blog/batch-vs-streaming.html</guid>
      <description>The decision framework I use to choose between batch, micro-batch, and streaming, why the architecture decision belongs in a versioned document, and the trade-offs that are real versus the ones that exist only in conference talks.</description>
      <category>Data Engineering</category>
      <author>matiello.andre@hotmail.com (André Matiello Caramanti)</author>
      <pubDate>Mon, 20 Jul 2026 20:26:01 +0000</pubDate>
    </item>
    <item>
      <title>Airflow in Production: Testable DAGs, Sensors, and SLAs</title>
      <link>https://andrematiello.com/blog/airflow-in-production.html</link>
      <guid isPermaLink="true">https://andrematiello.com/blog/airflow-in-production.html</guid>
      <description>What I learned from orchestrating real data loads with Airflow: how to write DAGs that can be tested without running them, how sensors prevent upstream dependency failures from silently propagating, and how SLA miss callbacks change incident response.</description>
      <category>Data Engineering</category>
      <author>matiello.andre@hotmail.com (André Matiello Caramanti)</author>
      <pubDate>Mon, 20 Jul 2026 20:26:01 +0000</pubDate>
    </item>
    <item>
      <title>Testing Data Pipelines: Unit, Integration, Schema Validation, and Contracts</title>
      <link>https://andrematiello.com/blog/testing-data-pipelines.html</link>
      <guid isPermaLink="true">https://andrematiello.com/blog/testing-data-pipelines.html</guid>
      <description>The testing pyramid for data pipelines: unit tests for transformation logic, integration tests on representative samples, schema contracts that catch upstream changes before they reach production, and Great Expectations for continuous data quality.</description>
      <category>Data Engineering</category>
      <author>matiello.andre@hotmail.com (André Matiello Caramanti)</author>
      <pubDate>Mon, 20 Jul 2026 20:26:01 +0000</pubDate>
    </item>
    <item>
      <title>Data Lake, Warehouse, and Lakehouse: Architecture Chosen with Criteria, Not Hype</title>
      <link>https://andrematiello.com/blog/data-lake-warehouse-lakehouse.html</link>
      <guid isPermaLink="true">https://andrematiello.com/blog/data-lake-warehouse-lakehouse.html</guid>
      <description>What each storage architecture actually provides and costs, the decision criteria that determine which one fits which workload, and why the Lakehouse is not always the answer just because it is the newest.</description>
      <category>Data Engineering</category>
      <author>matiello.andre@hotmail.com (André Matiello Caramanti)</author>
      <pubDate>Mon, 20 Jul 2026 20:26:01 +0000</pubDate>
    </item>
    <item>
      <title>Parquet and Columnar Formats: Partitioning and Optimizations I Measured</title>
      <link>https://andrematiello.com/blog/parquet-columnar-formats.html</link>
      <guid isPermaLink="true">https://andrematiello.com/blog/parquet-columnar-formats.html</guid>
      <description>Why Parquet outperforms CSV for analytical workloads, the partitioning strategies that make or break query performance, the small file problem and how to fix it, and the benchmarks I ran to verify what the documentation claims.</description>
      <category>Data Engineering</category>
      <author>matiello.andre@hotmail.com (André Matiello Caramanti)</author>
      <pubDate>Mon, 20 Jul 2026 20:26:01 +0000</pubDate>
    </item>
    <item>
      <title>Data Observability: Monitoring Freshness, Volume, and Distribution Before the User Does</title>
      <link>https://andrematiello.com/blog/data-observability.html</link>
      <guid isPermaLink="true">https://andrematiello.com/blog/data-observability.html</guid>
      <description>The monitoring layer that catches data quality issues before stakeholders do: freshness checks with SLA thresholds, volume anomaly detection with rolling baselines, distribution monitoring for schema drift and null rate changes, and the alerting architecture that makes it actionable.</description>
      <category>Data Engineering</category>
      <author>matiello.andre@hotmail.com (André Matiello Caramanti)</author>
      <pubDate>Mon, 20 Jul 2026 20:26:01 +0000</pubDate>
    </item>
    <item>
      <title>Infrastructure as Code: Docker and Total Reproducibility of My Projects</title>
      <link>https://andrematiello.com/blog/infrastructure-as-code-docker.html</link>
      <guid isPermaLink="true">https://andrematiello.com/blog/infrastructure-as-code-docker.html</guid>
      <description>Why every data project I build ships with a Dockerfile and docker-compose: the clone-build-run discipline that eliminates environment drift, makes onboarding a one-command operation, and treats reproducibility as a first-class deliverable.</description>
      <category>Data Engineering</category>
      <author>matiello.andre@hotmail.com (André Matiello Caramanti)</author>
      <pubDate>Mon, 20 Jul 2026 20:26:01 +0000</pubDate>
    </item>
    <item>
      <title>FinOps for Data Engineering: Estimating and Controlling Costs in AWS</title>
      <link>https://andrematiello.com/blog/finops-data-engineering.html</link>
      <guid isPermaLink="true">https://andrematiello.com/blog/finops-data-engineering.html</guid>
      <description>How I think about cloud cost before writing the first line of a pipeline: storage tier decisions, compute right-sizing, query cost modeling for scan-based pricing, tagging for attribution, and the discipline of treating cost as a first-class engineering concern.</description>
      <category>Data Engineering</category>
      <author>matiello.andre@hotmail.com (André Matiello Caramanti)</author>
      <pubDate>Mon, 20 Jul 2026 20:26:01 +0000</pubDate>
    </item>
    <item>
      <title>My Analysis Workflow: From Question to Insight with Validation Checkpoints</title>
      <link>https://andrematiello.com/blog/analysis-workflow-question-to-insight.html</link>
      <guid isPermaLink="true">https://andrematiello.com/blog/analysis-workflow-question-to-insight.html</guid>
      <description>A documented, repeatable workflow for turning a business question into a defensible insight: the stages, the checkpoints where I stop and verify, and the mistakes each one prevents.</description>
      <category>Method</category>
      <author>matiello.andre@hotmail.com (André Matiello Caramanti)</author>
      <pubDate>Mon, 20 Jul 2026 20:16:27 +0000</pubDate>
    </item>
    <item>
      <title>SQL with Peer Review: Treating Queries as Code</title>
      <link>https://andrematiello.com/blog/sql-as-code-peer-review.html</link>
      <guid isPermaLink="true">https://andrematiello.com/blog/sql-as-code-peer-review.html</guid>
      <description>Why SQL written for analysis deserves the same discipline as production code: formatting standards, sanity tests, peer review, and the mistakes that only a second reader catches.</description>
      <category>Analytics</category>
      <author>matiello.andre@hotmail.com (André Matiello Caramanti)</author>
      <pubDate>Mon, 20 Jul 2026 20:16:27 +0000</pubDate>
    </item>
    <item>
      <title>Statistics Before the Chart: Tests I Run Before Claiming Anything</title>
      <link>https://andrematiello.com/blog/statistics-before-the-chart.html</link>
      <guid isPermaLink="true">https://andrematiello.com/blog/statistics-before-the-chart.html</guid>
      <description>The statistical checks that run before any visual goes into a report: normality, outliers, and significance testing done in the right order, with the right humility.</description>
      <category>Statistics</category>
      <author>matiello.andre@hotmail.com (André Matiello Caramanti)</author>
      <pubDate>Mon, 20 Jul 2026 20:16:27 +0000</pubDate>
    </item>
    <item>
      <title>Honest Data Visualization: Chart Choices That Preserve the Truth</title>
      <link>https://andrematiello.com/blog/honest-data-visualization.html</link>
      <guid isPermaLink="true">https://andrematiello.com/blog/honest-data-visualization.html</guid>
      <description>The chart choices that preserve what the data actually says, the distortions I refuse to make, and the principle that a misleading chart produced with clean data is still a lie.</description>
      <category>Visualization</category>
      <author>matiello.andre@hotmail.com (André Matiello Caramanti)</author>
      <pubDate>Mon, 20 Jul 2026 20:16:27 +0000</pubDate>
    </item>
    <item>
      <title>Systematic EDA with Python: My Reproducible Exploration Template</title>
      <link>https://andrematiello.com/blog/systematic-eda-with-python.html</link>
      <guid isPermaLink="true">https://andrematiello.com/blog/systematic-eda-with-python.html</guid>
      <description>A structured, reproducible exploratory data analysis template with pandas and profiling: the sections that run on every new dataset, in order, and why each one earns its place.</description>
      <category>Analytics</category>
      <author>matiello.andre@hotmail.com (André Matiello Caramanti)</author>
      <pubDate>Mon, 20 Jul 2026 20:16:27 +0000</pubDate>
    </item>
    <item>
      <title>Correlation Is Not Causation: Oil, Bitcoin, ADF, Granger, and Statistical Humility</title>
      <link>https://andrematiello.com/blog/correlation-not-causation.html</link>
      <guid isPermaLink="true">https://andrematiello.com/blog/correlation-not-causation.html</guid>
      <description>How I tested a spurious correlation between oil prices and Bitcoin, what the ADF test and Granger causality actually check, and why the hardest part is accepting what the data doesn&#x27;t say.</description>
      <category>Statistics</category>
      <author>matiello.andre@hotmail.com (André Matiello Caramanti)</author>
      <pubDate>Mon, 20 Jul 2026 20:16:27 +0000</pubDate>
    </item>
    <item>
      <title>Well-Designed A/B Tests: Statistical Power, MDE, and When Not to Trust the Result</title>
      <link>https://andrematiello.com/blog/well-designed-ab-tests.html</link>
      <guid isPermaLink="true">https://andrematiello.com/blog/well-designed-ab-tests.html</guid>
      <description>Why most A/B tests are decided before the data is collected, what statistical power and minimum detectable effect mean in practice, and the conditions under which a significant result is still wrong.</description>
      <category>Statistics</category>
      <author>matiello.andre@hotmail.com (André Matiello Caramanti)</author>
      <pubDate>Mon, 20 Jul 2026 20:16:27 +0000</pubDate>
    </item>
    <item>
      <title>Dashboards with Data Contracts: What I Validate Before Publishing</title>
      <link>https://andrematiello.com/blog/dashboards-with-data-contracts.html</link>
      <guid isPermaLink="true">https://andrematiello.com/blog/dashboards-with-data-contracts.html</guid>
      <description>The freshness, completeness, and consistency checks that run before any dashboard goes live, and why a dashboard without a data contract is a liability dressed as an asset.</description>
      <category>Analytics</category>
      <author>matiello.andre@hotmail.com (André Matiello Caramanti)</author>
      <pubDate>Mon, 20 Jul 2026 20:16:27 +0000</pubDate>
    </item>
    <item>
      <title>Time Series with Correct Temporal Validation: Why the Common Train/Test Split Fails</title>
      <link>https://andrematiello.com/blog/time-series-temporal-validation.html</link>
      <guid isPermaLink="true">https://andrematiello.com/blog/time-series-temporal-validation.html</guid>
      <description>Why the standard random train/test split breaks on time series data, how temporal leakage produces models that look good on paper and fail in production, and the validation patterns that actually hold.</description>
      <category>Statistics</category>
      <author>matiello.andre@hotmail.com (André Matiello Caramanti)</author>
      <pubDate>Mon, 20 Jul 2026 20:16:27 +0000</pubDate>
    </item>
    <item>
      <title>Documenting Analyses for Others: Notebooks That Explain Themselves</title>
      <link>https://andrematiello.com/blog/documenting-analyses-for-others.html</link>
      <guid isPermaLink="true">https://andrematiello.com/blog/documenting-analyses-for-others.html</guid>
      <description>Reproducibility as professional respect: the notebook conventions, documentation habits, and structural choices that make an analysis legible to the person who opens it six months later.</description>
      <category>Analytics</category>
      <author>matiello.andre@hotmail.com (André Matiello Caramanti)</author>
      <pubDate>Mon, 20 Jul 2026 20:16:27 +0000</pubDate>
    </item>
    <item>
      <title>Data Governance: The Eight Pillars Behind Trusted, Actionable Data</title>
      <link>https://andrematiello.com/blog/data-governance-eight-pillars.html</link>
      <guid isPermaLink="true">https://andrematiello.com/blog/data-governance-eight-pillars.html</guid>
      <description>Most organizations don&#x27;t have a data problem. They have a data trust problem. Here is the framework that closes the gap between having data and being able to act on it.</description>
      <category>Data Engineering</category>
      <author>matiello.andre@hotmail.com (André Matiello Caramanti)</author>
      <pubDate>Sun, 19 Jul 2026 23:57:17 +0000</pubDate>
    </item>
    <item>
      <title>Delta Lake Internals: What Actually Happens When You Write, Update, and Delete</title>
      <link>https://andrematiello.com/blog/delta-lake-internals.html</link>
      <guid isPermaLink="true">https://andrematiello.com/blog/delta-lake-internals.html</guid>
      <description>Most engineers use Delta tables daily without knowing what the _delta_log is, how updates work on immutable Parquet files, or what makes Time Travel possible. Here&#x27;s what&#x27;s underneath.</description>
      <category>Data Engineering</category>
      <author>matiello.andre@hotmail.com (André Matiello Caramanti)</author>
      <pubDate>Sun, 19 Jul 2026 23:52:20 +0000</pubDate>
    </item>
    <item>
      <title>Bad Requirements Cost More Than You Think: How I Structure Elicitation</title>
      <link>https://andrematiello.com/blog/bad-requirements-cost-more-than-you-think.html</link>
      <guid isPermaLink="true">https://andrematiello.com/blog/bad-requirements-cost-more-than-you-think.html</guid>
      <description>Techniques, a validation checklist, and the mistakes I learned to stop making before the first line of specification is written.</description>
      <category>Requirements</category>
      <author>matiello.andre@hotmail.com (André Matiello Caramanti)</author>
      <pubDate>Sun, 19 Jul 2026 09:17:12 +0000</pubDate>
    </item>
    <item>
      <title>BPMN in Practice: Mapping Processes Before Automating Anything</title>
      <link>https://andrematiello.com/blog/bpmn-in-practice.html</link>
      <guid isPermaLink="true">https://andrematiello.com/blog/bpmn-in-practice.html</guid>
      <description>Why modeling first is discipline, not bureaucracy, and what you find in the as-is state that saves you from automating the wrong thing.</description>
      <category>Process Analysis</category>
      <author>matiello.andre@hotmail.com (André Matiello Caramanti)</author>
      <pubDate>Sun, 19 Jul 2026 09:17:12 +0000</pubDate>
    </item>
    <item>
      <title>KPIs That Survive the Boardroom: Validating Metrics Against Bias and Vanity</title>
      <link>https://andrematiello.com/blog/kpis-that-survive-the-boardroom.html</link>
      <guid isPermaLink="true">https://andrematiello.com/blog/kpis-that-survive-the-boardroom.html</guid>
      <description>The tests I run on any proposed metric before it earns a place on a dashboard, and why most metrics fail at least one of them.</description>
      <category>Measurement</category>
      <author>matiello.andre@hotmail.com (André Matiello Caramanti)</author>
      <pubDate>Sun, 19 Jul 2026 09:17:12 +0000</pubDate>
    </item>
    <item>
      <title>Testable User Stories: Acceptance Criteria as a Quality Contract</title>
      <link>https://andrematiello.com/blog/testable-user-stories.html</link>
      <guid isPermaLink="true">https://andrematiello.com/blog/testable-user-stories.html</guid>
      <description>The bridge between what was asked for and what gets tested, and why vague acceptance criteria are a deferred argument about who is right.</description>
      <category>Requirements</category>
      <author>matiello.andre@hotmail.com (André Matiello Caramanti)</author>
      <pubDate>Sun, 19 Jul 2026 09:17:12 +0000</pubDate>
    </item>
    <item>
      <title>Gap Analysis with Evidence, Not Opinion: Frameworks and Documented Premises</title>
      <link>https://andrematiello.com/blog/gap-analysis-with-evidence.html</link>
      <guid isPermaLink="true">https://andrematiello.com/blog/gap-analysis-with-evidence.html</guid>
      <description>How to move from &#x27;we have a problem&#x27; to a structured current-state and future-state comparison that survives a room full of stakeholders.</description>
      <category>Analysis</category>
      <author>matiello.andre@hotmail.com (André Matiello Caramanti)</author>
      <pubDate>Sun, 19 Jul 2026 09:17:12 +0000</pubDate>
    </item>
    <item>
      <title>A Defensible Business Case: ROI, Sensitivity, and Scenarios</title>
      <link>https://andrematiello.com/blog/defensible-business-case.html</link>
      <guid isPermaLink="true">https://andrematiello.com/blog/defensible-business-case.html</guid>
      <description>Showing the reasoning, not just the number, and why a model that only works at best-case assumptions is not a business case.</description>
      <category>Business Analysis</category>
      <author>matiello.andre@hotmail.com (André Matiello Caramanti)</author>
      <pubDate>Sun, 19 Jul 2026 09:17:12 +0000</pubDate>
    </item>
    <item>
      <title>Stakeholder Management in High-Stakes Environments: Lessons from Leading Interagency Teams</title>
      <link>https://andrematiello.com/blog/stakeholder-management-high-stakes.html</link>
      <guid isPermaLink="true">https://andrematiello.com/blog/stakeholder-management-high-stakes.html</guid>
      <description>What changes when stakeholders have competing mandates, different reporting lines, and the authority to stop your project unilaterally.</description>
      <category>Leadership</category>
      <author>matiello.andre@hotmail.com (André Matiello Caramanti)</author>
      <pubDate>Sun, 19 Jul 2026 09:17:12 +0000</pubDate>
    </item>
    <item>
      <title>Requirements Traceability: From Request to Deploy</title>
      <link>https://andrematiello.com/blog/requirements-traceability.html</link>
      <guid isPermaLink="true">https://andrematiello.com/blog/requirements-traceability.html</guid>
      <description>The traceability matrix as an audit tool, and why it earns its place the day someone asks where that feature came from.</description>
      <category>Requirements</category>
      <author>matiello.andre@hotmail.com (André Matiello Caramanti)</author>
      <pubDate>Sun, 19 Jul 2026 09:17:12 +0000</pubDate>
    </item>
    <item>
      <title>Data-Driven BA: Validating Business Hypotheses with SQL</title>
      <link>https://andrematiello.com/blog/data-driven-ba.html</link>
      <guid isPermaLink="true">https://andrematiello.com/blog/data-driven-ba.html</guid>
      <description>The bridge between the BA role and the data stack, and why querying the evidence before writing the requirement changes what you write.</description>
      <category>Analytics</category>
      <author>matiello.andre@hotmail.com (André Matiello Caramanti)</author>
      <pubDate>Sun, 19 Jul 2026 09:17:12 +0000</pubDate>
    </item>
    <item>
      <title>Project Post-Mortem: What I Do When Delivery Misses the Mark</title>
      <link>https://andrematiello.com/blog/project-post-mortem.html</link>
      <guid isPermaLink="true">https://andrematiello.com/blog/project-post-mortem.html</guid>
      <description>A culture of improvement starts with a structured process for learning when a delivery doesn&#x27;t match what was expected, and with the discipline to act on what you find.</description>
      <category>Retrospective</category>
      <author>matiello.andre@hotmail.com (André Matiello Caramanti)</author>
      <pubDate>Sun, 19 Jul 2026 09:17:12 +0000</pubDate>
    </item>
    <item>
      <title>Lessons from Building a Modern Data Stack End-to-End</title>
      <link>https://andrematiello.com/blog/lessons-from-building-a-modern-data-stack.html</link>
      <guid isPermaLink="true">https://andrematiello.com/blog/lessons-from-building-a-modern-data-stack.html</guid>
      <description>What a dlt → DuckDB/Snowflake → dbt pipeline taught me about grain, idempotent ingestion, warehouse portability, and reading your own build output honestly.</description>
      <category>Analytics Engineering</category>
      <author>matiello.andre@hotmail.com (André Matiello Caramanti)</author>
      <pubDate>Wed, 15 Jul 2026 00:24:49 -0300</pubDate>
    </item>
    <item>
      <title>What the Data Job Market Actually Asks For</title>
      <link>https://andrematiello.com/blog/what-the-data-job-market-actually-asks-for.html</link>
      <guid isPermaLink="true">https://andrematiello.com/blog/what-the-data-job-market-actually-asks-for.html</guid>
      <description>A read of 83,517 data analyst and 178,738 data engineer postings: which skills employers name, why the number of skills per posting matters more than the list, and where that says to start.</description>
      <category>Career</category>
      <author>matiello.andre@hotmail.com (André Matiello Caramanti)</author>
      <pubDate>Wed, 15 Jul 2026 00:24:49 -0300</pubDate>
    </item>
    <item>
      <title>The Analytics Engineer&#x27;s Toolkit</title>
      <link>https://andrematiello.com/blog/the-analytics-engineers-toolkit.html</link>
      <guid isPermaLink="true">https://andrematiello.com/blog/the-analytics-engineers-toolkit.html</guid>
      <description>What each tool in the modern data stack is actually for: SQL, dbt, ingestion, warehouses, tests, orchestration, semantic layers, and when you don&#x27;t need it yet.</description>
      <category>Tools</category>
      <author>matiello.andre@hotmail.com (André Matiello Caramanti)</author>
      <pubDate>Wed, 15 Jul 2026 00:24:49 -0300</pubDate>
    </item>
    <item>
      <title>How an Analytics Engineer Works: Method Over Tools</title>
      <link>https://andrematiello.com/blog/how-an-analytics-engineer-works.html</link>
      <guid isPermaLink="true">https://andrematiello.com/blog/how-an-analytics-engineer-works.html</guid>
      <description>The working method behind a pipeline people trust: the business question first, the grain before the SQL, deliberate layering, tests aimed at what breaks silently, and evidence instead of adjectives.</description>
      <category>Method</category>
      <author>matiello.andre@hotmail.com (André Matiello Caramanti)</author>
      <pubDate>Wed, 15 Jul 2026 00:24:49 -0300</pubDate>
    </item>
  </channel>
</rss>
