Posts

Final Thoughts on the C++ Programmer's Mindset

The C++ Programmer’s Mindset by Sam Morley (ISBN 978-1-83588-842-1)

Fifteen chapters, one rubber duckies mystery, and a lot of code later, here is where The C++ Programmer’s Mindset lands.

Final Thoughts on Data Engineering With Python

Book: Data Engineering with Python
Author: Paul Crickard
ISBN: 978-1-83921-418-9
Publisher: Packt (October 2020)


I finished the full walkthrough. Fifteen chapters, one appendix, two big projects, and a lot of terminal time. Here’s where I landed.

Profiling Your Code: Finding Bottlenecks With Perf and Benchmarks

The C++ Programmer’s Mindset by Sam Morley (ISBN 978-1-83588-842-1)

You picked C++ partly for speed. Chapter 15 is Morley’s case for measuring before you touch anything. Premature optimization wastes time and adds complexity. Profiling tells you where speed actually matters and what is holding you back.

Airflow on GCP: GKE, BigQuery, and the Best Provider Package

Book: Data Pipelines with Apache Airflow
Authors: Bas Harenslak and Julian deRuiter
ISBN: 9781617296901

GCP is the last cloud chapter and the most complete. Google has the largest Airflow provider package. The book walks through a full GKE deployment with Helm, not just diagrams. This is DIY Airflow, not Cloud Composer (covered in chapter 15).

GPUs and Specialized Hardware Part 2: CUDA Kernels and SYCL

The C++ Programmer’s Mindset by Sam Morley (ISBN 978-1-83588-842-1)

Part 1 covered GPU architecture and the gentle on-ramps (Thrust, OpenMP offload). Part 2 is where Morley shows what writing kernels actually looks like: CUDA for NVIDIA, then SYCL when you want one codebase targeting multiple devices.

Chapter 15: Real-Time Edge Data With MiNiFi, Kafka, and Spark

Book: Data Engineering with Python
Author: Paul Crickard
ISBN: 978-1-83921-418-9

Previous: Data Processing with Apache Spark

The last chapter of the main book tackles a problem the earlier NiFi chapters do not: what happens when the data source is a Raspberry Pi, a factory sensor, or some other small device that cannot run full NiFi? Crickard’s answer is Apache MiNiFi. Lightweight agent on the edge, full NiFi back at headquarters.

Airflow on Azure: App Service, Synapse, and Blob Storage

Book: Data Pipelines with Apache Airflow
Authors: Bas Harenslak and Julian deRuiter
ISBN: 9781617296901

Azure gets the same treatment AWS got in the previous chapter. Map Airflow components to managed services, survey the provider package, then build the movie-ranking pipeline again. Same goal, different cloud.

GPUs and Specialized Hardware Part 1: Architecture, Thrust, and OpenMP

The C++ Programmer’s Mindset by Sam Morley (ISBN 978-1-83588-842-1)

CPUs are general-purpose workhorses. Sometimes you need a different animal. Chapter 14 introduces GPUs and other accelerators. This first post covers the architecture basics and the “easy mode” paths: library abstractions and OpenMP offload. Part 2 gets into raw CUDA and SYCL.

Airflow on AWS: Fargate, S3, Glue, and a Movie Ranking DAG

Book: Data Pipelines with Apache Airflow
Authors: Bas Harenslak and Julian deRuiter
ISBN: 9781617296901

Chapter 16 is where the cloud chapters get concrete. Harenslak and deRuiter map every Airflow component to an AWS service, then build a working movie-ranking pipeline with S3, Glue, and Athena.

The Problems of Scale: Threading, MPI, and Distributed C++

The C++ Programmer’s Mindset by Sam Morley (ISBN 978-1-83588-842-1)

At some point, one CPU with a handful of threads stops being enough. Chapter 13 is Morley’s tour of what changes when you scale up: more cores, more processes, more machines. The rubber duckies app fit on a laptop. Real workloads often do not.

Reflecting on What We Built: Finishing the Rubber Duckies Project

The C++ Programmer’s Mindset by Sam Morley (ISBN 978-1-83588-842-1)

Chapter 12 is the payoff moment. After chapters of file readers, regex parsing, and k-means clustering, Morley finally wires everything into one runnable program and then sits back to ask: what did we actually learn?

Building a Three-Node Apache Kafka Cluster

Book: Data Engineering with Python
Author: Paul Crickard
ISBN: 978-1-83921-418-9
Publisher: Packt (October 2020)


Section 3 of the book shifts from batch to streaming. Chapter 12 is infrastructure first: build a real Kafka cluster, not a single-broker tutorial that leaves you guessing how production works.

Data Governance: Policies, Framework, and Roles

Book: Data Engineering for Beginners
Author: Chisom Nwokwu
ISBN: 9781394325412

Data governance sounds boring until you realize it is the reason you do not get fined millions or repeat your life story to every department that calls. Chapter 10 ties together security and quality from the previous chapters into one framework.

Implementing K-Means Clustering in C++ for Hotspot Detection

Book: The C++ Programmer’s Mindset
Author: Sam Morley
ISBN: 978-1-83588-842-1

Chapter 11 Part 2 is where Morley ships the clustering code. Theory from Part 1 becomes KMeans, compute_score, best_kmeans_cluster, and compute_clusters. Tests catch real bugs, including a longitude flip at the north pole that only shows up on round-trip coordinate conversion.

