Not a resume. The path that built the way I think about systems, from low-level code to architecture, across the domains I have worked in.
CAD applications in Borland C++ on Windows, then client-server systems and database administration. When hardware was tight, you learned where every byte and processor cycle went. That is the foundation that still lets me see a system end to end, down to the layer where most people stop looking.
Administering the information systems of a government employment service on Oracle and Unix, leading a team of site administrators, then building client-server applications and the first web and GIS projects. Two threads start here that still run through my work: large databases that have to stay correct, and geospatial data.
Geospatial systems became a specialty. Map portals, monitoring and routing for mobile objects, and master-plan GIS for an industrial enterprise. Spatial queries, tiling, routing, and the databases underneath, on datasets large enough that naive approaches fall over.
Two decades on the technical side of online retail. Stores with their own pricing engine, B2C and B2B, order, warehouse, inventory and price management, on catalogs of tens of thousands of SKUs, plus the marketing-analytics layer and ad-campaign automation. One of these I grew from a small site and have run for two decades, with only short, infrequent downtime. This is where it became concrete that code does not live in a vacuum. It serves unit economics, conversion, and the marketing that drives them.
As systems grew, the work moved from writing functions to running the environment they live in. Kubernetes, Docker, CI/CD, Nginx, log pipelines, PostgreSQL and PostGIS tuning, and a DDoS-protected DNS service. The part most developers hand off, I took ownership of, because reliability is designed in, not bolted on.
Now I work as supervisor, architect, and lead, directing AI agents on execution, and I use the best tool for each task. When the agents fall short, like a hard Kubernetes ingress the models could not get right, I go deep and solve it by hand. The systems thinking is the constant. A hard problem is something to take apart, in any domain.
CAD, databases, GIS, high-load commerce, infrastructure, AI-directed delivery. Different domains, one constant: the ability to decompose a complex system and own it end to end, from the architecture down to the byte. That is what I bring to a hard problem.