Omaha Metro, Nebraska · est. 2006

Software built on first principles, not frameworks.

Pengdows builds production .NET infrastructure and takes on consulting engagements where database design, identity, and security correctness are non-negotiable.

~20 yrsprofessional development
11 DBstested against in CI
.NETprimary platform
NuGetopen packages published
0string-interpolated SQL

consultingHard problems, solved correctly. Engagements where getting it right matters more than getting it done fast.

// database

Database architecture & design

Schema design grounded in relational theory — business keys, surrogate references, normalization that holds under production load. Query analysis, index strategy, and multi-database migration planning.

// security

Security, PKI & identity

PKI design, certificate lifecycle, OIDC/OAuth architecture, zero-trust network policy, and identity system review. Hands-on experience with DNSSEC, WebAuthn, hardware-bound credentials, and STS design.

// .net

.NET architecture & development

API design, data access layer architecture, connection pool governance, concurrency patterns, and code review. Specialization in correct resource ownership, elimination of ambient transactions, and testability.

// modernization

Legacy modernization

Systematic migration of legacy data access, stored procedure dependencies, and monolith decomposition. Incremental strategies that keep production running while the floor is replaced underneath it.

Engagements are selective. If you have a problem that requires someone who will tell you the truth about what it will take, reach out.software@pengdows.com

open-source productsInfrastructure libraries built for correctness first, convenience second.

pengdows.crudon nuget

SQL-first, strongly-typed data access for .NET. Dialect-aware across 11 databases, parameterized by construction, with a full TableGateway pattern, arbitrary-shape hydration, and a fakeDb layer for database-free unit testing.

.NET11 databasesTestcontainersNuGet →
pengdows.hangfireon nuget

Hangfire storage provider supporting 11 databases via atomic UPDATE task claiming. Validated by a 200-worker stress test and 1,204 integration test cases across databases via Testcontainers.

.NETHangfire11 databasesNuGet →
pengdows.poco.minton nuget

Schema introspection and POCO/entity generator. Docker-first local dev companion. Reads tables, columns, PKs, FKs, unique constraints, check constraints, and non-unique indexes to generate clean C# entity classes.

.NETDockercode generationNuGet →
pengdows.cmscoming soon

A SvelteKit SSR + ASP.NET Core rendering layer that reads six public WordPress tables — no login, no comments, no plugins, no PHP. Multi-tenant, containerized, db-per-tenant. Not yet publicly available.

Svelte.NETread-onlyinquire →

philosophy

“The database is the last line of defense against bad data. Don’t make it the first line of defense against bad code.”

— a principle that shapes everything we build

// measure, don’t guessNo optimization without a benchmark. No architectural choice without a rationale. Opinion without evidence is noise.
// one owner per resourceEvery connection, transaction, and lock has a single clear owner. Ambient state and shared mutable access are bugs waiting to be found in production.
// explicit over convenientMagic is a liability. SQL is written by the developer, not generated by a framework guessing at intent. Parameters always. String interpolation never.
// correctness is the featureCoverage gates, integration tests against real databases, and adversarial test cases are not optional extras. They are what separates a library from a prototype.

Let’s talk about your problem.

Consulting inquiries, product questions, or early access requests for unreleased packages — all go to the same place.

software@pengdows.com