Productionizing ML Models: Batch Scoring, Drift, and Pipelines

Book: Data Science: The Hard Parts
Author: Daniel Vaughan
ISBN: 978-1-098-14647-4


Chapter 11 ended with a line that sticks: in ML, the scoring stage reigns. Chapter 12 is the follow-through. Vaughan gives data scientists a helicopter view of what “production ready” actually means, because at many companies, there is no dedicated MLOps team. You built the model. You ship it too.

Building a Production Data Pipeline: The Chapter 11 Project

Book: Data Engineering with Python
Author: Paul Crickard
ISBN: 978-1-83921-418-9
Publisher: Packt (October 2020)


Chapter 11 is the capstone for the production section. Crickard takes everything from Chapters 7 through 10 and builds a real pipeline: read JSON files from a data lake, load staging, validate, load warehouse, version every piece, deploy to production with variables.

Data Leakage in ML: Why Your Test AUC Lies to You

Book: Data Science: The Hard Parts
Author: Daniel Vaughan
ISBN: 978-1-098-14647-4


If you have trained enough real models, you have probably hit data leakage. Vaughan thinks it should rank higher than the “top 10 problems” lists give it credit for. Chapter 11 is entirely about this: what leakage looks like, how to spot it, and how to build habits that prevent it.

Data Security: Encryption, Access Control, and the CIA Triad

Book: Data Engineering for Beginners
Author: Chisom Nwokwu
ISBN: 9781394325412

Chapter 9 opens with the 2016 Uber breach. Hackers found API keys in a private GitHub repo, accessed AWS, stole 57 million user records, and Uber paid $100,000 to cover it up. Weak access controls, no real-time monitoring, credentials sitting in plain sight. That story sets the tone for everything that follows.

K-Means Clustering Theory for Geographic C++ Data

Book: The C++ Programmer’s Mindset
Author: Sam Morley
ISBN: 978-1-83588-842-1

Chapter 11 is the computational core of the rubber duckies project. All those file readers were building toward one question: where on Earth are these sightings clustering? Morley implements k-means from scratch. Choosing k and embedding geographic data correctly are the hard parts, not the iteration loop itself.

Deploying Data Pipelines to Production With NiFi

Book: Data Engineering with Python
Author: Paul Crickard
ISBN: 978-1-83921-418-9
Publisher: Packt (October 2020)


Software teams have dev, test, and production environments. Data engineering should work the same way. You build on one machine, prove it works somewhere that looks like prod, then promote it. Chapter 10 is about making that promotion less painful in NiFi.

Data Quality Dimensions and the Quality Hierarchy

Book: Data Engineering for Beginners
Author: Chisom Nwokwu
ISBN: 9781394325412

Chapter 8 is a wake-up call. You can build the fanciest warehouse and the cleanest pipelines, but if the data itself is garbage, none of it matters. Nwokwu makes the case that data quality is not just a technical checkbox. It is a business strategy.

Finding Dates and Coordinates in Free Text With Regex

Book: The C++ Programmer’s Mindset
Author: Sam Morley
ISBN: 978-1-83588-842-1

Chapter 10 finishes the ingestion story. JSON and CSV were structured. Email reports are not. Morley builds a FreeTextReader using compile-time regular expressions from the ctre library to pull dates and coordinates out of unstructured .txt files.

Linear Regression Basics: What OLS Still Teaches About ML

Book: Data Science: The Hard Parts
Author: Daniel Vaughan
ISBN: 978-1-098-14647-4


Linear regression is the first algorithm most of us learn and the first one we abandon. Gradient boosting eats its lunch on predictive accuracy. Fair enough. But Vaughan’s Chapter 10 makes a case that skipping OLS intuition leaves you blind to problems that hit random forests and boosting just as hard.

Monitoring Data Pipelines in Apache NiFi

Book: Data Engineering with Python
Author: Paul Crickard
ISBN: 978-1-83921-418-9
Publisher: Packt (October 2020)


You built a pipeline that is idempotent, version controlled, and ready for production. Great. But production means things break when you are not looking. Elasticsearch goes down. A network hiccup kills a connection. Bad data slips through. Chapter 9 is about knowing when that happens without staring at a screen all day.

Lambda Architecture, DAGs, and Apache Airflow Lab

Book: Data Engineering for Beginners
Author: Chisom Nwokwu
ISBN: 9781394325412

The second half of Chapter 7 answers a question every data team hits eventually: how do you run live dashboards AND historical reports without building two completely separate systems? Then it gets practical with orchestration and a hands-on Airflow lab.

Reading CSV and JSON Data With a Unified C++ Interface

Book: The C++ Programmer’s Mindset
Author: Sam Morley
ISBN: 978-1-83588-842-1

Chapter 9 tackles the first two file formats in the rubber duckies pipeline. CSV and JSON are solved problems with good libraries. Morley’s actual challenge is designing one interface that hides how each format gets parsed.

Simulation and Bootstrapping: Testing ML Algorithms Before Real Data Bites

Book: Data Science: The Hard Parts
Author: Daniel Vaughan
ISBN: 978-1-098-14647-4


Most data science courses teach you on real datasets. Daniel Vaughan spends Chapter 9 asking a different question: what if you built the data yourself? Not synthetic data from a generative model. A hand-written data generating process (DGP) where you control every assumption. That shift sounds academic until your gradient boosting model looks brilliant on paper and falls apart in production.

