{
  "version": "https://jsonfeed.org/version/1.1",
  "title": "Alex Budurovici",
  "home_page_url": "https://budurovici.com/",
  "feed_url": "https://budurovici.com/feed.json",
  "description": "Alex Budurovici. Senior Tech Lead and Cloud Architect in Zurich. Platform engineering, SaaS, Cloud and FinOps, IaC.",
  "language": "en",
  "authors": [
    {
      "name": "Alexandru Budurovici",
      "url": "https://budurovici.com/about"
    }
  ],
  "items": [
    {
      "id": "https://budurovici.com/notes/zero-downtime-database-migrations-github-actions",
      "url": "https://budurovici.com/notes/zero-downtime-database-migrations-github-actions",
      "title": "Zero-downtime database migrations with GitHub Actions",
      "summary": "Zero-downtime, rollback-safe database migrations with GitHub Actions. Expand, drain, contract: the schema, queue, and config changes a digest rollback cannot undo.",
      "date_published": "2026-09-04T00:00:00.000Z",
      "date_modified": "2026-09-04T00:00:00.000Z",
      "tags": [
        "cicd",
        "github-actions",
        "aws",
        "postgres",
        "database-migration",
        "expand-contract",
        "zero-downtime",
        "sqs",
        "oidc",
        "automation",
        "platform"
      ]
    },
    {
      "id": "https://budurovici.com/notes/cicd-standardisation-across-application-teams",
      "url": "https://budurovici.com/notes/cicd-standardisation-across-application-teams",
      "title": "CI/CD standardisation across application teams",
      "summary": "Reusable GitHub Actions workflows, Environment-scoped OIDC, and digest promotion so several teams ship without each inventing a private release path.",
      "date_published": "2026-08-29T00:00:00.000Z",
      "date_modified": "2026-08-29T00:00:00.000Z",
      "tags": [
        "cicd",
        "automation",
        "github-actions",
        "jenkins"
      ]
    },
    {
      "id": "https://budurovici.com/notes/terraform-module-patterns-multi-environment",
      "url": "https://budurovici.com/notes/terraform-module-patterns-multi-environment",
      "title": "Terraform module patterns for multi-environment cloud estates",
      "summary": "Reusable Terraform module boundaries, environment composition, state management, and hand-off patterns for repeatable cloud platforms.",
      "date_published": "2026-08-21T00:00:00.000Z",
      "date_modified": "2026-08-23T00:00:00.000Z",
      "tags": [
        "terraform",
        "iac",
        "cloud",
        "aws",
        "azure",
        "gcp",
        "alibaba",
        "multi-cloud",
        "architecture"
      ]
    },
    {
      "id": "https://budurovici.com/notes/how-to-fix-slow-wordpress-admin",
      "url": "https://budurovici.com/notes/how-to-fix-slow-wordpress-admin",
      "title": "Why Is My WordPress Admin Slow? A Technical Diagnosis Guide",
      "summary": "A systematic approach to diagnosing slow WordPress admin. Covers all common causes: plugin outbound HTTP calls, WP_HTTP_BLOCK_EXTERNAL, Heartbeat API, autoloaded options, WP-Cron, PHP version, OPcache, object cache, and slow database queries.",
      "date_published": "2026-08-13T00:00:00.000Z",
      "date_modified": "2026-08-13T00:00:00.000Z",
      "tags": [
        "wordpress",
        "performance"
      ]
    },
    {
      "id": "https://budurovici.com/notes/network-topology-multi-cloud-decision",
      "url": "https://budurovici.com/notes/network-topology-multi-cloud-decision",
      "title": "Multi-Cloud Network Topology Decisions",
      "summary": "Why VPC and VNet models diverge more than any other control across AWS, Azure, GCP, and Alibaba Cloud, and how to decide what to standardise versus what to leave provider-native.",
      "date_published": "2026-08-10T00:00:00.000Z",
      "date_modified": "2026-08-10T00:00:00.000Z",
      "tags": [
        "networking",
        "multi-cloud",
        "aws",
        "azure",
        "gcp",
        "architecture"
      ]
    },
    {
      "id": "https://budurovici.com/notes/rbac-patterns-production-cloud-environments",
      "url": "https://budurovici.com/notes/rbac-patterns-production-cloud-environments",
      "title": "RBAC patterns for production cloud environments",
      "summary": "Role design, automation identities, access review, and break-glass controls for auditable production access across shared cloud estates.",
      "date_published": "2026-08-03T00:00:00.000Z",
      "date_modified": "2026-08-03T00:00:00.000Z",
      "tags": [
        "security",
        "cloud",
        "rbac",
        "aws",
        "azure",
        "architecture",
        "automation"
      ]
    },
    {
      "id": "https://budurovici.com/notes/golden-images-image-hardening-server-baselines",
      "url": "https://budurovici.com/notes/golden-images-image-hardening-server-baselines",
      "title": "Golden Image Architecture for Linux Baselines",
      "summary": "An operating model for Packer golden images: bake vs configure boundaries, promotion pipelines, launch-template enforcement, and automatable hardening checks across AWS, Azure, and GCP.",
      "date_published": "2026-07-27T00:00:00.000Z",
      "date_modified": "2026-07-28T00:00:00.000Z",
      "tags": [
        "packer",
        "security",
        "ansible",
        "linux",
        "aws",
        "azure",
        "iac",
        "architecture",
        "automation"
      ]
    },
    {
      "id": "https://budurovici.com/notes/practical-cloud-cost-optimisation",
      "url": "https://budurovici.com/notes/practical-cloud-cost-optimisation",
      "title": "Practical multi-cloud cost optimisation",
      "summary": "An operating model for right-sizing, reserved capacity, and cost ownership across AWS, Azure, and GCP without compromising production reliability.",
      "date_published": "2026-06-02T00:00:00.000Z",
      "date_modified": "2026-07-25T00:00:00.000Z",
      "tags": [
        "cloud",
        "cost",
        "aws",
        "azure",
        "gcp",
        "finops"
      ]
    },
    {
      "id": "https://budurovici.com/notes/plan-cloud-migration-without-operational-risk",
      "url": "https://budurovici.com/notes/plan-cloud-migration-without-operational-risk",
      "title": "Cloud Migration Without Operational Risk",
      "summary": "A migration operating model for landing zones, ownership boundaries, IaC baselines, cutover planning, and cost control before workloads move to the target cloud.",
      "date_published": "2026-06-01T00:00:00.000Z",
      "date_modified": "2026-06-30T00:00:00.000Z",
      "tags": [
        "cloud",
        "migration",
        "terraform",
        "aws",
        "azure"
      ]
    },
    {
      "id": "https://budurovici.com/notes/block-outgoing-url-calls-with-iptables",
      "url": "https://budurovici.com/notes/block-outgoing-url-calls-with-iptables",
      "title": "Block outgoing URL calls with iptables on Linux",
      "summary": "Use iptables string matching to block specific outbound HTTP paths, understand HTTPS limits, and choose safer egress controls when needed.",
      "date_published": "2021-10-26T00:00:00.000Z",
      "date_modified": "2024-06-01T00:00:00.000Z",
      "tags": [
        "linux",
        "iptables"
      ]
    },
    {
      "id": "https://budurovici.com/notes/wordpress-plugin-slow-admin-outbound-calls",
      "url": "https://budurovici.com/notes/wordpress-plugin-slow-admin-outbound-calls",
      "title": "How a WordPress Plugin Added 16 Seconds to Every Admin Page Load",
      "summary": "A real case: Modern Events Calendar (MEC) was responsible for 28 out of 31 outbound HTTP calls and 16 seconds of additional latency on every WordPress admin request. How it was found and stopped.",
      "date_published": "2020-09-28T00:00:00.000Z",
      "date_modified": "2026-08-13T00:00:00.000Z",
      "tags": [
        "wordpress",
        "performance"
      ]
    },
    {
      "id": "https://budurovici.com/notes/nginx-letsencrypt-and-acme-challenge",
      "url": "https://budurovici.com/notes/nginx-letsencrypt-and-acme-challenge",
      "title": "Serve Let's Encrypt ACME challenges on Nginx",
      "summary": "Fix Nginx 404 errors on .well-known/acme-challenge during Let's Encrypt HTTP-01 validation with webroot config and renewal checks.",
      "date_published": "2019-10-01T00:00:00.000Z",
      "date_modified": "2025-01-15T00:00:00.000Z",
      "tags": [
        "nginx",
        "letsencrypt",
        "ssl",
        "ubuntu"
      ]
    },
    {
      "id": "https://budurovici.com/notes/hardening-wordpress-on-lamp",
      "url": "https://budurovici.com/notes/hardening-wordpress-on-lamp",
      "title": "Hardening WordPress on LAMP (Apache)",
      "summary": "A layered WordPress hardening checklist for Apache on LAMP: SSH, .htaccess, wp-config, uploads, and plugin controls, with Nginx equivalents where useful.",
      "date_published": "2019-09-11T00:00:00.000Z",
      "date_modified": "2024-09-01T00:00:00.000Z",
      "tags": [
        "security",
        "wordpress",
        "linux",
        "apache",
        "lamp"
      ]
    },
    {
      "id": "https://budurovici.com/notes/secured-wordpress-on-ubuntu-18.04-with-nginx",
      "url": "https://budurovici.com/notes/secured-wordpress-on-ubuntu-18.04-with-nginx",
      "title": "Hardened WordPress on Ubuntu 18.04 LEMP",
      "summary": "Deploy a production-ready WordPress LEMP stack on Ubuntu 18.04 with Nginx, MariaDB, PHP, TLS via Let's Encrypt, and baseline hardening controls.",
      "date_published": "2019-08-23T00:00:00.000Z",
      "date_modified": "2024-09-01T00:00:00.000Z",
      "tags": [
        "nginx",
        "wordpress",
        "ssl",
        "ubuntu",
        "php",
        "lemp",
        "linux",
        "mysql",
        "mariadb"
      ]
    },
    {
      "id": "https://budurovici.com/notes/fixing-chef-cluster-issues",
      "url": "https://budurovici.com/notes/fixing-chef-cluster-issues",
      "title": "Fixing Chef cluster issues",
      "summary": "Recover a high-availability Chef cluster when Elasticsearch shard allocation or service health issues block normal Chef Server operation.",
      "date_published": "2018-05-30T00:00:00.000Z",
      "date_modified": "2018-05-30T00:00:00.000Z",
      "tags": [
        "chef",
        "elasticsearch",
        "cluster",
        "linux",
        "aws"
      ]
    },
    {
      "id": "https://budurovici.com/notes/mariadb-docker-utf8",
      "url": "https://budurovici.com/notes/mariadb-docker-utf8",
      "title": "Configuring UTF-8 collation for MySQL or MariaDB on Docker",
      "summary": "Configure MySQL or MariaDB character sets and collations in Docker, verify Unicode storage, and understand durability tradeoffs.",
      "date_published": "2018-05-22T00:00:00.000Z",
      "date_modified": "2024-03-01T00:00:00.000Z",
      "tags": [
        "docker",
        "mysql",
        "mariadb",
        "linux"
      ]
    },
    {
      "id": "https://budurovici.com/notes/installing-mongodb-on-ubuntu-15.04",
      "url": "https://budurovici.com/notes/installing-mongodb-on-ubuntu-15.04",
      "title": "Installing MongoDB on Ubuntu 15.04",
      "summary": "Resolve MongoDB service startup failures on Ubuntu 15.04 during the Upstart-to-systemd transition, with unit files and verification steps.",
      "date_published": "2016-01-13T00:00:00.000Z",
      "date_modified": "2016-01-13T00:00:00.000Z",
      "tags": [
        "ubuntu",
        "mongodb",
        "linux"
      ]
    },
    {
      "id": "https://budurovici.com/notes/excel-utf8-encoding-issue",
      "url": "https://budurovici.com/notes/excel-utf8-encoding-issue",
      "title": "CSV UTF-8 encoding issues in Excel",
      "summary": "Fix CSV UTF-8 encoding corruption in Microsoft Excel with correct import settings, UTF-8 BOM handling, and verification steps.",
      "date_published": "2015-10-09T00:00:00.000Z",
      "date_modified": "2024-01-01T00:00:00.000Z",
      "tags": [
        "encoding",
        "csv",
        "hacks"
      ]
    },
    {
      "id": "https://budurovici.com/notes/marketing-vanity-urls",
      "url": "https://budurovici.com/notes/marketing-vanity-urls",
      "title": "Marketing vanity URLs",
      "summary": "Create trackable vanity URLs for print, QR, and email campaigns with Apache redirects, UTM parameters, and maintainable campaign rules.",
      "date_published": "2015-06-19T00:00:00.000Z",
      "date_modified": "2015-06-19T00:00:00.000Z",
      "tags": [
        "marketing",
        "seo",
        "apache"
      ]
    },
    {
      "id": "https://budurovici.com/notes/avoiding-seo-penalties-for-duplicate-content-on-cloudflare-live-non-cached-subdomains",
      "url": "https://budurovici.com/notes/avoiding-seo-penalties-for-duplicate-content-on-cloudflare-live-non-cached-subdomains",
      "title": "Avoid duplicate-content SEO issues on Cloudflare origin subdomains",
      "summary": "Prevent Cloudflare origin and preview subdomains from creating duplicate-content SEO issues with host-aware robots, canonical URLs, and redirects.",
      "date_published": "2014-10-09T00:00:00.000Z",
      "date_modified": "2025-01-15T00:00:00.000Z",
      "tags": [
        "cloudflare",
        "robots.txt",
        "dns",
        "cdn",
        "google",
        "seo"
      ]
    },
    {
      "id": "https://budurovici.com/notes/git-tips-and-tricks",
      "url": "https://budurovici.com/notes/git-tips-and-tricks",
      "title": "Git tips and tricks",
      "summary": "Practical Git commands for rewriting authors, recovering work, inspecting history, bisecting bugs, and keeping repositories maintainable.",
      "date_published": "2014-02-13T00:00:00.000Z",
      "date_modified": "2024-01-01T00:00:00.000Z",
      "tags": [
        "git"
      ]
    },
    {
      "id": "https://budurovici.com/notes/lazy-loading-images",
      "url": "https://budurovici.com/notes/lazy-loading-images",
      "title": "Lazy loading images with JavaScript",
      "summary": "Use native browser lazy loading first, understand LCP and CLS tradeoffs, and keep JavaScript lazy-loading libraries for legacy cases.",
      "date_published": "2013-11-23T00:00:00.000Z",
      "date_modified": "2013-11-23T00:00:00.000Z",
      "tags": [
        "javascript",
        "jquery"
      ]
    }
  ]
}