<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>Andrii Zhukovskyi: build log</title>
  <link href="https://zhukovskyi.space/blog/"/>
  <link rel="self" href="https://zhukovskyi.space/blog/feed.xml"/>
  <id>https://zhukovskyi.space/blog/</id>
  <updated>2026-11-09T22:46:04+01:00</updated>
  <author><name>Andrii Zhukovskyi</name><uri>https://zhukovskyi.space/</uri></author>
  <entry>
    <title>Why a Java pod gets OOMKilled in Kubernetes with a half-empty heap</title>
    <link href="https://zhukovskyi.space/blog/jvm-oomkilled-kubernetes/"/>
    <id>https://zhukovskyi.space/blog/jvm-oomkilled-kubernetes/</id>
    <published>2026-11-09T00:00:00Z</published>
    <updated>2026-11-09T22:46:04+01:00</updated>
    <category term="jvm-fit"/>
    <summary>The memory limit covers the whole JVM, not just the heap. Where the rest goes, three container defaults that are easy to get wrong, measured on real JDKs, and how to check a manifest before deploy.</summary>
  </entry>
  <entry>
    <title>FileForge: I stopped uploading my files to random converter sites</title>
    <link href="https://zhukovskyi.space/blog/fileforge/"/>
    <id>https://zhukovskyi.space/blog/fileforge/</id>
    <published>2026-11-01T00:00:00Z</published>
    <updated>2026-11-09T22:46:04+01:00</updated>
    <category term="fileforge"/>
    <summary>HEIC to JPG, a photo under 1 MB, one PDF from three, a JWT decoded: 55 file tools that run in the browser and never upload a file. Free and open source.</summary>
  </entry>
  <entry>
    <title>Why valid Kubernetes YAML still breaks in prod, and how to catch it before deploy</title>
    <link href="https://zhukovskyi.space/blog/kube-tooling-why/"/>
    <id>https://zhukovskyi.space/blog/kube-tooling-why/</id>
    <published>2026-11-01T00:00:00Z</published>
    <updated>2026-11-09T22:46:04+01:00</updated>
    <category term="kubernetes"/>
    <summary>A linter says the manifest is fine, then the deploy fails on a quota, a missing Secret or an immutable selector. What I built to catch that before merge, and what running it on 30 popular Helm charts taught me.</summary>
  </entry>
  <entry>
    <title>Trauma Team is 80% buildable. The missing 20% isn&#x27;t code.</title>
    <link href="https://zhukovskyi.space/blog/health-os-trauma-team/"/>
    <id>https://zhukovskyi.space/blog/health-os-trauma-team/</id>
    <published>2026-10-01T00:00:00Z</published>
    <updated>2026-11-09T22:46:04+01:00</updated>
    <category term="health-os"/>
    <summary>Most of the Cyberpunk medical subscription already exists: pulse-loss detection on watches, implanted monitors, air-ambulance memberships. What&#x27;s missing is an escalation ladder with a human on every rung, and where a personal health record fits in it.</summary>
  </entry>
  <entry>
    <title>Why UsageStatsManager returned no foreground app on a real Android phone</title>
    <link href="https://zhukovskyi.space/blog/focus-sprint-clock-ahead/"/>
    <id>https://zhukovskyi.space/blog/focus-sprint-clock-ahead/</id>
    <published>2026-10-01T00:00:00Z</published>
    <updated>2026-11-09T22:46:04+01:00</updated>
    <category term="focus-sprint"/>
    <summary>An Android app blocker worked on the emulator and did nothing on a real phone. The cause was a usage-stats bucket dated in the future, left by a clock that once ran ahead. Symptom, cause and the query that fixes it.</summary>
  </entry>
  <entry>
    <title>How to stop a user&#x27;s regex from freezing a browser tab, and two other log-viewer traps</title>
    <link href="https://zhukovskyi.space/blog/logbeam-regex-timeout/"/>
    <id>https://zhukovskyi.space/blog/logbeam-regex-timeout/</id>
    <published>2026-09-01T00:00:00Z</published>
    <updated>2026-11-09T22:46:04+01:00</updated>
    <category term="logbeam"/>
    <summary>A bad regex can hang a tab for minutes, masked secrets can still leak their length, and JSON.parse silently changes big IDs. How Logbeam, a log viewer for Chrome and Firefox, handles all three, with the numbers.</summary>
  </entry>
  <entry>
    <title>How to let an LLM read your medical records without trusting it</title>
    <link href="https://zhukovskyi.space/blog/health-os-guardrails/"/>
    <id>https://zhukovskyi.space/blog/health-os-guardrails/</id>
    <published>2026-01-01T00:00:00Z</published>
    <updated>2026-11-09T22:46:04+01:00</updated>
    <category term="health-os"/>
    <summary>Prompts can be argued with, so every safety rule in Health OS is code. How lab results become facts only after approval, when the assistant stops and sends you to a doctor, and the seven red-team tests that check it.</summary>
  </entry>
</feed>