Version Control for NiFi Pipelines With the NiFi Registry

Book: Data Engineering with Python
Author: Paul Crickard
ISBN: 978-1-83921-418-9


You can build a beautiful NiFi pipeline and still be one bad drag-and-drop away from losing hours of work. Chapter 8 fixes that gap. Version control for data pipelines is not optional in production. Crickard treats data engineers like software engineers here, which is the right framing. You would not write application code without Git. You should not run production flows without versioning either.

Batch vs Streaming Data Pipelines and Windowing

Book: Data Engineering for Beginners
Author: Chisom Nwokwu
ISBN: 9781394325412

Chapter 7 is where the book stops talking about storage and starts talking about movement. Data pipelines are the plumbing. They collect, ingest, process, store, and serve data. Sometimes on a schedule, sometimes the second an event happens.

Building a Command-Line Interface for the Duckies App

Book: The C++ Programmer’s Mindset
Author: Sam Morley
ISBN: 978-1-83588-842-1

Chapter 8 is where the rubber duckies project gets a real executable named duckies. Morley builds a minimal but extensible CLI around Boost program_options, spdlog, and OpenMP. Even if you are the only user, he argues, --help pays for itself the first time you forget what flags exist.

Staging, Validation, Idempotency, and Atomicity in Production Pipelines

Book: Data Engineering with Python
Author: Paul Crickard
ISBN: 978-1-83921-418-9


Section 2 of the book starts here. The vibe shifts from “learn the tools” to “do not break production.” Chapter 7 covers three ideas that separate hobby pipelines from ones you can run at 3 a.m. without panic: staging, validation, idempotency, and atomicity. Crickard uses a fake “Widget Co” sales example and a people-data pipeline he actually runs, though he admits that one is low-stakes and missing pieces a critical system would need.

Outlining the Rubber Duckies Challenge in C++

Book: The C++ Programmer’s Mindset
Author: Sam Morley
ISBN: 978-1-83588-842-1

Part 1 was theory. Chapter 7 kicks off Part 2 with a full project. Morley hands you a client brief, sample data, and then does the thing most tutorials skip: he thinks before he codes.

Building a 311 Data Pipeline With NiFi and Kibana

Book: Data Engineering with Python
Author: Paul Crickard
ISBN: 978-1-83921-418-9


Chapter 6 is where the book stops feeling like a tutorial and starts feeling like a real project. Crickard builds a pipeline that pulls citizen service requests from SeeClickFix (think 311-style complaints: graffiti, potholes, abandoned cars, needles, people ignoring social distancing during COVID). The data lands in Elasticsearch. Then you build a Kibana dashboard on top. He says he still runs this pipeline every 8 hours. That detail matters. This is not a throwaway demo.

Data Warehouses, Data Lakes, and Lakehouses Explained

Chapter 6 of Data Engineering for Beginners by Chisom Nwokwu (ISBN 9781394325412) is a big one. It moves beyond traditional databases into the storage systems that power modern analytics. The fictional bakery Dough & Delight runs through every example, which keeps things grounded.

Reusing Code and Modularity in C++ Libraries

Book: The C++ Programmer’s Mindset
Author: Sam Morley
ISBN: 978-1-83588-842-1

Chapter 6 is where Morley stops talking about solving one-off problems and starts talking about what happens when other people (including future you) have to use your code. The whole point is simple: code only matters if someone can actually reuse it.

Cleaning, Transforming, and Enriching Data With Pandas

Book: Data Engineering with Python
Author: Paul Crickard
ISBN: 978-1-83921-418-9


Chapters 3 and 4 taught you how to move data in and out of files and databases. Chapter 5 asks the next obvious question: what do you do with the data in the middle? Often the answer is clean it, reshape it, and sometimes bolt on extra context from another source. Crickard uses real Albuquerque e-scooter trip data for all of this, which makes the examples feel grounded instead of toy-like.

Data Structures (Part 2): Linked Lists, Maps, Sets, and Benchmarks

Book: The C++ Programmer’s Mindset
Author: Sam Morley
ISBN: 978-1-83588-842-1

The back half of Chapter 5 is where Morley admits vectors are not always enough. Linked structures, ordered maps, and hash tables each trade something away. He also runs real benchmarks so you can see the gap instead of guessing.

Data Structures (Part 1): Memory, Vectors, Stacks, and Queues

Book: The C++ Programmer’s Mindset
Author: Sam Morley
ISBN: 978-1-83588-842-1

Chapter 5 is the payoff for Chapters 3 and 4. You know how algorithms scale and how CPUs read memory. Now Morley asks: what container actually holds your data, and does its layout help or hurt?

SQL Joins, CTEs, and Window Functions Explained

The second half of Chapter 4 in Data Engineering for Beginners by Chisom Nwokwu (ISBN 9781394325412) is where SQL goes from “filter a table” to “actually analyze data across tables.” This is the part that makes SQL feel like a real data engineering skill.

Understanding the Machine (Part 2): SIMD, Branches, and the OS

Book: The C++ Programmer’s Mindset
Author: Sam Morley
ISBN: 978-1-83588-842-1

Part 2 of Chapter 4 is where Morley gets hands-on with SIMD, shows how branch style changes generated code, and reminds you that the operating system sits between your pointers and physical RAM.

