ZACH LARSON
I build systems that fail loudly instead of guessing.
Senior .NET developer, full-time since August 2016. Thirty-two bank systems as of September 2026, nine of them started from an empty folder and four written near enough alone. I build under SkaiiNyght Solutions LLC, a South Dakota company formed in March 2026. No cofounders, no contractors, no employees.
What I build, and why it is shaped this way
Most of what I write is a backend with a hard rule attached to it. On the calisthenics tracker the rule is that athlete data is never lost and never silently collapsed, so the sync layer keeps an outbox and a set logged on a dead connection waits its turn instead of being merged away. On the Pathfinder corpus the rule is that a setup either worked or it did not, so the script reports every prerequisite as satisfied, unsatisfied, or genuinely unknown, and refuses to reconfigure a container it did not create.
The pattern underneath is the same in both places. A system that guesses when it is uncertain is worse than one that stops and says so, because the guess is invisible and the stop is not. It is why the same domain arithmetic on the tracker is authored twice, once in C# and once in TypeScript, and held identical by shared JSON vectors that both test suites read. If the two ever drift, a test fails. Nobody's training history quietly changes shape.
That is also what I mean by a durable fact. I would rather tell you that a container image is pinned by digest than tell you how many commits I have pushed. One of those is still true in a year.
The same rules run through a decade of bank systems whose source is not mine to show you. What that work actually consisted of, and the decisions that recur across all of it, are on the engineering record.
Four things I am building
-
Skaii-Cali
The same domain arithmetic lives twice, in C# on the server and TypeScript on the device, held identical by shared JSON vectors both test suites read. A divergence fails a test rather than corrupting an athlete's history.
.NET 10, FastEndpoints, Dapper, Expo React Native, shared TypeScript packages
-
Skaii-Pathfinder
Reproducibility treated as a correctness property. The .NET SDK, PostgreSQL and pgvector all run from container images pinned by digest, with nothing installed on the host, so the environment that answers today answers the same way later.
.NET 10, PostgreSQL, pgvector, digest-pinned container images
-
Skaii-Toolkit
Reporting a prerequisite as genuinely unknown is the tool working, not the tool failing. Everything in these two repositories follows from that, including a harness that corrupts a subject on purpose to find out whether its own tests would notice.
.NET 10, command-line tools, agent review skills
-
Skaii-Meals
Allergen and nutrition data decide what somebody with a medical condition eats, so uncertainty resolves toward exclusion and a value that cannot be determined honestly is never estimated into place. The schema carries that rule before any screen does.
.NET 10, FastEndpoints, EF Core, Npgsql, PostgreSQL, Blazor WebAssembly, MudBlazor, Refit, Redis, DbUp
Building something you need built
I take custom build work on the side of the day job, in the same stack and to the same standard as the four above. If you have a system that needs a backend, a data model that has outgrown a spreadsheet, or an integration nobody wants to own, that is the kind of thing I take.
Send me something to read
Hiring, a system you need built, or a question about any of the above. It all lands in the same inbox and I read it.