<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>Kozlov.ski</title><link>https://kozlov.ski/</link><description>This is my cool site</description><generator>Hugo -- gohugo.io</generator><language>en</language><managingEditor>nkozlowski@pm.me (Norbert Kozlowski)</managingEditor><webMaster>nkozlowski@pm.me (Norbert Kozlowski)</webMaster><lastBuildDate>Tue, 03 Mar 2026 08:00:00 +0100</lastBuildDate><atom:link href="https://kozlov.ski/index.xml" rel="self" type="application/rss+xml"/><item><title>66% of Demand Series Were Unforecastable. I Found Out Before Training a Single Model</title><link>https://kozlov.ski/demand-forecast-eda/</link><pubDate>Wed, 25 Feb 2026 08:00:00 +0100</pubDate><author>Norbert</author><guid>https://kozlov.ski/demand-forecast-eda/</guid><description>A client handed me 1.5M rows of POS data and asked for daily demand forecasts. EDA revealed 66% of series were lumpy and unforecastable — before we trained a single model. Here&amp;rsquo;s the complete analysis from a data engineer with 15 years of experience and a Ph.D. in AI.</description></item><item><title>Activity Schema: The Data Model That Fixed My QA Debugging</title><link>https://kozlov.ski/activity-schema/</link><pubDate>Wed, 04 Jun 2025 08:00:00 +0100</pubDate><author>Norbert</author><guid>https://kozlov.ski/activity-schema/</guid><description>One table. Temporal joins. No foreign keys. Activity Schema is a radical simplification for event analytics - here&amp;rsquo;s when it makes sense and what tradeoffs to expect.</description></item><item><title>Decision Making Under Uncertainty</title><link>https://kozlov.ski/decision-making-under-uncertainty/</link><pubDate>Mon, 30 Sep 2024 08:00:00 +0100</pubDate><author>Norbert</author><guid>https://kozlov.ski/decision-making-under-uncertainty/</guid><description>When should you explore vs. exploit? Thompson Sampling offers an elegant Bayesian answer to this fundamental trade-off. A practical framework for A/B testing, dynamic pricing, and any decision where you&amp;rsquo;re balancing learning against optimization.</description></item><item><title>How to Set Up Mautic 5.x on Kubernetes: A Step-by-Step Guide</title><link>https://kozlov.ski/mautic-5x-kubernetes-setup/</link><pubDate>Wed, 04 Sep 2024 13:00:00 +0100</pubDate><author>Norbert</author><guid>https://kozlov.ski/mautic-5x-kubernetes-setup/</guid><description>A step-by-step guide to deploying Mautic 5.x on Kubernetes with Helm, including the background job architecture data engineers need to understand for reliable integrations.</description></item><item><title>Developers Guide to Data Lakehouse with Apache Iceberg</title><link>https://kozlov.ski/developers-guide-to-data-lakehouse-with-apache-iceberg/</link><pubDate>Fri, 22 Mar 2024 13:00:00 +0100</pubDate><author>Norbert</author><guid>https://kozlov.ski/developers-guide-to-data-lakehouse-with-apache-iceberg/</guid><description>A hands-on guide to building a Data Lakehouse with Apache Iceberg. Covers table specifications, atomic transactions, schema evolution, hidden partitioning, time travel queries, and maintenance procedures using Spark and Trino with a local MinIO setup.</description></item><item><title>From Ingestion to Insight: Creating a Budget-Friendly Data Lake with AWS</title><link>https://kozlov.ski/budget-data-lake-with-aws/</link><pubDate>Fri, 02 Feb 2024 12:05:02 +0200</pubDate><author>Norbert</author><guid>https://kozlov.ski/budget-data-lake-with-aws/</guid><description>Build a serverless, cost-efficient data lake on AWS using Kinesis Firehose, S3, Glue, and Athena. Learn dynamic partitioning, JSON vs Parquet trade-offs, and query optimization techniques that keep your AWS bill under a dollar.</description></item></channel></rss>