Database Fundamentals: SQL vs NoSQL and Why ACID Still Matters

Book: Data Engineering for Beginners
Author: Chisom Nwokwu
ISBN: 9781394325412

Chapter 3 zooms in on storage. After the life cycle overview, Nwokwu focuses on databases, the tool data engineers spend a huge amount of time with. This chapter is dense but practical. It covers what databases are, how relational and NoSQL systems differ, and how to pick the right one for your project.

Understanding the Machine (Part 1): Processors, CPUID, and Memory

Book: The C++ Programmer’s Mindset
Author: Sam Morley
ISBN: 978-1-83588-842-1

Chapter 4 answers a question Chapter 3 raised: your algorithm might be correct on paper and still slow because the CPU spent half its time waiting on RAM. Morley gives a compressed tour of modern hardware so C++ programmers know what they are actually driving.

Algorithmic Thinking and Complexity (Part 2): Design Patterns and Hardware

Book: The C++ Programmer’s Mindset
Author: Sam Morley
ISBN: 978-1-83588-842-1

The second half of Chapter 3 is a tour of algorithm design styles, then a hard turn toward what the hardware actually rewards. Morley’s message throughout: reuse known solutions first, then get clever only when you have to.

Data Engineering With Python: A Hands-on Book Walkthrough

Book: Data Engineering with Python
Author: Paul Crickard
ISBN: 978-1-83921-418-9
Publisher: Packt (October 2020)


I’m starting a walkthrough of Data Engineering with Python by Paul Crickard. This is not a copy-paste summary. It’s my retelling of each chapter with notes on what stuck, what felt dated, and what still holds up.

Algorithmic Thinking and Complexity (Part 1): Proofs and Big-O

Book: The C++ Programmer’s Mindset
Author: Sam Morley
ISBN: 978-1-83588-842-1

Chapter 3 is where Morley stops talking about what code looks like and starts talking about how fast it runs. Algorithms are step-by-step instructions that bridge a problem and an implementation. They are language-agnostic, which is why every serious programmer should know how to read, analyze, and write them.

Data Science: The Hard Parts - Why I'm Reading This Book

Book: Data Science: The Hard Parts
Author: Daniel Vaughan
ISBN: 978-1-098-14647-4
Publisher: O’Reilly Media (2024)

I’m starting a walkthrough of Daniel Vaughan’s Data Science: The Hard Parts. Over the next few weeks I’ll post one chapter at a time, retelling what the book says and adding my own take.

Understanding Data: History, Types, and Why It All Matters

Book: Data Engineering for Beginners
Author: Chisom Nwokwu
ISBN: 9781394325412

Chapter 1 of Data Engineering for Beginners opens with a line you have probably heard before: data is the new oil. Nwokwu does not just repeat the slogan. She breaks down what data actually means, where it came from, and why the type of data you are working with changes everything downstream.

Abstraction in Detail: Classes, Templates, and Traits (Part 2)

The C++ Programmer’s Mindset by Sam Morley (ISBN 978-1-83588-842-1, Packt 2025)

Part 1 of Chapter 2 covered problem categories, standard algorithms, and functions as interfaces. This post finishes the chapter: functions inside algorithms, function objects, classes, templates, concepts, and traits.

Data Engineering for Beginners: A Friendly Roadmap Into the Field

Book: Data Engineering for Beginners
Author: Chisom Nwokwu
ISBN: 9781394325412

I picked up Data Engineering for Beginners because I kept hearing about data engineering at work without fully understanding what the job actually looked like day to day. Analysts talk about dashboards. ML folks talk about models. But who builds the pipes that get clean data to them? That gap is exactly what this book tries to fill.

Airflow Trigger Rules, XCom, and the Taskflow API Explained

Book: Data Pipelines with Apache Airflow
Authors: Bas Harenslak, Julian de Ruiter
ISBN: 9781617296901


The first half of chapter 5 was DAG shape and branching. Sections 5.4 through 5.6 answer: when exactly does a task run, how do tasks pass small bits of state, and can Python-heavy DAGs look like normal Python again?

Airflow Task Dependencies: Linear Chains, Fan-Out, Branching, and Conditionals

Book: Data Pipelines with Apache Airflow
Authors: Bas Harenslak, Julian de Ruiter
ISBN: 9781617296901


Chapter 5 is where DAGs stop looking like straight lines. The book covers dependency shapes, branching when your data source changes, and skipping tasks when a condition is not met. This post covers sections 5.1 through 5.3. Trigger rules, XCom, and Taskflow API are the next post.

Thinking Computationally: Algorithms and Modern C++ Practice (Part 2)

The C++ Programmer’s Mindset by Sam Morley (ISBN 978-1-83588-842-1, Packt 2025)

Part 1 of Chapter 1 covered decomposition, abstraction, and patterns. This post finishes the chapter: what algorithms actually are, how to read them, and how modern C++ plus good engineering habits help you iterate faster on solutions.

Thinking Computationally: Decomposition, Abstraction, and Patterns (Part 1)

The C++ Programmer’s Mindset by Sam Morley (ISBN 978-1-83588-842-1, Packt 2025)

Chapter 1 of Morley’s book is called “Thinking Computationally,” and it sets the tone for everything that follows. This is not a chapter about std::vector tricks. It is about how programmers break down problems, find structure in messy data, and eventually write code that fits.

The C++ Programmer's Mindset: A Book Retelling Series

