What I Care About
I like software that is simple without being simplistic: APIs that are clear, interfaces that are inclusive, systems that can evolve, and code that the next developer can understand without a heroic amount of archaeology.
TerraPDF grew from that same point of view. It is built around a fluent API, practical document layout, and a zero-dependency C# implementation that developers can understand, ship, and trust.
TerraPDF
I created TerraPDF to make professional PDF generation in .NET feel direct and dependable. It supports layouts, tables, images, links, bookmarks, vector graphics, WinAnsi text, and AES-128 PDF encryption without native binaries or third-party runtime packages.
You can explore the library at terrapdf.com, install it from NuGet, or view the source on GitHub.
Areas I Write About
TerraPDF and PDF Generation
Zero-dependency C# PDF generation, document layout, encryption, and fluent API design.
ASP.NET Core and APIs
Minimal APIs, authentication, OpenAPI, Swagger, TLS, and practical backend patterns.
Architecture and Clean Code
Readable C#, maintainable systems, sensible boundaries, and code quality that holds up over time.
Frontend and Design Systems
Fluent 2, responsive layouts, consistent UI, and user experiences that feel polished and purposeful.
Performance and Accessibility
Fast pages, semantic HTML, inclusive design, and the small details that make the web better for everyone.
Developer Tooling and Workflows
CLI tools, automation, CI/CD, GitHub Actions, and optimizing the development experience.
Why This Blog Exists
This site is where I collect notes, tutorials, experiments, and opinions from the engineering work I care about. Some posts are practical guides. Some are reflections on developer life. Some explore emerging tools like AI and how they fit into everyday work.
The goal is straightforward: share useful context, make technical ideas easier to approach, and leave behind examples that another developer can actually use.