About Me

About photo 1
About photo 2
About photo 3
About photo 4

I approach development as an exercise in reducing chaos. I enjoy taking vague ideas, half-formed requirements, or messy codebases and shaping them into something coherent, predictable, and extensible. Structure matters - not for elegance points, but because future work depends on it.

I'm comfortable moving across layers of a system, from user-facing behavior down to the machinery that makes it reliable. That perspective makes trade-offs clearer: what should be automated, what should be configurable, and what should be left deliberately simple.

A recurring theme in my work is orchestration - getting independent parts to cooperate without stepping on each other. Whether it's data flowing through a pipeline, state evolving over time, or components negotiating responsibility, I focus on making interactions explicit and debuggable.

I like projects that blur boundaries: tools that feel like products, products that feel like platforms, and experiments that accidentally turn serious. Exploration is part of the process, but I'm disciplined about turning experiments into maintainable systems rather than one-off demos.

Above all, I value clarity - clear interfaces, clear failure modes, clear intent in code. Software ages quickly; the goal is to leave behind something that still makes sense when context is gone and assumptions have shifted.