The C++ Programmer’s Mindset by Sam Morley (ISBN 978-1-83588-842-1, Packt 2025)

Most C++ books teach you syntax, containers, and maybe a few design patterns. Sam Morley’s book takes a different angle. It asks: how do you actually think when you sit down with a hard problem? The answer is not “memorize more STL headers.” It is computational thinking, paired with the specific tools C++ gives you to turn that thinking into working code.

Anatomy of an Airflow DAG: Your First Rocket Launch Pipeline

Book: Data Pipelines with Apache Airflow
Authors: Bas Harenslak, Julian de Ruiter
ISBN: 9781617296901


Chapter 1 was theory. Chapter 2 is hands-on. The book follows John, a rocket enthusiast who wants upcoming launch images on his machine. The Launch Library API returns JSON with image URLs. John’s plan: download metadata, fetch pictures, notify when done. That becomes your first real Airflow DAG.

Meet Apache Airflow: Why Data Pipelines Need a Workflow Orchestrator

Book: Data Pipelines with Apache Airflow
Authors: Bas Harenslak, Julian de Ruiter
ISBN: 9781617296901


I picked up Data Pipelines with Apache Airflow because I kept hearing the same complaint from data teams: the volume is fine, but the coordination is a mess. Megabytes turned into gigabytes per minute, and nobody had a clean way to run the same steps in order, on a schedule, with visibility when something broke. Chapter 1 is the orientation chapter. No install yet. Just: what is a pipeline, why draw it as a graph, and where Airflow sits in the zoo of workflow tools.

Data Engineering With AWS: Closing Thoughts on This Book Retelling Series

We made it. Twenty posts. Fourteen chapters. One very thorough book about building data pipelines on Amazon Web Services.

When I started this retelling series back in December, I said the goal was to walk you through “Data Engineering with AWS” by Gareth Eagar in plain language, one chapter at a time. No jargon walls. No assumed knowledge. Just the concepts, the tools, and how they fit together. I hope I delivered on that.

Golang DSA Chapter 10 Part 2: Cache Management and Space Allocation

Welcome back. In Part 1 we went through garbage collection algorithms, reference counting, mark-and-sweep, and generational collection. Now let’s finish up Chapter 10 of “Learn Data Structures and Algorithms with Golang” by Bhagvan Kommadi. This second half covers cache management, space allocation on the stack, pointers, memory management tips, and profiling.

Data Engineering With AWS Chapter 14: Wrapping Up the Learning Journey

This is post 20 in my Data Engineering with AWS retelling series.

We made it. Thirteen chapters of pipelines, transforms, orchestration, security, querying, visualization, and machine learning. Chapter 14 is the final chapter. It does not introduce a new AWS service. Instead, it zooms out. Way out. It looks at how data engineering works in the real world, shows you case studies from Spotify and Netflix, and points you toward where the field is heading next.

Terraform Cert Guide Chapter 10: Terraform Cloud and Enterprise Explained

Up to this point in the book, everything has been about running Terraform on your own machine. Local state files, local commands, you doing everything manually. That works fine when it’s just you. But the moment your team grows beyond a couple of people, things get messy fast. Chapter 10 introduces the solutions HashiCorp built for exactly that problem: Terraform Cloud and Terraform Enterprise.

Terraform Cert Guide Chapter 8: Understanding Terraform Configuration Files

Chapter 8 of Ravi Mishra’s book is one of those chapters that sounds basic on the surface but actually ties a lot of loose ends together. You’ve been writing Terraform code for seven chapters now, but this is where you stop and really understand the anatomy of a configuration file. What goes where, why it matters, and how the same patterns work across GCP, AWS, and Azure.

Golang DSA Chapter 9 Part 1: Graphs and Network Representation

Chapter 9 of “Learn Data Structures and Algorithms with Golang” by Bhagvan Kommadi shifts gears into graphs and network structures. If you’ve been following along, we spent the last few chapters on searching, sorting, and hashing. Now we’re getting into something that models the real world more directly: connections between things.

Golang DSA Chapter 8 Part 2: Searching, Recursion, and Hashing

Welcome back. In Part 1 we covered the sorting side of Chapter 8, from bubble sort all the way to quick sort. Now we’re picking up the second half: searching algorithms, recursion, and hashing. These are the tools you use when you already have your data and need to find stuff in it, or when you need to transform it for fast lookups.

Golang DSA Chapter 8 Part 1: Sorting Algorithms in Go

Chapter 8 of “Learn Data Structures and Algorithms with Golang” by Bhagvan Kommadi is called “Classic Algorithms.” It covers sorting, searching, recursion, and hashing. That’s a lot of ground, so we’re splitting it into two parts. This first part is all about sorting.

Golang DSA Chapter 7 Part 2: Sequences and Anti-Patterns

Welcome back. In Part 1 we went through dictionaries and TreeSets. This second half of Chapter 7 wraps up TreeSets with synchronized and mutable variants, then moves into some cool mathematical sequences implemented in Go. We also talk about common anti-patterns the book warns about when working with these data structures.

Golang DSA Chapter 7 Part 1: Dictionaries and TreeSets

We’re into Chapter 7 of “Learn Data Structures and Algorithms with Golang” by Bhagvan Kommadi, and this is where things get interesting. The chapter is about dynamic data structures, which are basically collections that can grow and shrink as needed. No fixed sizes, no guessing how much memory you need upfront.

