{"count":24,"description":"Technical articles by Alex Khaerov on cloud infrastructure, platform engineering, Kubernetes, DevOps, AI-driven automation, and engineering leadership.","items":[{"date":"2026-06-11T00:00:00Z","description":"How LinearMouse ended my twice-a-day natural-scrolling toggle ritual between a desk mouse and the MacBook trackpad.","json_url":"https://hayorov.me/posts/macos-scroll-direction-linearmouse/index.json","lastmod":"2026-06-11T18:37:29+08:00","markdown_url":"https://hayorov.me/posts/macos-scroll-direction-linearmouse/index.md","reading_time_minutes":3,"tags":["macos","productivity","tools"],"title":"Two Devices, One Scroll Setting: Fixing a Decade-Old macOS Annoyance","url":"https://hayorov.me/posts/macos-scroll-direction-linearmouse/","word_count":485},{"date":"2026-04-13T00:00:00Z","description":"Part two of the Riverside upgrade — replacing the stock B'Twin square-taper crankset and bottom bracket with a Shimano CUES 1x setup for smoother shifting and a cleaner chainline.","json_url":"https://hayorov.me/posts/riverside-commuter-shimano-cues-drivetrain/index.json","lastmod":"2026-04-14T00:49:31+08:00","markdown_url":"https://hayorov.me/posts/riverside-commuter-shimano-cues-drivetrain/index.md","reading_time_minutes":4,"tags":["cycling","gear","diy"],"title":"Riverside Commuter: Shimano CUES Drivetrain Swap","url":"https://hayorov.me/posts/riverside-commuter-shimano-cues-drivetrain/","word_count":780},{"date":"2026-03-29T00:00:00Z","description":"Upgrading a Decathlon Riverside hybrid with a TOSEEK carbon rigid fork — ditching the heavy suspension for a lighter, stiffer commute.","json_url":"https://hayorov.me/posts/riverside-commuter-rigid-fork-swap/index.json","lastmod":"2026-04-14T01:12:05+08:00","markdown_url":"https://hayorov.me/posts/riverside-commuter-rigid-fork-swap/index.md","reading_time_minutes":3,"tags":["cycling","gear","diy"],"title":"Riverside Commuter: Rigid Fork Swap","url":"https://hayorov.me/posts/riverside-commuter-rigid-fork-swap/","word_count":603},{"date":"2026-03-18T00:00:00Z","description":"My interview with Frontier Enterprise on cloud evolution at Prudential — from lift-and-shift through multi-cloud to the omni-cloud model, and why platform engineering is the only way to scale.","json_url":"https://hayorov.me/posts/frontier-enterprise-omni-cloud-2026/index.json","lastmod":"2026-04-14T01:12:05+08:00","markdown_url":"https://hayorov.me/posts/frontier-enterprise-omni-cloud-2026/index.md","reading_time_minutes":4,"tags":["cloud","platform-engineering","multi-cloud","interview"],"title":"From Lift-and-Shift to Omni-Cloud: My Conversation with Frontier Enterprise","url":"https://hayorov.me/posts/frontier-enterprise-omni-cloud-2026/","word_count":664},{"date":"2026-03-08T00:00:00Z","description":"The mechanical keyboard scene passed its peak. Some thoughts on the market, why hardware is brutal, and why you should maybe grab a Monokei Standard for 50 bucks.","json_url":"https://hayorov.me/posts/mechanical-keyboards-after-the-hype/index.json","lastmod":"2026-04-14T01:12:05+08:00","markdown_url":"https://hayorov.me/posts/mechanical-keyboards-after-the-hype/index.md","reading_time_minutes":4,"tags":["keyboards","hardware","engineering","review"],"title":"Mechanical Keyboards After the Hype","url":"https://hayorov.me/posts/mechanical-keyboards-after-the-hype/","word_count":660},{"date":"2026-03-01T00:00:00Z","description":"Why Stategraph is a solid execution improvement — not a Terraform replacement — and why IaC isn't going anywhere despite what the hype cycle says.","json_url":"https://hayorov.me/posts/stategraph-terraform-infra-myths/index.json","lastmod":"2026-04-14T01:12:05+08:00","markdown_url":"https://hayorov.me/posts/stategraph-terraform-infra-myths/index.md","reading_time_minutes":5,"tags":["terraform","infrastructure","iac","platform-engineering"],"title":"Stategraph, 'Terraform Is Dead,' and Other Infra Myths That Won't Die","url":"https://hayorov.me/posts/stategraph-terraform-infra-myths/","word_count":996},{"date":"2026-02-19T00:00:00Z","description":"Practical comparison of Herman Miller Mirra 1 alternatives in 2026, covering premium, mid-range, and budget ergonomic chairs.","json_url":"https://hayorov.me/posts/mirra-1-alternatives-2026/index.json","lastmod":"2026-04-14T01:12:05+08:00","markdown_url":"https://hayorov.me/posts/mirra-1-alternatives-2026/index.md","reading_time_minutes":6,"tags":["ergonomics","review","workspace"],"title":"Mirra 1 Alternatives in 2026","url":"https://hayorov.me/posts/mirra-1-alternatives-2026/","word_count":1200},{"date":"2026-02-16T00:00:00Z","description":"What actually makes multi-cloud architectures resilient: deliberate design, boring automation, tested failovers — and the honesty to keep most workloads on one cloud.","json_url":"https://hayorov.me/posts/resilient-multi-cloud-architectures/index.json","lastmod":"2026-06-11T18:37:29+08:00","markdown_url":"https://hayorov.me/posts/resilient-multi-cloud-architectures/index.md","reading_time_minutes":5,"tags":["multi-cloud","kubernetes","architecture","devops"],"title":"Multi-Cloud Resilience, Minus the Buzzwords","url":"https://hayorov.me/posts/resilient-multi-cloud-architectures/","word_count":989},{"date":"2026-02-13T00:00:00Z","description":"Where AI-driven cloud cost optimization actually helps — anomaly detection, forecasting, rightsizing — and where you should keep your hands on the wheel.","json_url":"https://hayorov.me/posts/ai-cloud-cost-optimization/index.json","lastmod":"2026-06-11T18:37:29+08:00","markdown_url":"https://hayorov.me/posts/ai-cloud-cost-optimization/index.md","reading_time_minutes":5,"tags":["cloud","finops","ai","cost-optimization"],"title":"AI Is Taking Over the Boring Half of FinOps","url":"https://hayorov.me/posts/ai-cloud-cost-optimization/","word_count":904},{"date":"2026-02-09T00:00:00Z","description":"An opinionated take on choosing between AWS, Azure, and GCP for enterprise-scale deployment — and why the honest answer is usually about your org, not the platform.","json_url":"https://hayorov.me/posts/best-cloud-platforms-enterprise-scale-deployment/index.json","lastmod":"2026-06-11T18:37:29+08:00","markdown_url":"https://hayorov.me/posts/best-cloud-platforms-enterprise-scale-deployment/index.md","reading_time_minutes":4,"tags":["cloud","enterprise","architecture"],"title":"AWS, Azure, or GCP: How I Think About the Enterprise Cloud Question","url":"https://hayorov.me/posts/best-cloud-platforms-enterprise-scale-deployment/","word_count":772},{"date":"2026-02-07T00:00:00Z","description":"A practitioner's view on legacy modernization: strangler figs, hybrid bridges, and why the big-bang rewrite is almost always the wrong answer.","json_url":"https://hayorov.me/posts/cloud-native-legacy-modernization/index.json","lastmod":"2026-06-11T18:37:29+08:00","markdown_url":"https://hayorov.me/posts/cloud-native-legacy-modernization/index.md","reading_time_minutes":4,"tags":["cloud-native","architecture","modernization"],"title":"Modernizing Legacy Systems Without Burning the House Down","url":"https://hayorov.me/posts/cloud-native-legacy-modernization/","word_count":844},{"date":"2026-02-05T00:00:00Z","description":"Step-by-step guide to setting up CI/CD pipelines with Tekton on Kubernetes, covering Tasks, Pipelines, and security scanning.","json_url":"https://hayorov.me/posts/tekton-cicd-pipeline-guide/index.json","lastmod":"2026-04-14T01:12:05+08:00","markdown_url":"https://hayorov.me/posts/tekton-cicd-pipeline-guide/index.md","reading_time_minutes":11,"tags":["tekton","kubernetes","cicd","devops"],"title":"Step-by-Step: Setting Up a CI/CD Pipeline Using Tekton","url":"https://hayorov.me/posts/tekton-cicd-pipeline-guide/","word_count":2286},{"date":"2025-07-12T00:00:00Z","description":"What fast-food order screens reveal about broken observability in engineering, and how to build dashboards that actually help.","json_url":"https://hayorov.me/posts/observability-fastfood-dashboard/index.json","lastmod":"2026-04-14T01:12:05+08:00","markdown_url":"https://hayorov.me/posts/observability-fastfood-dashboard/index.md","reading_time_minutes":4,"tags":["observability","devops","engineering-culture"],"title":"What Fast-Food Order Screens Can Teach Us About Broken Observability","url":"https://hayorov.me/posts/observability-fastfood-dashboard/","word_count":698},{"date":"2025-06-22T00:00:00Z","description":"Real-world speed test of China Southern Airlines in-flight Wi-Fi on Shanghai to Singapore route. Usable for lightweight tasks.","json_url":"https://hayorov.me/posts/inflight-internet-test-2025/index.json","lastmod":"2026-02-20T12:15:12+08:00","markdown_url":"https://hayorov.me/posts/inflight-internet-test-2025/index.md","reading_time_minutes":2,"tags":["travel","review"],"title":"In-Flight Internet Reality Check (2025): China Southern Airlines — Shanghai to Singapore","url":"https://hayorov.me/posts/inflight-internet-test-2025/","word_count":227},{"date":"2024-06-15T00:00:00Z","description":"A decade-long review of the Herman Miller Mirra 1 ergonomic chair covering durability, mesh replacement, and long-term value.","json_url":"https://hayorov.me/posts/my-favorite-chair-24/index.json","lastmod":"2026-04-14T00:58:42+08:00","markdown_url":"https://hayorov.me/posts/my-favorite-chair-24/index.md","reading_time_minutes":3,"tags":["ergonomics","review","workspace"],"title":"My Favorite Chair: Herman Miller Mirra 1","url":"https://hayorov.me/posts/my-favorite-chair-24/","word_count":566},{"date":"2024-06-13T00:00:00Z","description":"Internal Developer Platforms vs Infrastructure Developer Platforms: differences, similarities, and roles in modern platform engineering.","json_url":"https://hayorov.me/posts/idps-part1/index.json","lastmod":"2026-04-14T01:12:05+08:00","markdown_url":"https://hayorov.me/posts/idps-part1/index.md","reading_time_minutes":3,"tags":["platform-engineering","devops","idp"],"title":"Part 1 | IDPs: What Comes to Your Mind?","url":"https://hayorov.me/posts/idps-part1/","word_count":590},{"date":"2021-11-26T00:00:00Z","description":"Wahoo GPS and headlight mounting setup for Canyon CF10 aero cockpit with carbon computer mount.","json_url":"https://hayorov.me/posts/canyon-cf10cockpit-mount/index.json","lastmod":"2026-04-14T01:12:05+08:00","markdown_url":"https://hayorov.me/posts/canyon-cf10cockpit-mount/index.md","reading_time_minutes":1,"tags":["cycling","gear"],"title":"Canyon CF10 Cockpit gear","url":"https://hayorov.me/posts/canyon-cf10cockpit-mount/","word_count":161},{"date":"2021-09-04T00:00:00Z","description":"DIY 3D-printed Lezyne GPS mount for Canyon aero handlebars with GoPro-compatible quick release. Free STL download.","json_url":"https://hayorov.me/posts/canyon-lezynegps-mount/index.json","lastmod":"2026-04-14T01:12:05+08:00","markdown_url":"https://hayorov.me/posts/canyon-lezynegps-mount/index.md","reading_time_minutes":1,"tags":["cycling","diy","3d-printing"],"title":"DIY Lezyne mount for Canyon handlebar","url":"https://hayorov.me/posts/canyon-lezynegps-mount/","word_count":74},{"date":"2020-05-02T00:00:00Z","description":"Python coding challenge: normalize table row lengths by filling missing labels with null values.","json_url":"https://hayorov.me/posts/for-all-rows/index.json","lastmod":"2026-04-14T01:12:05+08:00","markdown_url":"https://hayorov.me/posts/for-all-rows/index.md","reading_time_minutes":1,"tags":["python","coding-challenge"],"title":"Challenge #1: Modify a table data","url":"https://hayorov.me/posts/for-all-rows/","word_count":108},{"date":"2020-05-01T00:00:00Z","description":"Photo gallery of COVID-19 safety signs spotted across Singapore during the 2020 pandemic.","json_url":"https://hayorov.me/posts/covid-signs/index.json","lastmod":"2026-02-20T12:15:12+08:00","markdown_url":"https://hayorov.me/posts/covid-signs/index.md","reading_time_minutes":1,"tags":["singapore","photography"],"title":"Singapore Covid-19 Signs","url":"https://hayorov.me/posts/covid-signs/","word_count":17},{"date":"2020-03-13T00:00:00Z","description":"Custom laptop sticker pack created for the Tekton CI/CD workshop at FOSSASIA Summit 2020.","json_url":"https://hayorov.me/posts/tekton-memes-sticker-pack/index.json","lastmod":"2026-04-14T01:12:05+08:00","markdown_url":"https://hayorov.me/posts/tekton-memes-sticker-pack/index.md","reading_time_minutes":1,"tags":["tekton","conference"],"title":"Special laptop sticker pack for my tekton workshop","url":"https://hayorov.me/posts/tekton-memes-sticker-pack/","word_count":41},{"date":"2020-03-05T00:00:00Z","description":"Workshop on cloud-native CI/CD pipelines with Tekton at FOSSASIA Summit 2020 in Singapore.","json_url":"https://hayorov.me/posts/fossasia-summit-2020/index.json","lastmod":"2026-04-14T01:12:05+08:00","markdown_url":"https://hayorov.me/posts/fossasia-summit-2020/index.md","reading_time_minutes":1,"tags":["tekton","kubernetes","cicd","conference"],"title":"Cloud-native pipelines with Tekton","url":"https://hayorov.me/posts/fossasia-summit-2020/","word_count":79},{"date":"2020-02-17T00:00:00Z","description":"kubelive is a reactive, interactive kubectl tool built with React for live Kubernetes cluster monitoring and pod management.","json_url":"https://hayorov.me/posts/kubelive/index.json","lastmod":"2026-04-14T01:12:05+08:00","markdown_url":"https://hayorov.me/posts/kubelive/index.md","reading_time_minutes":1,"tags":["kubernetes","devops","tools"],"title":"kubectl tool reinvented to be more reactive and interactive","url":"https://hayorov.me/posts/kubelive/","word_count":55},{"date":"2020-02-09T00:00:00Z","description":"First post on Alex Khaerov's personal blog.","json_url":"https://hayorov.me/posts/hello-world/index.json","lastmod":"2026-02-20T12:15:12+08:00","markdown_url":"https://hayorov.me/posts/hello-world/index.md","reading_time_minutes":0,"tags":["blog"],"title":"Hello World","url":"https://hayorov.me/posts/hello-world/","word_count":0}],"language":"en","markdown_url":"https://hayorov.me/posts/index.md","title":"Blog Posts","type":"section","url":"https://hayorov.me/posts/"}