About me

I treat programming as a dialect of thought. Compilers are translators between human intention and machine execution, mapping symbols into structured causality. Memory is not just storage—it's a landscape where ideas persist, mutate, and interlink. Data structures give those ideas shape: stacks for discipline, graphs for relationships, and arrays for continuity. Logic binds this all together, ensuring that every branch, loop, and pointer stands accountable to truth.

In a world of abstractions, I move deliberately between levels: from registers and cache lines to algorithms and APIs. Each layer is a lens; clarity comes from knowing which lens to apply, and when to discard it. Elegance is not ornament—it's the absence of unnecessary complexity. Robust systems emerge when conceptual models align with implementation details, and code becomes an honest artifact of thought.

Programming languages

C++

Performance as philosophy. Determinism, RAII, zero-cost abstractions. Templates as meta-logic, and memory as terrain.

C#

Managed precision. LINQ as fluent data flow, async as structure, and tooling that shapes reliable systems.

Python

Expressiveness first. Rapid prototyping, clean syntax, and ecosystems where ideas crystallize quickly.

JavaScript

The living runtime. Events, closures, and rendering pipelines that translate state into experience.

GDScript

Game-native scripting. Signals, nodes, and scenes—logic embodied as spatial hierarchy and behavior.

Tools and software

Blender
Geometry nodes, topology discipline, and procedural thinking for visual systems.
Linux
Composable tooling, shells and pipes, transparent processes—control as a philosophy.
Windows
Pragmatic compatibility, subsystem bridges, and solid desktop ergonomics.

Profiles

Programming philosophy

Compilers

A compiler is a contract between intention and execution. It enforces rigor on the author, converting ambiguity into constraints. Parsing is not only syntax disambiguation; it is the transformation of thought into structure—trees that embody choices, scopes that maintain locality, and bindings that resolve meaning. Optimization does not “make code faster” so much as it reconciles ideas with the physical reality of machines: latency, locality, and the economy of operations.

Abstraction

Abstraction is the art of hiding details without losing essence. Good abstractions are transparent: they make the right things easy and the wrong things impossible. A leaky abstraction is not a failure by itself—it is a reminder that reality remains. To design is to measure the permeability of your layers: which truths pass through, which guarantees hold, and when you must descend for clarity.

Data structures

Data structures are topologies of thought. A queue suggests fairness; a stack suggests discipline. Trees encode lineage and decision, graphs encode relationship and flow. The choice is ethical as much as technical: your structure will shape behavior, performance, and the very questions your system can ask of itself.

Programming as thinking

Programming is a practice of attention. A well-written function is a paragraph with purpose. Naming is storytelling; tests are arguments; debugging is inquiry. The best codebases are libraries of clear thoughts, compiled daily, revised mercilessly, and read with care. In the end, programs run on machines, but they live in minds.