Golang DSA Chapter 6 Part 1: Singly and Doubly Linked Lists

Chapter 6 of “Learn Data Structures and Algorithms with Golang” is all about heterogeneous data structures. That’s a fancy way of saying “data structures that can hold different types of data.” Think integers, floats, strings, whatever you need, all mixed together. Linked lists and ordered lists are the main examples here.

Golang DSA Chapter 5 Part 1: Arrays and Multi-Dimensional Arrays

Chapter 5 of “Learn Data Structures and Algorithms with Golang” by Bhagvan Kommadi shifts gears from trees and hash tables into something more math-heavy: homogeneous data structures. That basically means data structures where every element is the same type. Think arrays of integers, matrices of floats, that kind of thing.

Golang DSA Chapter 4 Part 1: Trees in Go

Up to this point in the book, everything we covered was linear. Lists, stacks, queues, heaps, all of them store data in a straight line. One element after another. Chapter 4 is where things get interesting because we’re moving into non-linear data structures.

Data Engineering With AWS Chapter 12: Visualizing Data With Amazon QuickSight

This is post 18 in my Data Engineering with AWS retelling series.

We have spent eleven chapters ingesting data, transforming data, cataloging data, querying data. But here is a simple truth: nobody wants to stare at 10,000 rows in a spreadsheet. Our brains are not built for that. We process pictures way faster than text. A well-designed chart can tell you in two seconds what would take twenty minutes to figure out from raw numbers.

Golang DSA Chapter 2 Part 2: Slices, Maps, and Go Patterns

Welcome back. In Part 1 we covered arrays, basic slices, two-dimensional slices, and maps. That was the foundation. Now Kommadi moves into the more interesting Go patterns: variadic functions, defer and panic, and a full CRUD web application that ties it all together. He also shows more advanced slice operations along the way.

Wrapping Up: Big Data on Kubernetes

We have reached the end of our deep dive into Big Data on Kubernetes by Neylson Crepalde. It has been a massive journey, moving from basic Docker containers to complex, real-time AI pipelines.

Beyond the Basics: The Kubernetes Ecosystem

We have built some incredible pipelines over the last few posts. But if you were to take what we’ve built and put it into production today, you’d quickly realize that there is a lot more to managing a platform than just getting the YAML files right.

Action Models With Bedrock Agents

In the last post, we saw how to give an AI model a “memory” using RAG. But the real game-changer in the Generative AI world is when you let the model actually do things.

Building an End-to-End Big Data Pipeline - Part 3

Batch processing is great for historical reports, but what if you need to know what’s happening right now? In the final part of Chapter 10, Neylson Crepalde shows us how to build a world-class Real-Time Pipeline on Kubernetes.

Building an End-to-End Big Data Pipeline - Part 1

We have spent the last few weeks looking at individual tools like Spark, Airflow, and Kafka. But in the real world, these tools don’t live in isolation. They need to talk to each other to form a complete data pipeline.

Data Engineering With AWS Chapter 9 Part 2: Bridging Data Lake and Data Warehouse

This is post 15 in my Data Engineering with AWS retelling series.

In Part 1, we looked at Redshift internals – clusters, slices, distribution styles, sort keys. All the pieces that make a data warehouse fast. But a warehouse sitting in isolation is not very useful. Data needs to flow in from your data lake, and sometimes it needs to flow back out. Part 2 of Chapter 9 covers that bridge between S3 and Redshift, including Redshift Spectrum, the COPY and UNLOAD commands, and a hands-on exercise that ties it all together.

Real-Time Visualization With Elasticsearch and Kibana

Trino is great for querying your historical data on S3, but for real-time streams and text-heavy search, you need something different. In the second half of Chapter 9, Neylson Crepalde introduces the industry standard for real-time analytics: Elasticsearch and Kibana.

The Data Consumption Layer - Querying With Trino

You’ve built your ingestion, you’ve processed your data with Spark, and it’s all sitting neatly in your S3 “Gold” bucket. Now what? You can’t ask every business analyst to learn PySpark just to see last month’s sales.

Blockchain and Banking: Why This Tech Is Actually a Big Deal

Ever feel like the banking world is just a bunch of old buildings and slow apps? Well, things are actually moving pretty fast behind the scenes. I just finished reading Blockchain and Banking: How Technological Innovations Are Shaping the Banking Industry by Pierluigi Martino, and it’s a real eye-opener.

Deploying the Big Data Stack on Kubernetes - Part 1

We’ve explored Spark, Airflow, and Kafka as individual tools. But the real goal of Neylson Crepalde’s book is to show you how to run them all as a cohesive “stack” on Kubernetes. In Chapter 8, we finally start the heavy lifting of deployment.

Real-Time Streaming With Apache Kafka - Part 2

Architecture is great, but let’s actually run some code. In the second half of Chapter 7, Neylson Crepalde walks us through setting up a multi-node Kafka cluster right on our local machine using Docker Compose.

Real-Time Streaming With Apache Kafka - Part 1

In the world of big data, “batch” is no longer enough. We need data the second it happens. Whether it’s tracking stock prices, monitoring website traffic, or detecting fraud, you need a system that can handle massive streams of events with zero downtime.

Orchestrating Pipelines With Apache Airflow - Part 1

