Recovering a boot-looping WD My Cloud PR2100
A firmware image sliced 220 KB too long, a boot check that deletes the kernel, an e2fsprogs version trap, and a DRAM region that flips bits on its own. From UART to a working homelab.
$ ls engineering/
Practical write-ups about automation, application platforms, package management, and production problems that refuse to stay inside one layer.
A firmware image sliced 220 KB too long, a boot check that deletes the kernel, an e2fsprogs version trap, and a DRAM region that flips bits on its own. From UART to a working homelab.
A CLI that appears frozen is often waiting on DNS, TCP, TLS, authentication, or controller state. A layered runbook for finding which one—without treating a larger timeout as a fix.
which java answers the wrong question. Discover the effective runtime, preserve operator overrides, resolve symlinks, validate the major version, and pass one explicit Java home downstream.
Why pinning an RPM version is not enough, how to separate package transitions from data compatibility, and where an automation run should deliberately stop.
sanitized case studies
delivery / platforms
Replacing project-specific GitLab and Helm logic with reviewable delivery conventions across Kubernetes and OpenShift environments.
public / this site
How this Vue and Fastify site is built, scanned, deployed, measured, and verified as a small production system.
$ git log --author=trpimir
Public repositories cannot show confidential infrastructure, but they do show how I structure code, tests, delivery automation, and operational tooling.