Optimizing Kubernetes Images for Homelab Resources
Running a complex microservices stack on limited hardware. How we use .NET 10 Chiseled Ubuntu images and Native AOT to slash memory usage.
An AI-powered personal document archive that transforms how you organize, search, and understand your documents.
From homelab experiment to production-ready system — documenting every step of building a modern cloud-native application with .NET, Kubernetes, and AI/ML.
Find documents by meaning, not just keywords. RAG-powered Q&A over your entire archive.
Docling extracts text with layout preservation. Tables, headings, and structure intact.
Every user gets isolated storage with dedicated KMS keys. Zero-trust architecture.
NATS JetStream for reliable async processing. Real-time UI updates without polling.
FalkorDB connects entities across documents. Discover relationships automatically.
Runs on a homelab K3s cluster. Local AI with Ollama. Your data stays yours.
A cloud-native document intelligence platform built on DDD principles with event-driven microservices.
Building robust domain models with DDD patterns
Async messaging patterns for distributed systems
Infrastructure as Code and declarative deployments
From unit tests to contract testing
Authentication, encryption, and GDPR compliance
Building production RAG pipelines and LLM applications
Running a complex microservices stack on limited hardware. How we use .NET 10 Chiseled Ubuntu images and Native AOT to slash memory usage.
Data integrity in high-traffic applications relies on how you handle concurrent updates. We compare DB locks (Pessimistic) against Row Versioning (Optimistic) in EF Core.
Using NBomber and k6 to find the breaking points of our .NET API. Analysis of CPU vs Memory vs I/O bottlenecks.
Why BlueRobin moved from standard UUIDs to NanoIDs for primary keys: URL aesthetics, database considerations, and a custom alphabet implementation.
A pragmatic analysis of the costs, performance, and complexity of running local LLMs versus cloud providers, and why we adopted a hybrid architecture.
Caching is easy; invalidation is hard. Move beyond simple TTL (Time To Live) and learn how to implement precise, event-driven cache busting using Redis and NATS.
System design and patterns
Event-driven and async communication
Kubernetes, GitOps, and DevOps
Authentication, encryption, and compliance
Machine learning and LLM integration
Blazor and UI development
.NET, APIs, and server-side
PostgreSQL, EF Core, and data storage
Pipelines and automation
Monitoring, logging, and tracing
Object storage and file management