If Spark is the engine, then Apache Airflow is the conductor. In a modern data stack, you rarely have just one job running in isolation. You have ingestion, cleaning, processing, and delivery—and they all have to happen in a specific order.

Distributed Processing With Apache Spark - Part 1

If there is one tool that defined the “Big Data” era, it’s Apache Spark. It’s the engine that handles everything from terabyte-scale ETL to complex machine learning. In Chapter 5, Neylson Crepalde breaks down exactly how Spark works and why it’s so powerful on Kubernetes.

The Tools of the Modern Data Stack

We’ve talked about the architecture, but what about the actual tools? To build a modern data lakehouse on Kubernetes, you need a specific set of tools that can handle scale, automation, and speed.

The Evolution of Data Architecture

We’ve all heard the terms “Data Warehouse” and “Data Lake,” but do you actually know why we keep switching between them? In Chapter 4 of Big Data on Kubernetes, Neylson Crepalde gives a masterclass on how data architecture has evolved to keep up with the modern world.

Scaling to the Cloud With Amazon EKS

Testing things locally with Kind is great, but big data usually needs big iron. In this part of the hands-on journey, Neylson Crepalde shows us how to scale up to a managed cloud environment.

Local Kubernetes With Kind

Reading about architecture is one thing, but actually seeing a cluster run is where it sticks. In the third chapter of Big Data on Kubernetes, Neylson Crepalde moves from theory to practice.

Decoding Kubernetes Architecture - Part 1

If you want to run big data workloads on Kubernetes, you have to understand how the system is actually put together. It’s not just “magic magic cloud stuff”—it’s a carefully coordinated cluster of machines.

Building Your Own Data Images

In my last post, we talked about why containers are the bedrock of modern data engineering. But honestly, just running other people’s images only gets you so far. The real magic happens when you start packaging your own custom code.

Why Containers Are a Must for Data Engineers

If you are working with data today, you can’t really ignore containers. They have become the standardized unit for how we develop, ship, and deploy software. But why do we care so much about them in the big data world?

Rethinking Data Infrastructure: Big Data on Kubernetes

We are living in a world where data is basically everywhere. From your phone to social media and every single online purchase, the amount of info we generate is staggering. But here’s the thing: just having data isn’t enough. You have to be able to process it, and that’s where things get complicated.

Data Engineering With AWS Chapter 7 Part 2: Transforming Data - Optimization and Business Logic

This is post 12 in my Data Engineering with AWS retelling series.

In Part 1, we covered the generic data preparation transforms: converting to Parquet, partitioning, PII protection, and data cleansing. Those transforms work on individual datasets and do not need much business context. Now we get to the transforms that actually create business value. The ones that combine multiple datasets, add context, flatten structures, and produce the tables that analysts and dashboards consume.

Data Engineering for Beginners - Closing Thoughts on the Full Series

And that’s it. Eighteen posts. Thirteen chapters. One complete walkthrough of “Data Engineering for Beginners” by Chisom Nwokwu.

When I started this series, I said I wanted to retell the book in my own words. Not a summary, not a copy. My take on what each chapter covers and why it matters. Now that I’m at the end, let me step back and share my overall impressions.

Final Thoughts on Data Science Foundations by Mariadas and Huke

Nineteen posts. Sixteen chapters. One book. And here we are at the end.

When I started this retelling of Data Science Foundations: Navigating Digital Insight by Stephen Mariadas and Ian Huke (ISBN: 978-1-78017-6994, BCS 2025), I was not sure how it would go. Some books lose steam halfway. Some start strong and fizzle. But this one stayed consistent from first chapter to last.

Final Thoughts on Python and R for the Modern Data Scientist

So we made it through the whole book. And honestly? It was worth the ride.

What This Book Got Right

The biggest thing Scavetta and Angelov got right is the framing. They didn’t write a “Python is better” or “R is better” book. They wrote a “both are useful, here’s when to use which” book. And that’s the mature take.

Data Security for Data Engineers - Chapter 9 Retelling

In 2016, hackers stole personal data of 57 million Uber users and drivers. How? Someone left API credentials in a private GitHub repo. The attackers grabbed those keys, got into AWS, and downloaded everything. Uber didn’t even notice for a year. When they finally found out, they paid the hackers $100,000 to delete the data and kept quiet about it.

When to Use Python vs R - Data Format Context Explained

Chapter 4 is where the book stops teaching you the languages and starts telling you when to use which one. This is Part III, “The Modern Context,” and Boyan Angelov takes the lead here. The question is simple: given a specific data format, which language gives you a better experience?

Pipeline Orchestration With Airflow, DAGs, and Data Transformations

This is Part 2 of Chapter 7, continuing from batch and streaming basics.

In Part 1, we covered how batch and streaming pipelines move data around. But here is the thing: having a pipeline is one thing. Making sure all its parts run in the right order, at the right time, without you babysitting it? That is orchestration. And this is where Chapter 7 gets really practical.

Data Pipelines: Batch vs Streaming and When to Use Each

This is Part 1 of Chapter 7. Part 2 covers orchestration and transformations.

Chapter 7 of Data Engineering for Beginners is probably where things start feeling real. You stop talking about storage and tables and start talking about how data actually moves. And the answer is: through pipelines.

NiFi Registry Version Control - Study Notes From Data Engineering With Python Ch 8

