Technical Writing & Notes

Learning Systems by Building and Explaining Them

I write about C, C++, systems programming, memory, operating systems, developer tooling, compiler and runtime foundations, reproducible research, and trustworthy machine learning. These articles preserve what I learn and turn difficult technical ideas into structured explanations.

Latest Technical Articles

Practical explanations, implementation notes, debugging lessons, research insights, and foundations for deeper systems work.

View all articles
C & Memory

Why C Pointers Matter

Understanding addresses, indirection, object lifetime, arrays, function parameters, memory ownership, and why pointers are central to low-level software.

Operating Systems

What Unix Tools Teach About Operating Systems

How rebuilding familiar command-line utilities reveals deeper lessons about files, processes, streams, permissions, system calls, abstractions, and kernel services.

C Foundations

Arrays and Pointers: Related but Not Identical

A careful explanation of array-to-pointer conversion, function parameters, object size, indexing, decay, and the differences that matter in real C programs.

Reproducible Research

What Makes an ML Experiment Reproducible?

Seeds, manifests, environments, dataset versions, metrics, artifacts, experiment protocols, and the difference between code that runs and evidence that can be trusted.

Synthetic Data

When Does Synthetic Data Actually Help?

Why visual realism alone is insufficient, how downstream utility should be measured, and why class balance, budgets, selection policies, and failure modes matter.

Debugging

A Practical Method for Debugging Memory Errors

A structured process for reproducing failures, inspecting ownership, narrowing the fault, using GDB and sanitizers, correcting the cause, and preventing regression.

What I Write About

The blog follows the same progression as my technical work: foundations, implementation, evidence, systems depth, and future compiler/runtime specialization.

01

Systems Foundations

C, C++, pointers, memory, data structures, processes, files, system interfaces, concurrency, and architecture.

02

Building Tools

Command-line utilities, reusable libraries, testing, build systems, debugging, profiling, automation, and project design.

03

Research & Evidence

Synthetic data, cybersecurity ML, experiment design, reproducibility, evaluation, uncertainty, and research infrastructure.

04

Compiler & Runtime Journey

Parsing, intermediate representations, virtual machines, execution engines, optimization, runtime services, and performance engineering.

From Technical Notes to Working Systems

The articles document the reasoning behind my systems projects, research workflows, debugging process, and deliberate progression toward compiler and runtime engineering.