yana-stocks: A Next.js Microservices Platform
An 11-service polyglot platform for real-time stock data, portfolios and ML predictions — service boundaries, layered caching, tracing, and change-aware CI.
Writing about things I'm building, learning, and tinkering with — from production engineering to home servers.
Deep dives into the full-stack applications running on the on-prem cloud — architecture, backend design, APIs, frontend performance, and observability, end to end.
An 11-service polyglot platform for real-time stock data, portfolios and ML predictions — service boundaries, layered caching, tracing, and change-aware CI.
Building retrieval-augmented generation systems — how RAG works, and what building one over the on-prem cloud’s own docs reveals about the approach.
What retrieval-augmented generation actually is, and how a RAG chatbot over k8s-apps’ docs was built with OpenAI embeddings and Claude for cited answers.
Building production agentic systems with deepagents and LangGraph — orchestrator/subagent architectures, human-in-the-loop remediation, and what actually breaks when an agent gets to act, not just answer.
How ops-agent’s orchestrator delegates to fifteen scoped subagents, and the LangGraph mechanics — interrupt/resume, a CNPG-backed checkpointer — behind it.
An 8-part series on setting up a production-grade Kubernetes cluster at home — storage, networking, databases, GitOps, SSO, and shared application services. See the stack — Grafana, Gotify, Hubble, Uptime Kuma, Harbor, MinIO, Kafka, MongoDB, Redis, Nextcloud, Immich →
What I learned building a production Kubernetes cluster at home — Proxmox, Cilium native routing, Ceph CSI, ArgoCD, and the gotchas not in the docs.
Connecting a Ceph cluster to Kubernetes via the CSI driver for dynamic RBD provisioning — including the Cilium native routing gotcha that blocks OSD traffic.
Three scenarios where standard NetworkPolicy breaks down in Cilium native routing mode, and how CiliumNetworkPolicy’s toEndpoints and toCIDR solve them.
Using CloudNativePG for database-per-service Postgres — shared vs dedicated clusters, barman WAL backups to MinIO, and the kured drain gotcha.
Sync waves, ignoreDifferences, the Argo Rollouts diff gotcha, permanent OutOfSync apps, and the valuesObject pitfall — ArgoCD on real workloads.
Putting every on-prem cloud service behind single sign-on with Authentik — the forward auth pattern, the auth-url hostname gotcha, and native OIDC for Grafana.
Replacing three duplicated SMTP2GO integrations with one Kafka-mediated email service — the Harbor robot account gotcha, and whether it was over-engineered.
The cluster didn’t start on Cilium. Why Flannel’s silently-unenforced NetworkPolicies forced a migration, and what eBPF native routing and Hubble buy you.