You’ve been building data pipelines for several chapters now. They work. They move data. But here’s the problem: none of them have version control. If you break something, there’s no going back. Chapter 8 of Data Engineering with Python by Paul Crickard fixes that. It introduces the NiFi Registry, a sub-project of Apache NiFi that handles version control for your data pipelines.

The Origin Stories of Python and R - Chapter 1 Retelling

Chapter 1 is titled “In the Beginning” and it’s written by Rick Scavetta. He opens with a tongue-in-cheek Dickens reference, saying it’s just the best of times for data science. But to understand where we are, we need to look at where Python and R came from. Their origin stories explain why they feel so different today.

Data Engineering With GCP Chapter 7: Making Data Visual With Looker Studio

You spend weeks building pipelines, modeling data, setting up orchestration. Everything works. Data lands in BigQuery clean and on time. And then someone from the business side asks: “So… where do I see the numbers?” That is exactly where Chapter 7 picks up. All that upstream work has to end somewhere useful, and for most organizations that somewhere is a dashboard.

Data Engineering With GCP Chapter 6 Part 1: Real-Time Data With Pub/Sub

Chapter 6 is where Adi Wijaya switches gears from batch to real-time. After spending Chapters 3 through 5 on batch pipelines with BigQuery, Cloud Composer, and Dataproc, now it is time to talk about streaming data. Two GCP services carry this chapter: Pub/Sub and Dataflow. This post covers the streaming concepts and Pub/Sub. Dataflow gets its own post in Part 2.

Data Science Foundations Chapter 5: The Discovery Phase and Asking the Right Questions

You got a data science project. Great. But before you touch any data, before you write a single line of code, you need to stop and think. That is what Chapter 5 of “Data Science Foundations” by Stephen Mariadas and Ian Huke is about. The discovery phase. The part most people want to skip. And it is the part that saves you from wasting months on something that never had a chance.

SQL Basics: SELECT, WHERE, and Aggregate Functions

This is Part 1 of Chapter 4. Part 2 covers joins and advanced queries.

Chapter 4 is where Nwokwu puts SQL in your hands. No more theory. You write queries, you get results, you learn by doing. If Chapter 3 was about understanding what databases are, this chapter is about talking to them.

Data Engineering With AWS Chapter 6 Part 1: Ingesting Batch Data

This is post 9 in my Data Engineering with AWS retelling series.

You have your whiteboard architecture from Chapter 5. You know who your data consumers are and what they need. Now it is time to actually move data. Chapter 6 covers data ingestion – getting data from wherever it lives into your AWS data lake. This first part focuses on batch ingestion from databases and files. Part 2 covers streaming.

Data Engineering With GCP Chapter 1: What Is Data Engineering Anyway?

Chapter 1 starts with a confession most of us in the data world can relate to. Adi Wijaya says he used to think data was clean. Neatly organized, ready to go. Then he actually worked with data in real organizations and realized most of the effort goes into collecting, cleaning, and transforming it. Not the fun machine learning part. The plumbing part.

Data Engineering With AWS Chapter 1: What Even Is Data Engineering?

If someone told you twenty years ago that data would become more valuable than oil, you would have laughed. But here we are. The most valuable companies on the planet are not drilling for crude. They are collecting, processing, and squeezing insights out of massive piles of data. And behind every one of those companies, there is a team of data engineers making it all work.

Reading the Room: Stock Sentiment Analysis With NLP

Stocks aren’t just driven by math; they’re driven by people. And people are emotional. In Chapter 14 of Data Analytics for Finance Using Python, we look at Natural Language Processing (NLP)—a way to turn human chatter into useful data.

Systems Thinking Chapter 11: Systems Leadership

Chapter 11 is about leadership. But not the kind you see on LinkedIn where someone posts a sunset photo and writes “leaders eat last.” Diana is talking about something very different. Systems leadership is about improving how knowledge flows through your organization. Not about your title, not about your authority, not about how many people report to you.

Standing Out From the Mean: Assessing Stock Risk With the Z-Score

If you’ve ever heard someone say a stock’s price is “three standard deviations away from the mean,” they’re talking about Z-Scores. In Chapter 11 of Data Analytics for Finance Using Python, we explore how to use this tool to find the “weird” data points that might actually be opportunities.

Systems Thinking Chapter 10: Modeling Together - Part 1

Chapter 10 is a big one, so I’m splitting it into two parts. This is Part 1 of 2.

Diana opens with a Donella Meadows quote that sets the tone for everything that follows: get your model out where people can see it, invite others to challenge it. That’s the whole chapter in one sentence, really. But of course there’s much more to unpack.

Which One Is Riskier? Assessing Stock Risk With the F-Test

If you’re choosing between two stocks, you don’t just want to know which one has a higher return. you want to know which one is more likely to give you a heart attack. In Chapter 9 of Data Analytics for Finance Using Python, we look at the F-Test as a way to compare risk.

Systems Thinking Chapter 8: Designing Feedback Loops

When you hear “feedback loop” you probably think about monitoring dashboards. Or autoscaling. Or maybe that annoying annual performance review your manager gives you. Diana Montalion says all of that is too narrow. Chapter 8 is about feedback loops for thinking. Not for servers.

Big Data for the Rest of Us: A Deep Look at Hadoop 3

So, you’ve heard about big data. It’s everywhere. But how do you actually handle it? If you’re looking for the OG of big data platforms, you’re looking at Hadoop. And honestly, it’s still the foundation for almost everything we do in data today.