Weekly Blog

Technical deep-dives, project updates, and lessons learned from building software and data systems.

The views I express here are mine alone and do not necessarily reflect the opinions or official position of my employer.

A join between two values that looked byte-for-byte identical on screen kept failing silently. The cause was a Windows-style carriage return hiding at the end of a product_code, invisible in every grid viewer I checked. Here's how to catch it with LENGTH() and HEX_ENCODE(), and the TRIM fix that guards against it recurring.
How I stopped maintaining three copies of the same AI agent instructions by centralizing AGENTS.md, skills, and commands into one directory and symlinking every tool back to it.
TIMESTAMP_NTZ, LTZ, or TZ: picking the wrong one doesn't throw an error, it renders a different time per session and can drop rows out of a join without warning. Here's what actually distinguishes them, and the schema-migration gotcha that can break a pipeline changing between them.
A column got renamed upstream and nothing crashed. My pipeline just started producing NULLs, silently, until someone noticed a dashboard number that didn't look right. Here's how I detect schema drift before it reaches production, and why additive, reversible changes beat rewriting a table.
A reflection on Rob Rawson's presentation, How to Think with AI
Recapping the highlights from Datadog Summit London 2026. Explore cutting-edge monitoring innovations, observability best practices, and insights from industry leaders that are reshaping how teams manage cloud infrastructure and application performance.
Discover the differences between DBT contracts and data tests on Snowflake. Learn how each approach helps enforce schema integrity and data quality, and when to use them together for robust analytics pipelines.
Learn how to leverage the hash_agg function in Snowflake to efficiently compare tables and identify differences.
Discover effective study strategies, essential resources, and practical tips that helped me succeed in the Snowflake Data Engineer Core Certificate exam. Learn how NotebookLM streamlined my preparation and deepened my understanding of key Snowflake concepts.
Discover effective strategies for bridging the gap between technical teams and non-technical stakeholders. Learn how to simplify complex concepts, foster collaboration, and ensure your message is understood by all audiences.
Explore effective pre-commit strategies and how to automate code quality checks using GitHub Actions for a more reliable development workflow.
Keeping package version updated across projects can be tedious. This post shows how a GitHub Action can automate the process, saving time and reducing manual effort.
Automate tedious variable or function renaming across multiple repositories with a simple script. Save time, reduce errors, and streamline your workflow when updating code in several projects at once.
Explore different methods for removing duplicate data, including SQL techniques, data pipeline strategies, and best practices for ensuring data quality and consistency in analytics workflows.
I came into data engineering without a CS degree, and Big-O notation was a wall I kept bouncing off. Grokking Algorithms, bought on the company training budget, is the cartoon-illustrated DSA book that finally made binary search and BFS click before I touched a single leetcode problem.
Key takeaways and study strategies from my journey to passing the Snowflake Core Certificate, including recommended resources, hands-on practice tips, and lessons on mastering core concepts.
Learn practical strategies—including the 'No Hello' principle and visual cues—for making your online conversations clearer and faster.
Discover the distinctions between UNION and UNION ALL in SQL, focusing on their behavior with duplicate records, performance implications, and practical use cases. Enhance your query skills by understanding when to use each operator for efficient data combination.
I dropped a view thinking the bad rows would disappear with it. They didn't. Here's why the underlying Snowflake table always wins, and how to actually fix bad data in a dbt incremental model.
Simplify your Python workflow with uv, a fast and modern dependency manager. Learn how to set up, manage environments, and collaborate efficiently on projects.
7 highly recommended newsletters/instagram influencer worth subscribing as a software developer or data engineer in 2025.
Some insights from snowflake world tour London 2025.
Heyo! I'm glad that you stumbled upon this site. Excited to share my journey in software and data engineering.