<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Engineering on Move into the Future</title><link>/categories/engineering/</link><description>Recent content in Engineering on Move into the Future</description><generator>Hugo -- gohugo.io</generator><copyright>Copyright © 2016-2026 Jim Chng. All Rights Reserved.</copyright><lastBuildDate>Sat, 10 May 2025 10:00:00 +0800</lastBuildDate><atom:link href="/categories/engineering/index.xml" rel="self" type="application/rss+xml"/><item><title>Taming Hierarchical Data: Mastering SQL Recursive CTEs for Advanced Tag Management</title><link>/blog/2025/05/taming-hierarchical-data-mastering-sql-recursive-ctes-for-advanced-tag-management/</link><pubDate>Sat, 10 May 2025 10:00:00 +0800</pubDate><guid>/blog/2025/05/taming-hierarchical-data-mastering-sql-recursive-ctes-for-advanced-tag-management/</guid><description><![CDATA[<p>Hierarchical data structures are everywhere in modern applications, from e-commerce categories to knowledge bases. This comprehensive guide demonstrates how SQL&rsquo;s recursive Common Table Expressions (CTEs) elegantly solve the challenges of nested taxonomies without complex application code. Learn how to build a complete tag hierarchy system, navigate parent-child relationships efficiently, generate breadcrumb trails, prevent cyclic references, and implement powerful content filtering—all with clean, maintainable SQL queries that scale with your data&rsquo;s complexity.</p>]]></description><enclosure url="/blog/2025/05/taming-hierarchical-data-mastering-sql-recursive-ctes-for-advanced-tag-management/featuresqlblog.png" length="1407012" type="image/png"/></item><item><title>Refining TypeScript's Opaque Types for Enhanced Type Safety</title><link>/blog/2025/02/refining-typescripts-opaque-types-for-enhanced-type-safety/</link><pubDate>Sat, 01 Feb 2025 10:00:00 +0800</pubDate><guid>/blog/2025/02/refining-typescripts-opaque-types-for-enhanced-type-safety/</guid><description>&lt;p>An exploration of opaque types in TypeScript and a refined implementation that provides stronger guarantees for handling sensitive information.&lt;/p></description><enclosure url="/blog/2025/02/refining-typescripts-opaque-types-for-enhanced-type-safety/feature-typescript-opaque-types.png" length="416299" type="image/png"/></item><item><title>Supercharging Python Automation with Nox: Beyond Basic Usage</title><link>/blog/2025/01/supercharging-python-automation-with-nox-beyond-basic-usage/</link><pubDate>Wed, 15 Jan 2025 09:00:00 +0800</pubDate><guid>/blog/2025/01/supercharging-python-automation-with-nox-beyond-basic-usage/</guid><description>&lt;p>A deep dive into extending Nox&amp;rsquo;s capabilities with custom decorators and classes, turning it into a comprehensive automation solution that can replace Makefiles and shell scripts.&lt;/p></description><enclosure url="/blog/2025/01/supercharging-python-automation-with-nox-beyond-basic-usage/featured-nox-blog-post.png" length="1399433" type="image/png"/></item><item><title>Compile-time Hex String Validation in Rust using Const Evaluation</title><link>/blog/2025/01/compile-time-hex-string-validation-in-rust-using-const-evaluation/</link><pubDate>Sun, 12 Jan 2025 10:00:00 +0800</pubDate><guid>/blog/2025/01/compile-time-hex-string-validation-in-rust-using-const-evaluation/</guid><description>&lt;p>A deep dive into using Rust&amp;rsquo;s const evaluation features to validate hex strings at compile time, ensuring both correctness and zero runtime overhead.&lt;/p></description><enclosure url="/blog/2025/01/compile-time-hex-string-validation-in-rust-using-const-evaluation/feature-rust-compile-time-hex-str-validate.png" length="815603" type="image/png"/></item><item><title>All Decorators - Systematically Decorating Python Class Methods</title><link>/blog/2025/01/all-decorators-systematically-decorating-python-class-methods/</link><pubDate>Thu, 09 Jan 2025 18:17:24 +0100</pubDate><guid>/blog/2025/01/all-decorators-systematically-decorating-python-class-methods/</guid><description>&lt;p>A deep dive into systematically decorating all methods of a Python class, exploring challenges and solutions using the Descriptor protocol.&lt;/p></description><enclosure url="/blog/2025/01/all-decorators-systematically-decorating-python-class-methods/featured.webp" length="457014" type="image/webp"/></item><item><title>Template Metaprogramming: A Tale of Two Languages (C++ and Rust)</title><link>/blog/2024/03/template-metaprogramming-a-tale-of-two-languages-c-and-rust/</link><pubDate>Sat, 16 Mar 2024 09:00:00 +0800</pubDate><guid>/blog/2024/03/template-metaprogramming-a-tale-of-two-languages-c-and-rust/</guid><description>I&amp;rsquo;ve been on quite the adventure lately. The transition from memory-safe languages to C++ is like going from driving an automatic car with all the safety features to suddenly piloting a manual sports car with no guardrails – exhilarating but terrifying.
My recent fascination with metaprogramming began after I wrote about Rust&amp;rsquo;s procedural macros. There&amp;rsquo;s something magical about code that writes other code, and I wanted to explore this concept in both C++ and Rust.</description><enclosure url="/blog/2024/03/template-metaprogramming-a-tale-of-two-languages-c-and-rust/feature-cpp-rust-median.png" length="504780" type="image/png"/></item><item><title>Crafting Pydantic-Compatible Custom Python Datatypes in Rust with PyO3</title><link>/blog/2023/02/crafting-pydantic-compatible-custom-python-datatypes-in-rust-with-pyo3/</link><pubDate>Tue, 28 Feb 2023 22:31:27 +0800</pubDate><guid>/blog/2023/02/crafting-pydantic-compatible-custom-python-datatypes-in-rust-with-pyo3/</guid><description>&lt;p>Rust-implemented custom python datatype that is also pydantic-compatible.&lt;/p></description><enclosure url="/blog/2023/02/crafting-pydantic-compatible-custom-python-datatypes-in-rust-with-pyo3/feature.webp" length="382164" type="image/webp"/></item></channel></rss>