Category: Software Engineering
-

Algebraic Effects: From Callbacks and Promises to Effect Handlers
Decoupling computation from the interpretation of its effects Introduction There is a moment in programming that almost every developer recognizes. A piece of code begins as a simple sequence of ideas: take a value, transform it, return a result. At that stage, everything feels local, direct, and easy to follow.…
-

Mind in Code: Structural Design of Agentic AI for Learning, Action, and Evolution
Cognition, Autonomy, and Interaction in Intelligent Systems Introduction Artificial intelligence is undergoing a structural metamorphosis. The field is shifting from static, single-task models to systems capable of autonomous behavior, goal-directed reasoning, and interactive learning. At the forefront of this transformation is the rise of Agentic AI: computational systems that perceive their environment, form internal…
-

Incremental Modernisation of Legacy Software Systems
Patterns and Strategies to Prevent Entropy, Regression, and Systemic Fragility Introduction Modernizing legacy systems isn’t about throwing everything away and starting fresh. It’s about evolving systems incrementally, safely, and under real production constraints. While targeted rewrites can be necessary, treating modernization as a single “Big Bang” replacement project introduces critical…
-

Evaluating C, C++, Rust, and Zig for Modern Low-Level Development (My Choice)
Balancing Speed, Safety, and Complexity in Low-Level Development and Systems Programming Explore the complete series through the links below: The showdown has concluded and it’s time to make a decision. My Choice After an in-depth comparison of C, C++, Rust, and Zig, I have decided that Zig is the best…
-

Evaluating C, C++, Rust, and Zig for Modern Low-Level Development (DX, Portability, Benchmarks and Adoption)
Balancing Speed, Safety, and Complexity in Low-Level Development and Systems Programming Explore the complete series through the links below: The focus of this part is on the developer experience, portability, benchmarks, and adoption for each programming language. Introduction Beyond language design, real-world usability depends on developer experience, ecosystem maturity, and…
-

Evaluating C, C++, Rust, and Zig for Modern Low-Level Development (Error Handling)
Balancing Speed, Safety, and Complexity in Low-Level Development and Systems Programming Explore the complete series through the links below: The focus of this part is on error handling for each programming language. Introduction In low-level programming, error handling is not just about managing failures; it directly impacts system stability, performance,…
-

Evaluating C, C++, Rust, and Zig for Modern Low-Level Development (Concurrency Mechanisms)
Balancing Speed, Safety, and Complexity in Low-Level Development and Systems Programming Explore the complete series through the links below: In this part, we will focus on the concurrency mechanisms of each programming language. Introduction In modern low-level programming, concurrency is crucial for utilizing multi-core processors, improving responsiveness, and handling parallel…
-

Evaluating C, C++, Rust, and Zig for Modern Low-Level Development (Memory Management)
Balancing Speed, Safety, and Complexity in Low-Level Development and Systems Programming Explore the complete series through the links below: In this part, we will focus on the memory management of each programming language. Introduction In the previous section, we explored the design philosophies of C, C++, Rust, and Zig, analyzing…
-

Evaluating C, C++, Rust, and Zig for Modern Low-Level Development (Design Philosophies)
Balancing Speed, Safety, and Complexity in Low-Level Development and Systems Programming Explore the complete series through the links below: In this part, we will focus on the design philosophy of each programming language. Introduction For my future low-level and systems programming projects, including embedded programming, programming languages, compilers, and interpreters,…

