{"links":[{"source":"root","target":"tag-adb"},{"source":"root","target":"tag-ai"},{"source":"root","target":"tag-algorithms"},{"source":"root","target":"tag-android"},{"source":"root","target":"tag-api-design"},{"source":"root","target":"tag-architecture"},{"source":"root","target":"tag-audio"},{"source":"root","target":"tag-aws"},{"source":"root","target":"tag-backend"},{"source":"root","target":"tag-bash"},{"source":"root","target":"tag-billing"},{"source":"root","target":"tag-browser"},{"source":"root","target":"tag-c"},{"source":"root","target":"tag-c++"},{"source":"root","target":"tag-caching"},{"source":"root","target":"tag-censorship"},{"source":"root","target":"tag-clickhouse"},{"source":"root","target":"tag-cloud"},{"source":"root","target":"tag-cloudflare"},{"source":"root","target":"tag-code"},{"source":"root","target":"tag-coding"},{"source":"root","target":"tag-concurrency"},{"source":"root","target":"tag-containers"},{"source":"root","target":"tag-core-web-vitals"},{"source":"root","target":"tag-couchbase"},{"source":"root","target":"tag-cron"},{"source":"root","target":"tag-cryptography"},{"source":"root","target":"tag-cs"},{"source":"root","target":"tag-cybersecurity"},{"source":"root","target":"tag-dart"},{"source":"root","target":"tag-data-structures"},{"source":"root","target":"tag-database"},{"source":"root","target":"tag-database-internals"},{"source":"root","target":"tag-development"},{"source":"root","target":"tag-devops"},{"source":"root","target":"tag-distributed-systems"},{"source":"root","target":"tag-docker"},{"source":"root","target":"tag-docker-compose"},{"source":"root","target":"tag-dx"},{"source":"root","target":"tag-ecs"},{"source":"root","target":"tag-embeddings"},{"source":"root","target":"tag-engineering"},{"source":"root","target":"tag-frontend"},{"source":"root","target":"tag-game-engine"},{"source":"root","target":"tag-git"},{"source":"root","target":"tag-go"},{"source":"root","target":"tag-golang"},{"source":"root","target":"tag-hardware"},{"source":"root","target":"tag-http"},{"source":"root","target":"tag-hugo"},{"source":"root","target":"tag-humor"},{"source":"root","target":"tag-indexing"},{"source":"root","target":"tag-infrastructure"},{"source":"root","target":"tag-infrastructure-as-code"},{"source":"root","target":"tag-internals"},{"source":"root","target":"tag-javascript"},{"source":"root","target":"tag-job-scheduler"},{"source":"root","target":"tag-kubernetes"},{"source":"root","target":"tag-lighthouse"},{"source":"root","target":"tag-linux"},{"source":"root","target":"tag-llm"},{"source":"root","target":"tag-macos"},{"source":"root","target":"tag-math"},{"source":"root","target":"tag-memory"},{"source":"root","target":"tag-microservices"},{"source":"root","target":"tag-ml"},{"source":"root","target":"tag-multi-tenancy"},{"source":"root","target":"tag-networking"},{"source":"root","target":"tag-nextcloud"},{"source":"root","target":"tag-nginx"},{"source":"root","target":"tag-nodejs"},{"source":"root","target":"tag-note-taking"},{"source":"root","target":"tag-observability"},{"source":"root","target":"tag-online-security"},{"source":"root","target":"tag-open-source"},{"source":"root","target":"tag-optimization"},{"source":"root","target":"tag-payments"},{"source":"root","target":"tag-performance"},{"source":"root","target":"tag-personal"},{"source":"root","target":"tag-postgres"},{"source":"root","target":"tag-postgresql"},{"source":"root","target":"tag-privacy-protection"},{"source":"root","target":"tag-productivity"},{"source":"root","target":"tag-profiling"},{"source":"root","target":"tag-programming"},{"source":"root","target":"tag-python"},{"source":"root","target":"tag-query-optimization"},{"source":"root","target":"tag-rate-limiting"},{"source":"root","target":"tag-raylib"},{"source":"root","target":"tag-reading-list"},{"source":"root","target":"tag-redis"},{"source":"root","target":"tag-refactoring"},{"source":"root","target":"tag-regex"},{"source":"root","target":"tag-reliability"},{"source":"root","target":"tag-rest"},{"source":"root","target":"tag-runtime"},{"source":"root","target":"tag-saas"},{"source":"root","target":"tag-scalability"},{"source":"root","target":"tag-search"},{"source":"root","target":"tag-security"},{"source":"root","target":"tag-self-hosted"},{"source":"root","target":"tag-serverless"},{"source":"root","target":"tag-snippets"},{"source":"root","target":"tag-software-engineering"},{"source":"root","target":"tag-sql"},{"source":"root","target":"tag-system-design"},{"source":"root","target":"tag-systems-design"},{"source":"root","target":"tag-systems-programming"},{"source":"root","target":"tag-systems-thinking"},{"source":"root","target":"tag-terraform"},{"source":"root","target":"tag-thoughts"},{"source":"root","target":"tag-tools"},{"source":"root","target":"tag-troubleshooting"},{"source":"root","target":"tag-vector-database"},{"source":"root","target":"tag-vpn"},{"source":"root","target":"tag-web"},{"source":"root","target":"tag-web development"},{"source":"root","target":"tag-web-performance"},{"source":"root","target":"tag-webhooks"},{"source":"root","target":"tag-wifi"},{"source":"root","target":"tag-windows"},{"source":"root","target":"tag-windows 10"},{"source":"root","target":"tag-workflow"},{"source":"root","target":"tag-writing"},{"source":"root","target":"tag-wsl"},{"source":"root","target":"tag-wsl2"},{"source":"root","target":"cat-ai"},{"source":"root","target":"cat-architecture"},{"source":"root","target":"cat-clean code"},{"source":"root","target":"cat-cloud"},{"source":"root","target":"cat-concepts"},{"source":"root","target":"cat-data-platforms"},{"source":"root","target":"cat-deep-dive"},{"source":"root","target":"cat-engineering"},{"source":"root","target":"cat-fundamentals"},{"source":"root","target":"cat-guide"},{"source":"root","target":"cat-infrastructure"},{"source":"root","target":"cat-personal"},{"source":"root","target":"cat-productivity"},{"source":"root","target":"cat-projects"},{"source":"root","target":"cat-resources"},{"source":"root","target":"cat-tooling"},{"source":"root","target":"cat-tools"},{"source":"root","target":"cat-tutorial"},{"source":"root","target":"ser-building a game engine in pure go"},{"source":"root","target":"ser-deep dive"},{"source":"root","target":"ser-infrastructure automation"},{"source":"root","target":"ser-postgresql"},{"source":"root","target":"ser-projects"},{"source":"root","target":"ser-relay"},{"source":"root","target":"ser-the backend engineer's playbook"},{"source":"root","target":"ser-the search systems handbook"},{"source":"root","target":"ser-web performance architecture"},{"source":"/go-channels-deep-dive/","target":"tag-go"},{"source":"/go-channels-deep-dive/","target":"tag-concurrency"},{"source":"/go-channels-deep-dive/","target":"tag-runtime"},{"source":"/go-channels-deep-dive/","target":"tag-memory"},{"source":"/go-channels-deep-dive/","target":"tag-architecture"},{"source":"/go-channels-deep-dive/","target":"cat-engineering"},{"source":"/go-channels-deep-dive/","target":"cat-deep-dive"},{"source":"/go-channels-deep-dive/","target":"ser-the-backend-engineers-playbook"},{"source":"/modular-missions-floodfill-audio-raylib/","target":"tag-go"},{"source":"/modular-missions-floodfill-audio-raylib/","target":"tag-systems-programming"},{"source":"/modular-missions-floodfill-audio-raylib/","target":"tag-game-engine"},{"source":"/modular-missions-floodfill-audio-raylib/","target":"tag-algorithms"},{"source":"/modular-missions-floodfill-audio-raylib/","target":"tag-audio"},{"source":"/modular-missions-floodfill-audio-raylib/","target":"cat-engineering"},{"source":"/modular-missions-floodfill-audio-raylib/","target":"ser-building-a-game-engine-in-pure-go"},{"source":"/designing-a-distributed-job-scheduler/","target":"tag-system-design"},{"source":"/designing-a-distributed-job-scheduler/","target":"tag-distributed-systems"},{"source":"/designing-a-distributed-job-scheduler/","target":"tag-go"},{"source":"/designing-a-distributed-job-scheduler/","target":"tag-cron"},{"source":"/designing-a-distributed-job-scheduler/","target":"tag-job-scheduler"},{"source":"/designing-a-distributed-job-scheduler/","target":"tag-postgresql"},{"source":"/designing-a-distributed-job-scheduler/","target":"tag-backend"},{"source":"/designing-a-distributed-job-scheduler/","target":"tag-architecture"},{"source":"/designing-a-distributed-job-scheduler/","target":"cat-engineering"},{"source":"/autotiling-sprites-font-fallbacks-raylib/","target":"tag-go"},{"source":"/autotiling-sprites-font-fallbacks-raylib/","target":"tag-systems-programming"},{"source":"/autotiling-sprites-font-fallbacks-raylib/","target":"tag-game-engine"},{"source":"/autotiling-sprites-font-fallbacks-raylib/","target":"tag-raylib"},{"source":"/autotiling-sprites-font-fallbacks-raylib/","target":"tag-algorithms"},{"source":"/autotiling-sprites-font-fallbacks-raylib/","target":"cat-engineering"},{"source":"/autotiling-sprites-font-fallbacks-raylib/","target":"ser-building-a-game-engine-in-pure-go"},{"source":"/structure-of-arrays-ecs-bitmasks-golang/","target":"tag-go"},{"source":"/structure-of-arrays-ecs-bitmasks-golang/","target":"tag-systems-programming"},{"source":"/structure-of-arrays-ecs-bitmasks-golang/","target":"tag-game-engine"},{"source":"/structure-of-arrays-ecs-bitmasks-golang/","target":"tag-ecs"},{"source":"/structure-of-arrays-ecs-bitmasks-golang/","target":"cat-engineering"},{"source":"/structure-of-arrays-ecs-bitmasks-golang/","target":"ser-building-a-game-engine-in-pure-go"},{"source":"/designing-a-usage-based-billing-pipeline-for-saas/","target":"tag-billing"},{"source":"/designing-a-usage-based-billing-pipeline-for-saas/","target":"tag-payments"},{"source":"/designing-a-usage-based-billing-pipeline-for-saas/","target":"tag-webhooks"},{"source":"/designing-a-usage-based-billing-pipeline-for-saas/","target":"tag-saas"},{"source":"/designing-a-usage-based-billing-pipeline-for-saas/","target":"tag-system-design"},{"source":"/designing-a-usage-based-billing-pipeline-for-saas/","target":"tag-backend"},{"source":"/designing-a-usage-based-billing-pipeline-for-saas/","target":"tag-architecture"},{"source":"/designing-a-usage-based-billing-pipeline-for-saas/","target":"cat-engineering"},{"source":"/designing-a-usage-based-billing-pipeline-for-saas/","target":"ser-relay"},{"source":"/designing-a-usage-based-billing-pipeline-for-saas/","target":"ser-the-backend-engineers-playbook"},{"source":"/couchbase-index-best-practices-performance-tuning/","target":"tag-couchbase"},{"source":"/couchbase-index-best-practices-performance-tuning/","target":"tag-database"},{"source":"/couchbase-index-best-practices-performance-tuning/","target":"tag-indexing"},{"source":"/couchbase-index-best-practices-performance-tuning/","target":"tag-performance"},{"source":"/couchbase-index-best-practices-performance-tuning/","target":"tag-query-optimization"},{"source":"/couchbase-index-best-practices-performance-tuning/","target":"tag-sql"},{"source":"/couchbase-index-best-practices-performance-tuning/","target":"tag-backend"},{"source":"/couchbase-index-best-practices-performance-tuning/","target":"cat-engineering"},{"source":"/couchbase-index-best-practices-performance-tuning/","target":"cat-data-platforms"},{"source":"/couchbase-index-best-practices-performance-tuning/","target":"ser-deep-dive"},{"source":"/couchbase-index-best-practices-performance-tuning/","target":"ser-the-backend-engineers-playbook"},{"source":"/api-design-for-backend-systems/","target":"tag-api-design"},{"source":"/api-design-for-backend-systems/","target":"tag-rest"},{"source":"/api-design-for-backend-systems/","target":"tag-http"},{"source":"/api-design-for-backend-systems/","target":"tag-backend"},{"source":"/api-design-for-backend-systems/","target":"tag-system-design"},{"source":"/api-design-for-backend-systems/","target":"tag-architecture"},{"source":"/api-design-for-backend-systems/","target":"tag-security"},{"source":"/api-design-for-backend-systems/","target":"cat-engineering"},{"source":"/api-design-for-backend-systems/","target":"ser-relay"},{"source":"/api-design-for-backend-systems/","target":"ser-the-backend-engineers-playbook"},{"source":"/cache-driven-development/","target":"tag-database"},{"source":"/cache-driven-development/","target":"tag-performance"},{"source":"/cache-driven-development/","target":"tag-caching"},{"source":"/cache-driven-development/","target":"tag-systems-thinking"},{"source":"/cache-driven-development/","target":"tag-scalability"},{"source":"/cache-driven-development/","target":"tag-backend"},{"source":"/cache-driven-development/","target":"cat-engineering"},{"source":"/cache-driven-development/","target":"cat-concepts"},{"source":"/cache-driven-development/","target":"ser-the-backend-engineers-playbook"},{"source":"/designing-a-rate-limiter/","target":"tag-system-design"},{"source":"/designing-a-rate-limiter/","target":"tag-rate-limiting"},{"source":"/designing-a-rate-limiter/","target":"tag-redis"},{"source":"/designing-a-rate-limiter/","target":"tag-distributed-systems"},{"source":"/designing-a-rate-limiter/","target":"tag-backend"},{"source":"/designing-a-rate-limiter/","target":"tag-architecture"},{"source":"/designing-a-rate-limiter/","target":"cat-engineering"},{"source":"/how-multi-tenant-saas-works/","target":"tag-system-design"},{"source":"/how-multi-tenant-saas-works/","target":"tag-saas"},{"source":"/how-multi-tenant-saas-works/","target":"tag-multi-tenancy"},{"source":"/how-multi-tenant-saas-works/","target":"tag-architecture"},{"source":"/how-multi-tenant-saas-works/","target":"tag-database"},{"source":"/how-multi-tenant-saas-works/","target":"tag-backend"},{"source":"/how-multi-tenant-saas-works/","target":"tag-ai"},{"source":"/how-multi-tenant-saas-works/","target":"cat-engineering"},{"source":"/how-multi-tenant-saas-works/","target":"ser-relay"},{"source":"/how-multi-tenant-saas-works/","target":"ser-the-backend-engineers-playbook"},{"source":"/nobody-will-read-this/","target":"tag-personal"},{"source":"/nobody-will-read-this/","target":"tag-writing"},{"source":"/nobody-will-read-this/","target":"cat-personal"},{"source":"/what-is-dry/","target":"tag-programming"},{"source":"/what-is-dry/","target":"tag-software-engineering"},{"source":"/what-is-dry/","target":"tag-humor"},{"source":"/what-is-dry/","target":"tag-personal"},{"source":"/what-is-dry/","target":"cat-personal"},{"source":"/so-we-are-writing-efficient-software-again/","target":"tag-performance"},{"source":"/so-we-are-writing-efficient-software-again/","target":"tag-hardware"},{"source":"/so-we-are-writing-efficient-software-again/","target":"tag-software-engineering"},{"source":"/so-we-are-writing-efficient-software-again/","target":"tag-systems-thinking"},{"source":"/so-we-are-writing-efficient-software-again/","target":"cat-engineering"},{"source":"/so-we-are-writing-efficient-software-again/","target":"ser-the-backend-engineers-playbook"},{"source":"/constructing-concurrent-inverted-indexes-in-go/","target":"tag-go"},{"source":"/constructing-concurrent-inverted-indexes-in-go/","target":"tag-search"},{"source":"/constructing-concurrent-inverted-indexes-in-go/","target":"tag-concurrency"},{"source":"/constructing-concurrent-inverted-indexes-in-go/","target":"tag-performance"},{"source":"/constructing-concurrent-inverted-indexes-in-go/","target":"tag-systems-thinking"},{"source":"/constructing-concurrent-inverted-indexes-in-go/","target":"tag-data-structures"},{"source":"/constructing-concurrent-inverted-indexes-in-go/","target":"cat-engineering"},{"source":"/constructing-concurrent-inverted-indexes-in-go/","target":"ser-the-search-systems-handbook"},{"source":"/love-letter-to-the-l1-cache/","target":"tag-go"},{"source":"/love-letter-to-the-l1-cache/","target":"tag-performance"},{"source":"/love-letter-to-the-l1-cache/","target":"tag-systems-thinking"},{"source":"/love-letter-to-the-l1-cache/","target":"tag-hardware"},{"source":"/love-letter-to-the-l1-cache/","target":"cat-engineering"},{"source":"/love-letter-to-the-l1-cache/","target":"ser-the-backend-engineers-playbook"},{"source":"/til/2026-06-15-wireless-adb-over-wifi/","target":"tag-android"},{"source":"/til/2026-06-15-wireless-adb-over-wifi/","target":"tag-adb"},{"source":"/til/2026-06-15-wireless-adb-over-wifi/","target":"tag-wifi"},{"source":"/til/2026-06-15-wireless-adb-over-wifi/","target":"tag-troubleshooting"},{"source":"/til/2026-06-15-wireless-adb-over-wifi/","target":"cat-engineering"},{"source":"/why-explaining-technical-difficulty-is-hard/","target":"tag-engineering"},{"source":"/why-explaining-technical-difficulty-is-hard/","target":"tag-systems-thinking"},{"source":"/why-explaining-technical-difficulty-is-hard/","target":"tag-architecture"},{"source":"/why-explaining-technical-difficulty-is-hard/","target":"tag-performance"},{"source":"/why-explaining-technical-difficulty-is-hard/","target":"cat-engineering"},{"source":"/why-explaining-technical-difficulty-is-hard/","target":"ser-the-backend-engineers-playbook"},{"source":"/just-about-go-time/","target":"tag-golang"},{"source":"/just-about-go-time/","target":"tag-postgresql"},{"source":"/just-about-go-time/","target":"tag-database"},{"source":"/just-about-go-time/","target":"tag-architecture"},{"source":"/just-about-go-time/","target":"cat-engineering"},{"source":"/just-about-go-time/","target":"ser-the-backend-engineers-playbook"},{"source":"/building-a-poor-document-store-inside-postgresql/","target":"tag-postgresql"},{"source":"/building-a-poor-document-store-inside-postgresql/","target":"tag-database-internals"},{"source":"/building-a-poor-document-store-inside-postgresql/","target":"tag-performance"},{"source":"/building-a-poor-document-store-inside-postgresql/","target":"tag-systems-design"},{"source":"/building-a-poor-document-store-inside-postgresql/","target":"cat-engineering"},{"source":"/building-a-poor-document-store-inside-postgresql/","target":"ser-postgresql"},{"source":"/postgresql-migrations-in-go-production-schema-patterns-with-goose/","target":"tag-postgresql"},{"source":"/postgresql-migrations-in-go-production-schema-patterns-with-goose/","target":"tag-golang"},{"source":"/postgresql-migrations-in-go-production-schema-patterns-with-goose/","target":"tag-database"},{"source":"/postgresql-migrations-in-go-production-schema-patterns-with-goose/","target":"cat-engineering"},{"source":"/postgresql-migrations-in-go-production-schema-patterns-with-goose/","target":"ser-postgresql"},{"source":"/cloudflare-management-with-terraform/","target":"tag-cloudflare"},{"source":"/cloudflare-management-with-terraform/","target":"tag-terraform"},{"source":"/cloudflare-management-with-terraform/","target":"tag-infrastructure-as-code"},{"source":"/cloudflare-management-with-terraform/","target":"tag-devops"},{"source":"/cloudflare-management-with-terraform/","target":"cat-engineering"},{"source":"/cloudflare-management-with-terraform/","target":"ser-infrastructure-automation"},{"source":"/cloudflare-management-with-terraform/","target":"ser-projects"},{"source":"/critical-rendering-path-optimization-8-proven-strategies-to-boost-web-performance/","target":"tag-browser"},{"source":"/critical-rendering-path-optimization-8-proven-strategies-to-boost-web-performance/","target":"tag-web-performance"},{"source":"/critical-rendering-path-optimization-8-proven-strategies-to-boost-web-performance/","target":"tag-optimization"},{"source":"/critical-rendering-path-optimization-8-proven-strategies-to-boost-web-performance/","target":"tag-frontend"},{"source":"/critical-rendering-path-optimization-8-proven-strategies-to-boost-web-performance/","target":"cat-engineering"},{"source":"/critical-rendering-path-optimization-8-proven-strategies-to-boost-web-performance/","target":"ser-web-performance-architecture"},{"source":"/a-tale-of-web-vitals/","target":"tag-hugo"},{"source":"/a-tale-of-web-vitals/","target":"tag-web-performance"},{"source":"/a-tale-of-web-vitals/","target":"tag-lighthouse"},{"source":"/a-tale-of-web-vitals/","target":"tag-optimization"},{"source":"/a-tale-of-web-vitals/","target":"tag-core-web-vitals"},{"source":"/a-tale-of-web-vitals/","target":"cat-engineering"},{"source":"/a-tale-of-web-vitals/","target":"ser-web-performance-architecture"},{"source":"/bounded-concurrency-in-go/","target":"tag-go"},{"source":"/bounded-concurrency-in-go/","target":"tag-concurrency"},{"source":"/bounded-concurrency-in-go/","target":"tag-performance"},{"source":"/bounded-concurrency-in-go/","target":"tag-reliability"},{"source":"/bounded-concurrency-in-go/","target":"tag-architecture"},{"source":"/bounded-concurrency-in-go/","target":"cat-engineering"},{"source":"/bounded-concurrency-in-go/","target":"cat-guide"},{"source":"/bounded-concurrency-in-go/","target":"ser-deep-dive"},{"source":"/casting-shadows-bresenham-integer-math/","target":"tag-algorithms"},{"source":"/casting-shadows-bresenham-integer-math/","target":"tag-math"},{"source":"/casting-shadows-bresenham-integer-math/","target":"tag-game-engine"},{"source":"/casting-shadows-bresenham-integer-math/","target":"tag-systems-programming"},{"source":"/casting-shadows-bresenham-integer-math/","target":"cat-engineering"},{"source":"/casting-shadows-bresenham-integer-math/","target":"ser-building-a-game-engine-in-pure-go"},{"source":"/decoupling-game-engine-renderer-raylib/","target":"tag-go"},{"source":"/decoupling-game-engine-renderer-raylib/","target":"tag-systems-programming"},{"source":"/decoupling-game-engine-renderer-raylib/","target":"tag-game-engine"},{"source":"/decoupling-game-engine-renderer-raylib/","target":"tag-architecture"},{"source":"/decoupling-game-engine-renderer-raylib/","target":"cat-engineering"},{"source":"/decoupling-game-engine-renderer-raylib/","target":"ser-building-a-game-engine-in-pure-go"},{"source":"/data-oriented-design-go-contiguous-memory/","target":"tag-go"},{"source":"/data-oriented-design-go-contiguous-memory/","target":"tag-systems-programming"},{"source":"/data-oriented-design-go-contiguous-memory/","target":"tag-game-engine"},{"source":"/data-oriented-design-go-contiguous-memory/","target":"tag-performance"},{"source":"/data-oriented-design-go-contiguous-memory/","target":"cat-engineering"},{"source":"/data-oriented-design-go-contiguous-memory/","target":"ser-building-a-game-engine-in-pure-go"},{"source":"/10-years-of-lorbic.com-architecture/","target":"tag-hugo"},{"source":"/10-years-of-lorbic.com-architecture/","target":"tag-web-development"},{"source":"/10-years-of-lorbic.com-architecture/","target":"tag-system-design"},{"source":"/10-years-of-lorbic.com-architecture/","target":"cat-architecture"},{"source":"/10-years-of-lorbic.com-architecture/","target":"cat-engineering"},{"source":"/10-years-of-lorbic.com-architecture/","target":"ser-web-performance-architecture"},{"source":"/reading-list/","target":"tag-reading-list"},{"source":"/reading-list/","target":"cat-resources"},{"source":"/kubernetes-on-wsl2-macos-access/","target":"tag-kubernetes"},{"source":"/kubernetes-on-wsl2-macos-access/","target":"tag-wsl"},{"source":"/kubernetes-on-wsl2-macos-access/","target":"tag-networking"},{"source":"/kubernetes-on-wsl2-macos-access/","target":"tag-macos"},{"source":"/kubernetes-on-wsl2-macos-access/","target":"tag-devops"},{"source":"/kubernetes-on-wsl2-macos-access/","target":"cat-engineering"},{"source":"/kubernetes-on-wsl2-macos-access/","target":"cat-infrastructure"},{"source":"/kubernetes-on-wsl2-macos-access/","target":"ser-deep-dive"},{"source":"/clickhouse-regex-data-masking/","target":"tag-clickhouse"},{"source":"/clickhouse-regex-data-masking/","target":"tag-database"},{"source":"/clickhouse-regex-data-masking/","target":"tag-security"},{"source":"/clickhouse-regex-data-masking/","target":"tag-regex"},{"source":"/clickhouse-regex-data-masking/","target":"cat-engineering"},{"source":"/clickhouse-regex-data-masking/","target":"ser-deep-dive"},{"source":"/cpu-caches-in-go/","target":"tag-go"},{"source":"/cpu-caches-in-go/","target":"tag-performance"},{"source":"/cpu-caches-in-go/","target":"tag-hardware"},{"source":"/cpu-caches-in-go/","target":"cat-engineering"},{"source":"/cpu-caches-in-go/","target":"cat-fundamentals"},{"source":"/cpu-caches-in-go/","target":"ser-deep-dive"},{"source":"/cpu-caches-in-go/","target":"ser-the-backend-engineers-playbook"},{"source":"/til/2026-04-01-typography-in-ten-minutes/","target":"tag-web"},{"source":"/clickhouse-vs-postgres-log-storage/","target":"tag-clickhouse"},{"source":"/clickhouse-vs-postgres-log-storage/","target":"tag-postgres"},{"source":"/clickhouse-vs-postgres-log-storage/","target":"tag-postgresql"},{"source":"/clickhouse-vs-postgres-log-storage/","target":"tag-database"},{"source":"/clickhouse-vs-postgres-log-storage/","target":"tag-observability"},{"source":"/clickhouse-vs-postgres-log-storage/","target":"cat-engineering"},{"source":"/clickhouse-vs-postgres-log-storage/","target":"ser-deep-dive"},{"source":"/clickhouse-vs-postgres-log-storage/","target":"ser-postgresql"},{"source":"/wsl2-performance-tax-go-windows/","target":"tag-go"},{"source":"/wsl2-performance-tax-go-windows/","target":"tag-wsl"},{"source":"/wsl2-performance-tax-go-windows/","target":"tag-performance"},{"source":"/wsl2-performance-tax-go-windows/","target":"tag-windows"},{"source":"/wsl2-performance-tax-go-windows/","target":"cat-engineering"},{"source":"/wsl2-performance-tax-go-windows/","target":"ser-deep-dive"},{"source":"/til/2026-03-30-what-is-a-mutex/","target":"tag-go"},{"source":"/ai-coding-productivity-vs-skill/","target":"tag-ai"},{"source":"/ai-coding-productivity-vs-skill/","target":"tag-coding"},{"source":"/ai-coding-productivity-vs-skill/","target":"tag-productivity"},{"source":"/ai-coding-productivity-vs-skill/","target":"tag-engineering"},{"source":"/ai-coding-productivity-vs-skill/","target":"tag-systems-thinking"},{"source":"/ai-coding-productivity-vs-skill/","target":"cat-engineering"},{"source":"/ai-coding-productivity-vs-skill/","target":"cat-ai"},{"source":"/ai-coding-productivity-vs-skill/","target":"ser-the-backend-engineers-playbook"},{"source":"/stop-rebuilding-docker-images-runtime-containers/","target":"tag-docker"},{"source":"/stop-rebuilding-docker-images-runtime-containers/","target":"tag-containers"},{"source":"/stop-rebuilding-docker-images-runtime-containers/","target":"tag-development"},{"source":"/stop-rebuilding-docker-images-runtime-containers/","target":"tag-python"},{"source":"/stop-rebuilding-docker-images-runtime-containers/","target":"tag-nodejs"},{"source":"/stop-rebuilding-docker-images-runtime-containers/","target":"tag-devops"},{"source":"/stop-rebuilding-docker-images-runtime-containers/","target":"tag-workflow"},{"source":"/stop-rebuilding-docker-images-runtime-containers/","target":"tag-docker-compose"},{"source":"/stop-rebuilding-docker-images-runtime-containers/","target":"cat-engineering"},{"source":"/stop-rebuilding-docker-images-runtime-containers/","target":"cat-tooling"},{"source":"/stop-rebuilding-docker-images-runtime-containers/","target":"cat-productivity"},{"source":"/stop-rebuilding-docker-images-runtime-containers/","target":"ser-the-backend-engineers-playbook"},{"source":"/building-production-ready-background-workers-in-python/","target":"tag-python"},{"source":"/building-production-ready-background-workers-in-python/","target":"tag-system-design"},{"source":"/building-production-ready-background-workers-in-python/","target":"tag-microservices"},{"source":"/building-production-ready-background-workers-in-python/","target":"tag-backend"},{"source":"/building-production-ready-background-workers-in-python/","target":"tag-distributed-systems"},{"source":"/building-production-ready-background-workers-in-python/","target":"tag-reliability"},{"source":"/building-production-ready-background-workers-in-python/","target":"cat-engineering"},{"source":"/building-production-ready-background-workers-in-python/","target":"cat-architecture"},{"source":"/building-production-ready-background-workers-in-python/","target":"ser-the-backend-engineers-playbook"},{"source":"/building-production-ready-background-workers-in-python/","target":"ser-projects"},{"source":"/go-struct-field-alignment/","target":"tag-go"},{"source":"/go-struct-field-alignment/","target":"tag-performance"},{"source":"/go-struct-field-alignment/","target":"tag-memory"},{"source":"/go-struct-field-alignment/","target":"tag-optimization"},{"source":"/go-struct-field-alignment/","target":"cat-engineering"},{"source":"/go-struct-field-alignment/","target":"cat-fundamentals"},{"source":"/go-struct-field-alignment/","target":"ser-deep-dive"},{"source":"/go-struct-field-alignment/","target":"ser-the-backend-engineers-playbook"},{"source":"/aider-session-management/","target":"tag-open-source"},{"source":"/aider-session-management/","target":"tag-python"},{"source":"/aider-session-management/","target":"tag-ai"},{"source":"/aider-session-management/","target":"cat-engineering"},{"source":"/aider-session-management/","target":"ser-projects"},{"source":"/clickhouse-as-a-vector-database/","target":"tag-clickhouse"},{"source":"/clickhouse-as-a-vector-database/","target":"tag-vector-database"},{"source":"/clickhouse-as-a-vector-database/","target":"tag-embeddings"},{"source":"/clickhouse-as-a-vector-database/","target":"tag-database"},{"source":"/clickhouse-as-a-vector-database/","target":"cat-engineering"},{"source":"/clickhouse-as-a-vector-database/","target":"ser-projects"},{"source":"/memory-mechanics-stack-vs-heap-in-go/","target":"tag-go"},{"source":"/memory-mechanics-stack-vs-heap-in-go/","target":"tag-performance"},{"source":"/memory-mechanics-stack-vs-heap-in-go/","target":"tag-memory"},{"source":"/memory-mechanics-stack-vs-heap-in-go/","target":"tag-internals"},{"source":"/memory-mechanics-stack-vs-heap-in-go/","target":"cat-engineering"},{"source":"/memory-mechanics-stack-vs-heap-in-go/","target":"cat-fundamentals"},{"source":"/memory-mechanics-stack-vs-heap-in-go/","target":"ser-deep-dive"},{"source":"/memory-mechanics-stack-vs-heap-in-go/","target":"ser-the-backend-engineers-playbook"},{"source":"/oltp-vs-olap-why-you-need-two-databases/","target":"tag-database"},{"source":"/oltp-vs-olap-why-you-need-two-databases/","target":"tag-architecture"},{"source":"/oltp-vs-olap-why-you-need-two-databases/","target":"tag-couchbase"},{"source":"/oltp-vs-olap-why-you-need-two-databases/","target":"tag-clickhouse"},{"source":"/oltp-vs-olap-why-you-need-two-databases/","target":"tag-system-design"},{"source":"/oltp-vs-olap-why-you-need-two-databases/","target":"cat-engineering"},{"source":"/oltp-vs-olap-why-you-need-two-databases/","target":"cat-data-platforms"},{"source":"/oltp-vs-olap-why-you-need-two-databases/","target":"ser-deep-dive"},{"source":"/oltp-vs-olap-why-you-need-two-databases/","target":"ser-the-backend-engineers-playbook"},{"source":"/dont-take-out-the-garbage-go-gc-deep-dive/","target":"tag-go"},{"source":"/dont-take-out-the-garbage-go-gc-deep-dive/","target":"tag-performance"},{"source":"/dont-take-out-the-garbage-go-gc-deep-dive/","target":"tag-profiling"},{"source":"/dont-take-out-the-garbage-go-gc-deep-dive/","target":"tag-optimization"},{"source":"/dont-take-out-the-garbage-go-gc-deep-dive/","target":"cat-engineering"},{"source":"/dont-take-out-the-garbage-go-gc-deep-dive/","target":"ser-deep-dive"},{"source":"/dont-take-out-the-garbage-go-gc-deep-dive/","target":"ser-projects"},{"source":"/dont-take-out-the-garbage-go-gc-deep-dive/","target":"ser-the-backend-engineers-playbook"},{"source":"/couchlens-couchbase-query-analysis-tool/","target":"tag-engineering"},{"source":"/couchlens-couchbase-query-analysis-tool/","target":"tag-database"},{"source":"/couchlens-couchbase-query-analysis-tool/","target":"tag-couchbase"},{"source":"/couchlens-couchbase-query-analysis-tool/","target":"tag-tools"},{"source":"/couchlens-couchbase-query-analysis-tool/","target":"cat-engineering"},{"source":"/couchlens-couchbase-query-analysis-tool/","target":"cat-tools"},{"source":"/couchlens-couchbase-query-analysis-tool/","target":"ser-projects"},{"source":"/what-couchbase-taught-me-about-system-thinking/","target":"tag-engineering"},{"source":"/what-couchbase-taught-me-about-system-thinking/","target":"tag-database"},{"source":"/what-couchbase-taught-me-about-system-thinking/","target":"tag-couchbase"},{"source":"/what-couchbase-taught-me-about-system-thinking/","target":"tag-systems-thinking"},{"source":"/what-couchbase-taught-me-about-system-thinking/","target":"cat-engineering"},{"source":"/what-couchbase-taught-me-about-system-thinking/","target":"cat-concepts"},{"source":"/what-couchbase-taught-me-about-system-thinking/","target":"ser-deep-dive"},{"source":"/what-couchbase-taught-me-about-system-thinking/","target":"ser-the-backend-engineers-playbook"},{"source":"/private-public-key-encryption/","target":"tag-cryptography"},{"source":"/private-public-key-encryption/","target":"tag-cybersecurity"},{"source":"/private-public-key-encryption/","target":"tag-code"},{"source":"/private-public-key-encryption/","target":"cat-engineering"},{"source":"/private-public-key-encryption/","target":"ser-deep-dive"},{"source":"/the-5-minute-refactor/","target":"tag-refactoring"},{"source":"/the-5-minute-refactor/","target":"tag-code"},{"source":"/the-5-minute-refactor/","target":"cat-engineering"},{"source":"/i-built-my-own-google-drive/","target":"tag-cloud"},{"source":"/i-built-my-own-google-drive/","target":"tag-nextcloud"},{"source":"/i-built-my-own-google-drive/","target":"tag-cloudflare"},{"source":"/i-built-my-own-google-drive/","target":"tag-self-hosted"},{"source":"/i-built-my-own-google-drive/","target":"cat-engineering"},{"source":"/i-built-my-own-google-drive/","target":"ser-projects"},{"source":"/introducing-quark/","target":"tag-note-taking"},{"source":"/introducing-quark/","target":"tag-productivity"},{"source":"/introducing-quark/","target":"tag-thoughts"},{"source":"/introducing-quark/","target":"cat-productivity"},{"source":"/password-security-habits/","target":"tag-cybersecurity"},{"source":"/password-security-habits/","target":"tag-online-security"},{"source":"/password-security-habits/","target":"tag-privacy-protection"},{"source":"/outline-vpn-over-https/","target":"tag-vpn"},{"source":"/outline-vpn-over-https/","target":"tag-networking"},{"source":"/outline-vpn-over-https/","target":"tag-censorship"},{"source":"/outline-vpn-over-https/","target":"ser-projects"},{"source":"/resolving-huge-merge-conflicts/","target":"tag-git"},{"source":"/resolving-huge-merge-conflicts/","target":"tag-dx"},{"source":"/resolving-huge-merge-conflicts/","target":"cat-engineering"},{"source":"/resolving-huge-merge-conflicts/","target":"ser-deep-dive"},{"source":"/scaling-memcache-facebook/","target":"tag-systems-thinking"},{"source":"/scaling-memcache-facebook/","target":"tag-infrastructure"},{"source":"/scaling-memcache-facebook/","target":"tag-scalability"},{"source":"/scaling-memcache-facebook/","target":"cat-concepts"},{"source":"/scaling-memcache-facebook/","target":"cat-engineering"},{"source":"/bitmasking/","target":"tag-go"},{"source":"/bitmasking/","target":"tag-couchbase"},{"source":"/bitmasking/","target":"tag-cs"},{"source":"/bitmasking/","target":"cat-concepts"},{"source":"/how-to-backup-and-restore-docker-volumes/","target":"tag-docker"},{"source":"/how-to-backup-and-restore-docker-volumes/","target":"ser-projects"},{"source":"/testing-types/","target":"tag-engineering"},{"source":"/testing-types/","target":"cat-clean-code"},{"source":"/tools-i-use-on-my-mac/","target":"tag-macos"},{"source":"/tools-i-use-on-my-mac/","target":"cat-tools"},{"source":"/method-receivers-in-go/","target":"tag-go"},{"source":"/method-receivers-in-go/","target":"ser-deep-dive"},{"source":"/analysis-paralysis/","target":"tag-engineering"},{"source":"/go-clean-code-guidelines/","target":"tag-go"},{"source":"/go-clean-code-guidelines/","target":"cat-clean-code"},{"source":"/solid-and-functional-programming-principles-in-go/","target":"tag-go"},{"source":"/solid-and-functional-programming-principles-in-go/","target":"cat-clean-code"},{"source":"/build-nginx-from-source/","target":"tag-nginx"},{"source":"/build-nginx-from-source/","target":"tag-linux"},{"source":"/build-nginx-from-source/","target":"ser-projects"},{"source":"/docker-custom-installation-location-windows/","target":"tag-docker"},{"source":"/docker-custom-installation-location-windows/","target":"tag-devops"},{"source":"/docker-custom-installation-location-windows/","target":"tag-windows"},{"source":"/docker-custom-installation-location-windows/","target":"tag-wsl2"},{"source":"/docker-custom-installation-location-windows/","target":"tag-troubleshooting"},{"source":"/docker-custom-installation-location-windows/","target":"ser-projects"},{"source":"/build-a-url-redirector-application-with-cloudflare-workers-and-cloudflare-d1/","target":"tag-cloudflare"},{"source":"/build-a-url-redirector-application-with-cloudflare-workers-and-cloudflare-d1/","target":"tag-serverless"},{"source":"/build-a-url-redirector-application-with-cloudflare-workers-and-cloudflare-d1/","target":"tag-javascript"},{"source":"/build-a-url-redirector-application-with-cloudflare-workers-and-cloudflare-d1/","target":"cat-projects"},{"source":"/setting-up-llama-2-with-docker-on-your-gaming-laptop-using-ollama/","target":"tag-ai"},{"source":"/setting-up-llama-2-with-docker-on-your-gaming-laptop-using-ollama/","target":"tag-llm"},{"source":"/setting-up-llama-2-with-docker-on-your-gaming-laptop-using-ollama/","target":"tag-ml"},{"source":"/setting-up-llama-2-with-docker-on-your-gaming-laptop-using-ollama/","target":"cat-ai"},{"source":"/setting-up-llama-2-with-docker-on-your-gaming-laptop-using-ollama/","target":"ser-projects"},{"source":"/aws-host-static-website-with-s3--cloudfront--route53/","target":"tag-aws"},{"source":"/aws-host-static-website-with-s3--cloudfront--route53/","target":"tag-cloud"},{"source":"/aws-host-static-website-with-s3--cloudfront--route53/","target":"cat-cloud"},{"source":"/aws-host-static-website-with-s3--cloudfront--route53/","target":"ser-projects"},{"source":"/simplifying-search-activation-a-quick-guide-with-javascript/","target":"tag-snippets"},{"source":"/simplifying-search-activation-a-quick-guide-with-javascript/","target":"tag-javascript"},{"source":"/simplifying-search-activation-a-quick-guide-with-javascript/","target":"ser-projects"},{"source":"/setting-up-a-postgresql-container-a-quick-guide/","target":"tag-snippets"},{"source":"/setting-up-a-postgresql-container-a-quick-guide/","target":"tag-postgresql"},{"source":"/setting-up-a-postgresql-container-a-quick-guide/","target":"ser-projects"},{"source":"/setting-up-a-postgresql-container-a-quick-guide/","target":"ser-postgresql"},{"source":"/learn-dart-programming/","target":"tag-dart"},{"source":"/learn-dart-programming/","target":"tag-programming"},{"source":"/learn-dart-programming/","target":"cat-tutorial"},{"source":"/types-of-pointers-in-c/c-/","target":"tag-c"},{"source":"/types-of-pointers-in-c/c-/","target":"tag-c++"},{"source":"/types-of-pointers-in-c/c-/","target":"tag-programming"},{"source":"/types-of-pointers-in-c/c-/","target":"cat-tutorial"},{"source":"/avoid-memory-leaks-in-c-/","target":"tag-c++"},{"source":"/avoid-memory-leaks-in-c-/","target":"cat-tutorial"},{"source":"/operators-in-bash-shell-programming/","target":"tag-linux"},{"source":"/operators-in-bash-shell-programming/","target":"tag-programming"},{"source":"/operators-in-bash-shell-programming/","target":"tag-bash"},{"source":"/operators-in-bash-shell-programming/","target":"cat-tutorial"},{"source":"/learn-complete-linux-bash-scripting-in-one-article/","target":"tag-linux"},{"source":"/learn-complete-linux-bash-scripting-in-one-article/","target":"tag-programming"},{"source":"/learn-complete-linux-bash-scripting-in-one-article/","target":"tag-bash"},{"source":"/learn-complete-linux-bash-scripting-in-one-article/","target":"cat-guide"},{"source":"/access-wsl-filesystem-from-windows-10-file-explorer/","target":"tag-windows-10"},{"source":"/access-wsl-filesystem-from-windows-10-file-explorer/","target":"tag-wsl"},{"source":"/access-wsl-filesystem-from-windows-10-file-explorer/","target":"cat-tutorial"},{"source":"/access-wsl-filesystem-from-windows-10-file-explorer/","target":"ser-projects"}],"nodes":[{"group":0,"id":"root","name":"Lorbic.com","val":20},{"group":1,"id":"tag-adb","name":"#adb","url":"/tags/adb/","val":6},{"group":1,"id":"tag-ai","name":"#ai","url":"/tags/ai/","val":9},{"group":1,"id":"tag-algorithms","name":"#algorithms","url":"/tags/algorithms/","val":8},{"group":1,"id":"tag-android","name":"#android","url":"/tags/android/","val":6},{"group":1,"id":"tag-api-design","name":"#api-design","url":"/tags/api-design/","val":6},{"group":1,"id":"tag-architecture","name":"#architecture","url":"/tags/architecture/","val":16},{"group":1,"id":"tag-audio","name":"#audio","url":"/tags/audio/","val":6},{"group":1,"id":"tag-aws","name":"#aws","url":"/tags/aws/","val":6},{"group":1,"id":"tag-backend","name":"#backend","url":"/tags/backend/","val":13},{"group":1,"id":"tag-bash","name":"#bash","url":"/tags/bash/","val":7},{"group":1,"id":"tag-billing","name":"#billing","url":"/tags/billing/","val":6},{"group":1,"id":"tag-browser","name":"#browser","url":"/tags/browser/","val":6},{"group":1,"id":"tag-c","name":"#c","url":"/tags/c/","val":6},{"group":1,"id":"tag-c++","name":"#c++","url":"/tags/c++/","val":7},{"group":1,"id":"tag-caching","name":"#caching","url":"/tags/caching/","val":6},{"group":1,"id":"tag-censorship","name":"#censorship","url":"/tags/censorship/","val":6},{"group":1,"id":"tag-clickhouse","name":"#clickhouse","url":"/tags/clickhouse/","val":9},{"group":1,"id":"tag-cloud","name":"#cloud","url":"/tags/cloud/","val":7},{"group":1,"id":"tag-cloudflare","name":"#cloudflare","url":"/tags/cloudflare/","val":8},{"group":1,"id":"tag-code","name":"#code","url":"/tags/code/","val":7},{"group":1,"id":"tag-coding","name":"#coding","url":"/tags/coding/","val":6},{"group":1,"id":"tag-concurrency","name":"#concurrency","url":"/tags/concurrency/","val":8},{"group":1,"id":"tag-containers","name":"#containers","url":"/tags/containers/","val":6},{"group":1,"id":"tag-core-web-vitals","name":"#core-web-vitals","url":"/tags/core-web-vitals/","val":6},{"group":1,"id":"tag-couchbase","name":"#couchbase","url":"/tags/couchbase/","val":10},{"group":1,"id":"tag-cron","name":"#cron","url":"/tags/cron/","val":6},{"group":1,"id":"tag-cryptography","name":"#cryptography","url":"/tags/cryptography/","val":6},{"group":1,"id":"tag-cs","name":"#cs","url":"/tags/cs/","val":6},{"group":1,"id":"tag-cybersecurity","name":"#cybersecurity","url":"/tags/cybersecurity/","val":7},{"group":1,"id":"tag-dart","name":"#dart","url":"/tags/dart/","val":6},{"group":1,"id":"tag-data-structures","name":"#data-structures","url":"/tags/data-structures/","val":6},{"group":1,"id":"tag-database","name":"#database","url":"/tags/database/","val":16},{"group":1,"id":"tag-database-internals","name":"#database-internals","url":"/tags/database-internals/","val":6},{"group":1,"id":"tag-development","name":"#development","url":"/tags/development/","val":6},{"group":1,"id":"tag-devops","name":"#devops","url":"/tags/devops/","val":9},{"group":1,"id":"tag-distributed-systems","name":"#distributed-systems","url":"/tags/distributed-systems/","val":8},{"group":1,"id":"tag-docker","name":"#docker","url":"/tags/docker/","val":8},{"group":1,"id":"tag-docker-compose","name":"#docker-compose","url":"/tags/docker-compose/","val":6},{"group":1,"id":"tag-dx","name":"#dx","url":"/tags/dx/","val":6},{"group":1,"id":"tag-ecs","name":"#ecs","url":"/tags/ecs/","val":6},{"group":1,"id":"tag-embeddings","name":"#embeddings","url":"/tags/embeddings/","val":6},{"group":1,"id":"tag-engineering","name":"#engineering","url":"/tags/engineering/","val":11},{"group":1,"id":"tag-frontend","name":"#frontend","url":"/tags/frontend/","val":6},{"group":1,"id":"tag-game-engine","name":"#game-engine","url":"/tags/game-engine/","val":11},{"group":1,"id":"tag-git","name":"#git","url":"/tags/git/","val":6},{"group":1,"id":"tag-go","name":"#go","url":"/tags/go/","val":25},{"group":1,"id":"tag-golang","name":"#golang","url":"/tags/golang/","val":7},{"group":1,"id":"tag-hardware","name":"#hardware","url":"/tags/hardware/","val":8},{"group":1,"id":"tag-http","name":"#http","url":"/tags/http/","val":6},{"group":1,"id":"tag-hugo","name":"#hugo","url":"/tags/hugo/","val":7},{"group":1,"id":"tag-humor","name":"#humor","url":"/tags/humor/","val":6},{"group":1,"id":"tag-indexing","name":"#indexing","url":"/tags/indexing/","val":6},{"group":1,"id":"tag-infrastructure","name":"#infrastructure","url":"/tags/infrastructure/","val":6},{"group":1,"id":"tag-infrastructure-as-code","name":"#infrastructure-as-code","url":"/tags/infrastructure-as-code/","val":6},{"group":1,"id":"tag-internals","name":"#internals","url":"/tags/internals/","val":6},{"group":1,"id":"tag-javascript","name":"#javascript","url":"/tags/javascript/","val":7},{"group":1,"id":"tag-job-scheduler","name":"#job-scheduler","url":"/tags/job-scheduler/","val":6},{"group":1,"id":"tag-kubernetes","name":"#kubernetes","url":"/tags/kubernetes/","val":6},{"group":1,"id":"tag-lighthouse","name":"#lighthouse","url":"/tags/lighthouse/","val":6},{"group":1,"id":"tag-linux","name":"#linux","url":"/tags/linux/","val":8},{"group":1,"id":"tag-llm","name":"#llm","url":"/tags/llm/","val":6},{"group":1,"id":"tag-macos","name":"#macos","url":"/tags/macos/","val":7},{"group":1,"id":"tag-math","name":"#math","url":"/tags/math/","val":6},{"group":1,"id":"tag-memory","name":"#memory","url":"/tags/memory/","val":8},{"group":1,"id":"tag-microservices","name":"#microservices","url":"/tags/microservices/","val":6},{"group":1,"id":"tag-ml","name":"#ml","url":"/tags/ml/","val":6},{"group":1,"id":"tag-multi-tenancy","name":"#multi-tenancy","url":"/tags/multi-tenancy/","val":6},{"group":1,"id":"tag-networking","name":"#networking","url":"/tags/networking/","val":7},{"group":1,"id":"tag-nextcloud","name":"#nextcloud","url":"/tags/nextcloud/","val":6},{"group":1,"id":"tag-nginx","name":"#nginx","url":"/tags/nginx/","val":6},{"group":1,"id":"tag-nodejs","name":"#nodejs","url":"/tags/nodejs/","val":6},{"group":1,"id":"tag-note-taking","name":"#note-taking","url":"/tags/note-taking/","val":6},{"group":1,"id":"tag-observability","name":"#observability","url":"/tags/observability/","val":6},{"group":1,"id":"tag-online-security","name":"#online-security","url":"/tags/online-security/","val":6},{"group":1,"id":"tag-open-source","name":"#open-source","url":"/tags/open-source/","val":6},{"group":1,"id":"tag-optimization","name":"#optimization","url":"/tags/optimization/","val":9},{"group":1,"id":"tag-payments","name":"#payments","url":"/tags/payments/","val":6},{"group":1,"id":"tag-performance","name":"#performance","url":"/tags/performance/","val":19},{"group":1,"id":"tag-personal","name":"#personal","url":"/tags/personal/","val":7},{"group":1,"id":"tag-postgres","name":"#postgres","url":"/tags/postgres/","val":6},{"group":1,"id":"tag-postgresql","name":"#postgresql","url":"/tags/postgresql/","val":11},{"group":1,"id":"tag-privacy-protection","name":"#privacy-protection","url":"/tags/privacy-protection/","val":6},{"group":1,"id":"tag-productivity","name":"#productivity","url":"/tags/productivity/","val":7},{"group":1,"id":"tag-profiling","name":"#profiling","url":"/tags/profiling/","val":6},{"group":1,"id":"tag-programming","name":"#programming","url":"/tags/programming/","val":10},{"group":1,"id":"tag-python","name":"#python","url":"/tags/python/","val":8},{"group":1,"id":"tag-query-optimization","name":"#query-optimization","url":"/tags/query-optimization/","val":6},{"group":1,"id":"tag-rate-limiting","name":"#rate-limiting","url":"/tags/rate-limiting/","val":6},{"group":1,"id":"tag-raylib","name":"#raylib","url":"/tags/raylib/","val":6},{"group":1,"id":"tag-reading-list","name":"#reading-list","url":"/tags/reading-list/","val":6},{"group":1,"id":"tag-redis","name":"#redis","url":"/tags/redis/","val":6},{"group":1,"id":"tag-refactoring","name":"#refactoring","url":"/tags/refactoring/","val":6},{"group":1,"id":"tag-regex","name":"#regex","url":"/tags/regex/","val":6},{"group":1,"id":"tag-reliability","name":"#reliability","url":"/tags/reliability/","val":7},{"group":1,"id":"tag-rest","name":"#rest","url":"/tags/rest/","val":6},{"group":1,"id":"tag-runtime","name":"#runtime","url":"/tags/runtime/","val":6},{"group":1,"id":"tag-saas","name":"#saas","url":"/tags/saas/","val":7},{"group":1,"id":"tag-scalability","name":"#scalability","url":"/tags/scalability/","val":7},{"group":1,"id":"tag-search","name":"#search","url":"/tags/search/","val":6},{"group":1,"id":"tag-security","name":"#security","url":"/tags/security/","val":7},{"group":1,"id":"tag-self-hosted","name":"#self-hosted","url":"/tags/self-hosted/","val":6},{"group":1,"id":"tag-serverless","name":"#serverless","url":"/tags/serverless/","val":6},{"group":1,"id":"tag-snippets","name":"#snippets","url":"/tags/snippets/","val":7},{"group":1,"id":"tag-software-engineering","name":"#software-engineering","url":"/tags/software-engineering/","val":7},{"group":1,"id":"tag-sql","name":"#sql","url":"/tags/sql/","val":6},{"group":1,"id":"tag-system-design","name":"#system-design","url":"/tags/system-design/","val":13},{"group":1,"id":"tag-systems-design","name":"#systems-design","url":"/tags/systems-design/","val":6},{"group":1,"id":"tag-systems-programming","name":"#systems-programming","url":"/tags/systems-programming/","val":11},{"group":1,"id":"tag-systems-thinking","name":"#systems-thinking","url":"/tags/systems-thinking/","val":13},{"group":1,"id":"tag-terraform","name":"#terraform","url":"/tags/terraform/","val":6},{"group":1,"id":"tag-thoughts","name":"#thoughts","url":"/tags/thoughts/","val":6},{"group":1,"id":"tag-tools","name":"#tools","url":"/tags/tools/","val":6},{"group":1,"id":"tag-troubleshooting","name":"#troubleshooting","url":"/tags/troubleshooting/","val":7},{"group":1,"id":"tag-vector-database","name":"#vector-database","url":"/tags/vector-database/","val":6},{"group":1,"id":"tag-vpn","name":"#vpn","url":"/tags/vpn/","val":6},{"group":1,"id":"tag-web","name":"#web","url":"/tags/web/","val":6},{"group":1,"id":"tag-web development","name":"#web development","url":"/tags/web-development/","val":6},{"group":1,"id":"tag-web-performance","name":"#web-performance","url":"/tags/web-performance/","val":7},{"group":1,"id":"tag-webhooks","name":"#webhooks","url":"/tags/webhooks/","val":6},{"group":1,"id":"tag-wifi","name":"#wifi","url":"/tags/wifi/","val":6},{"group":1,"id":"tag-windows","name":"#windows","url":"/tags/windows/","val":7},{"group":1,"id":"tag-windows 10","name":"#windows 10","url":"/tags/windows-10/","val":6},{"group":1,"id":"tag-workflow","name":"#workflow","url":"/tags/workflow/","val":6},{"group":1,"id":"tag-writing","name":"#writing","url":"/tags/writing/","val":6},{"group":1,"id":"tag-wsl","name":"#wsl","url":"/tags/wsl/","val":8},{"group":1,"id":"tag-wsl2","name":"#wsl2","url":"/tags/wsl2/","val":6},{"group":2,"id":"cat-ai","name":"ai","url":"/categories/ai/","val":10},{"group":2,"id":"cat-architecture","name":"architecture","url":"/categories/architecture/","val":10},{"group":2,"id":"cat-clean code","name":"clean code","url":"/categories/clean-code/","val":11},{"group":2,"id":"cat-cloud","name":"cloud","url":"/categories/cloud/","val":9},{"group":2,"id":"cat-concepts","name":"concepts","url":"/categories/concepts/","val":12},{"group":2,"id":"cat-data-platforms","name":"data-platforms","url":"/categories/data-platforms/","val":10},{"group":2,"id":"cat-deep-dive","name":"deep-dive","url":"/categories/deep-dive/","val":9},{"group":2,"id":"cat-engineering","name":"engineering","url":"/categories/engineering/","val":56},{"group":2,"id":"cat-fundamentals","name":"fundamentals","url":"/categories/fundamentals/","val":11},{"group":2,"id":"cat-guide","name":"guide","url":"/categories/guide/","val":10},{"group":2,"id":"cat-infrastructure","name":"infrastructure","url":"/categories/infrastructure/","val":9},{"group":2,"id":"cat-personal","name":"personal","url":"/categories/personal/","val":10},{"group":2,"id":"cat-productivity","name":"productivity","url":"/categories/productivity/","val":10},{"group":2,"id":"cat-projects","name":"projects","url":"/categories/projects/","val":9},{"group":2,"id":"cat-resources","name":"resources","url":"/categories/resources/","val":9},{"group":2,"id":"cat-tooling","name":"tooling","url":"/categories/tooling/","val":9},{"group":2,"id":"cat-tools","name":"tools","url":"/categories/tools/","val":10},{"group":2,"id":"cat-tutorial","name":"tutorial","url":"/categories/tutorial/","val":13},{"group":3,"id":"ser-building a game engine in pure go","name":"building a game engine in pure go","url":"/series/building-a-game-engine-in-pure-go/","val":16},{"group":3,"id":"ser-deep dive","name":"deep dive","url":"/series/deep-dive/","val":25},{"group":3,"id":"ser-infrastructure automation","name":"infrastructure automation","url":"/series/infrastructure-automation/","val":11},{"group":3,"id":"ser-postgresql","name":"postgresql","url":"/series/postgresql/","val":14},{"group":3,"id":"ser-projects","name":"projects","url":"/series/projects/","val":26},{"group":3,"id":"ser-relay","name":"relay","url":"/series/relay/","val":13},{"group":3,"id":"ser-the backend engineer's playbook","name":"the backend engineer's playbook","url":"/series/the-backend-engineers-playbook/","val":29},{"group":3,"id":"ser-the search systems handbook","name":"the search systems handbook","url":"/series/the-search-systems-handbook/","val":11},{"group":3,"id":"ser-web performance architecture","name":"web performance architecture","url":"/series/web-performance-architecture/","val":13},{"group":4,"id":"/go-channels-deep-dive/","name":"How Go Channels Actually Work","url":"/go-channels-deep-dive/","val":5},{"group":4,"id":"/modular-missions-floodfill-audio-raylib/","name":"Part 6: Simulating a Living Facility: Room Derivation, Sunlight Spillover, and Positional SFX","url":"/modular-missions-floodfill-audio-raylib/","val":5},{"group":4,"id":"/designing-a-distributed-job-scheduler/","name":"Designing a Distributed Job Scheduler in Go: Partitioning, Locking, and Backpressure","url":"/designing-a-distributed-job-scheduler/","val":5},{"group":4,"id":"/autotiling-sprites-font-fallbacks-raylib/","name":"Part 5: From Terminal Cells to Sprite Maps: Font Fallbacks and Auto-Tiling","url":"/autotiling-sprites-font-fallbacks-raylib/","val":5},{"group":4,"id":"/structure-of-arrays-ecs-bitmasks-golang/","name":"Part 4: Refactoring to SoA ECS: Bitmasks and Flat Component Arrays","url":"/structure-of-arrays-ecs-bitmasks-golang/","val":5},{"group":4,"id":"/designing-a-usage-based-billing-pipeline-for-saas/","name":"Designing a Usage-Based Billing Pipeline for SaaS","url":"/designing-a-usage-based-billing-pipeline-for-saas/","val":5},{"group":4,"id":"/couchbase-index-best-practices-performance-tuning/","name":"Couchbase Index Best Practices and Query Performance Tuning","url":"/couchbase-index-best-practices-performance-tuning/","val":5},{"group":4,"id":"/api-design-for-backend-systems/","name":"API Design for Backend Systems","url":"/api-design-for-backend-systems/","val":5},{"group":4,"id":"/cache-driven-development/","name":"Cache-Driven Development: Saving Your Database From Itself","url":"/cache-driven-development/","val":5},{"group":4,"id":"/designing-a-rate-limiter/","name":"Designing a Distributed Rate Limiter with Redis","url":"/designing-a-rate-limiter/","val":5},{"group":4,"id":"/how-multi-tenant-saas-works/","name":"How Multi-Tenant SaaS Actually Works","url":"/how-multi-tenant-saas-works/","val":5},{"group":4,"id":"/nobody-will-read-this/","name":"Nobody Will Read This","url":"/nobody-will-read-this/","val":5},{"group":4,"id":"/what-is-dry/","name":"What is DRY? (And Other Things We Say at 3 AM)","url":"/what-is-dry/","val":5},{"group":4,"id":"/so-we-are-writing-efficient-software-again/","name":"So, We Are Writing Efficient Software Again","url":"/so-we-are-writing-efficient-software-again/","val":5},{"group":4,"id":"/constructing-concurrent-inverted-indexes-in-go/","name":"Constructing Concurrent Inverted Indexes in Go","url":"/constructing-concurrent-inverted-indexes-in-go/","val":5},{"group":4,"id":"/love-letter-to-the-l1-cache/","name":"A Love Letter to the L1 Cache","url":"/love-letter-to-the-l1-cache/","val":5},{"group":4,"id":"/til/2026-06-15-wireless-adb-over-wifi/","name":"Wireless ADB When Your Network Fights You","url":"/til/2026-06-15-wireless-adb-over-wifi/","val":3},{"group":4,"id":"/why-explaining-technical-difficulty-is-hard/","name":"Why Explaining Technical Difficulty is Hard","url":"/why-explaining-technical-difficulty-is-hard/","val":5},{"group":4,"id":"/just-about-go-time/","name":"Just About Go Time","url":"/just-about-go-time/","val":5},{"group":4,"id":"/building-a-poor-document-store-inside-postgresql/","name":"Building a Poor Document Store inside PostgreSQL","url":"/building-a-poor-document-store-inside-postgresql/","val":5},{"group":4,"id":"/postgresql-migrations-in-go-production-schema-patterns-with-goose/","name":"PostgreSQL Migrations in Go: Production Schema Patterns with Goose","url":"/postgresql-migrations-in-go-production-schema-patterns-with-goose/","val":5},{"group":4,"id":"/cloudflare-management-with-terraform/","name":"Migrating Cloudflare to Terraform","url":"/cloudflare-management-with-terraform/","val":5},{"group":4,"id":"/internet-graveyard/","name":"Internet Graveyard","url":"/internet-graveyard/","val":5},{"group":4,"id":"/critical-rendering-path-optimization-8-proven-strategies-to-boost-web-performance/","name":"Critical Rendering Path Optimization: 8 Proven Strategies to Boost Web Performance","url":"/critical-rendering-path-optimization-8-proven-strategies-to-boost-web-performance/","val":5},{"group":4,"id":"/a-tale-of-web-vitals/","name":"A Tale of Web Vitals","url":"/a-tale-of-web-vitals/","val":5},{"group":4,"id":"/bounded-concurrency-in-go/","name":"Why Your Goroutines Need a Speed Limit: Bounded Concurrency in Go","url":"/bounded-concurrency-in-go/","val":5},{"group":4,"id":"/casting-shadows-bresenham-integer-math/","name":"Part 3: Casting Shadows Without Trigonometry: The Beauty of Integer Math","url":"/casting-shadows-bresenham-integer-math/","val":5},{"group":4,"id":"/decoupling-game-engine-renderer-raylib/","name":"Part 2: Decoupling the Renderer: Terminal to Raylib in One Interface","url":"/decoupling-game-engine-renderer-raylib/","val":5},{"group":4,"id":"/data-oriented-design-go-contiguous-memory/","name":"Part 1: Data-Oriented Design in Go: Why [][]Tile Destroyed My Game Engine","url":"/data-oriented-design-go-contiguous-memory/","val":5},{"group":4,"id":"/til/clickhouse-parquet/","name":"A Deep Dive into Apache Parquet with ClickHouse","url":"/til/clickhouse-parquet/","val":3},{"group":4,"id":"/10-years-of-lorbic.com-architecture/","name":"10 years of lorbic.com architecture","url":"/10-years-of-lorbic.com-architecture/","val":5},{"group":4,"id":"/reading-list/","name":"My Reading List","url":"/reading-list/","val":5},{"group":4,"id":"/kubernetes-on-wsl2-macos-access/","name":"Kubernetes on WSL2 and the macOS tunnel","url":"/kubernetes-on-wsl2-macos-access/","val":5},{"group":4,"id":"/clickhouse-regex-data-masking/","name":"ClickHouse data masking with regex","url":"/clickhouse-regex-data-masking/","val":5},{"group":4,"id":"/cpu-caches-in-go/","name":"Understanding CPU Caches in Go","url":"/cpu-caches-in-go/","val":5},{"group":4,"id":"/til/2026-04-01-typography-in-ten-minutes/","name":"Typography in ten minutes","url":"/til/2026-04-01-typography-in-ten-minutes/","val":3},{"group":4,"id":"/clickhouse-vs-postgres-log-storage/","name":"ClickHouse vs. Postgres: When to Move Your Logs Out of a Relational DB","url":"/clickhouse-vs-postgres-log-storage/","val":5},{"group":4,"id":"/wsl2-performance-tax-go-windows/","name":"WSL2 Is Slow? Fix /mnt/c/ File System Performance \u0026 Go Latency","url":"/wsl2-performance-tax-go-windows/","val":5},{"group":4,"id":"/til/2026-03-30-what-is-a-mutex/","name":"What is a Mutex?","url":"/til/2026-03-30-what-is-a-mutex/","val":3},{"group":4,"id":"/ai-coding-productivity-vs-skill/","name":"AI Coding in 2026: Productivity Multipliers vs. Skill Replacements","url":"/ai-coding-productivity-vs-skill/","val":5},{"group":4,"id":"/stop-rebuilding-docker-images-runtime-containers/","name":"Fast Docker CI: Stop Rebuilding Container Images on Every Commit","url":"/stop-rebuilding-docker-images-runtime-containers/","val":5},{"group":4,"id":"/building-production-ready-background-workers-in-python/","name":"Python Background Workers: Architecture, Queues, and Retry Strategies","url":"/building-production-ready-background-workers-in-python/","val":5},{"group":4,"id":"/go-struct-field-alignment/","name":"Go Struct Field Alignment: How Memory Padding Wastes Your RAM","url":"/go-struct-field-alignment/","val":5},{"group":4,"id":"/aider-session-management/","name":"I Added Session Management to Aider","url":"/aider-session-management/","val":5},{"group":4,"id":"/clickhouse-as-a-vector-database/","name":"Can ClickHouse Replace Vector Databases? HNSW, Benchmarks \u0026 SQL Setup","url":"/clickhouse-as-a-vector-database/","val":5},{"group":4,"id":"/memory-mechanics-stack-vs-heap-in-go/","name":"Memory Mechanics In Go - Stack vs Heap","url":"/memory-mechanics-stack-vs-heap-in-go/","val":5},{"group":4,"id":"/oltp-vs-olap-why-you-need-two-databases/","name":"OLTP vs OLAP - Why You Need Two Databases","url":"/oltp-vs-olap-why-you-need-two-databases/","val":5},{"group":4,"id":"/dont-take-out-the-garbage-go-gc-deep-dive/","name":"Go Garbage Collector Mechanics: Pacer, GOGC, and Allocation Latency","url":"/dont-take-out-the-garbage-go-gc-deep-dive/","val":5},{"group":4,"id":"/couchlens-couchbase-query-analysis-tool/","name":"Introducing CouchLens: A Query Analysis Tool for Couchbase","url":"/couchlens-couchbase-query-analysis-tool/","val":5},{"group":4,"id":"/what-couchbase-taught-me-about-system-thinking/","name":"What Couchbase Taught Me About System Thinking","url":"/what-couchbase-taught-me-about-system-thinking/","val":5},{"group":4,"id":"/private-public-key-encryption/","name":"Understanding Private-Public Key Encryption","url":"/private-public-key-encryption/","val":5},{"group":4,"id":"/the-5-minute-refactor/","name":"The 5-Minute Refactor","url":"/the-5-minute-refactor/","val":5},{"group":4,"id":"/i-built-my-own-google-drive/","name":"I Built My Own Google Drive","url":"/i-built-my-own-google-drive/","val":5},{"group":4,"id":"/introducing-quark/","name":"Introducing Quark","url":"/introducing-quark/","val":5},{"group":4,"id":"/password-security-habits/","name":"Why Your Password Habits Will Get You Hacked","url":"/password-security-habits/","val":5},{"group":4,"id":"/outline-vpn-over-https/","name":"Stealth VPN with Outline over HTTPS","url":"/outline-vpn-over-https/","val":5},{"group":4,"id":"/resolving-huge-merge-conflicts/","name":"How to Resolve Huge Git Merge Conflicts Without Losing Your Mind","url":"/resolving-huge-merge-conflicts/","val":5},{"group":4,"id":"/til/2025-07-16-milvus-vector-db-story-2025/","name":"Our Journey to 35K+ GitHub Stars: The Real Story of Building Milvus from Scratch (2025)","url":"/til/2025-07-16-milvus-vector-db-story-2025/","val":3},{"group":4,"id":"/til/2025-07-10-what-being-a-staff-developer-means-at-shopify-2023/","name":"What Being a Staff Developer Means at Shopify (2023)","url":"/til/2025-07-10-what-being-a-staff-developer-means-at-shopify-2023/","val":3},{"group":4,"id":"/til/2025-07-10-vector-search-with-clickhouse-part-1/","name":"Vector Search with ClickHouse - Part 1","url":"/til/2025-07-10-vector-search-with-clickhouse-part-1/","val":3},{"group":4,"id":"/til/2025-07-10-vector-search-with-clickhouse-part-2-1/","name":"Vector Search with ClickHouse - Part 2","url":"/til/2025-07-10-vector-search-with-clickhouse-part-2-1/","val":3},{"group":4,"id":"/scaling-memcache-facebook/","name":"What Facebook's Memcache Taught Me About Systems Thinking","url":"/scaling-memcache-facebook/","val":5},{"group":4,"id":"/bitmasking/","name":"Bitmasking In Go","url":"/bitmasking/","val":5},{"group":4,"id":"/how-to-backup-and-restore-docker-volumes/","name":"Docker Volume Backup: The 1-Line Command You Should Be Using (Instead of tar)","url":"/how-to-backup-and-restore-docker-volumes/","val":5},{"group":4,"id":"/testing-types/","name":"Testing Types","url":"/testing-types/","val":5},{"group":4,"id":"/tools-i-use-on-my-mac/","name":"Tools I Use on My Mac","url":"/tools-i-use-on-my-mac/","val":5},{"group":4,"id":"/method-receivers-in-go/","name":"Understanding T and *T method receivers in Go","url":"/method-receivers-in-go/","val":5},{"group":4,"id":"/analysis-paralysis/","name":"Analysis Paralysis in Engineering Teams","url":"/analysis-paralysis/","val":5},{"group":4,"id":"/go-clean-code-guidelines/","name":"Go Clean Code Guidelines","url":"/go-clean-code-guidelines/","val":5},{"group":4,"id":"/solid-and-functional-programming-principles-in-go/","name":"SOLID and Functional Programming Principles in Go","url":"/solid-and-functional-programming-principles-in-go/","val":5},{"group":4,"id":"/essential-tips-for-beginners-starting-in-it/","name":"10 Essential Tips for Beginners Starting in IT","url":"/essential-tips-for-beginners-starting-in-it/","val":5},{"group":4,"id":"/build-nginx-from-source/","name":"NGINX: Building from Source and Installation on Linux (Updated)","url":"/build-nginx-from-source/","val":5},{"group":4,"id":"/docker-custom-installation-location-windows/","name":"How to Install Docker Desktop on Another Drive in Windows","url":"/docker-custom-installation-location-windows/","val":5},{"group":4,"id":"/build-a-url-redirector-application-with-cloudflare-workers-and-cloudflare-d1/","name":"Build a URL redirector application with Cloudflare Workers and Cloudflare D1","url":"/build-a-url-redirector-application-with-cloudflare-workers-and-cloudflare-d1/","val":5},{"group":4,"id":"/setting-up-llama-2-with-docker-on-your-gaming-laptop-using-ollama/","name":"Setting Up Llama 2 with Docker on Your Gaming Laptop Using Ollama","url":"/setting-up-llama-2-with-docker-on-your-gaming-laptop-using-ollama/","val":5},{"group":4,"id":"/aws-host-static-website-with-s3--cloudfront--route53/","name":"AWS - Host Static Website With S3 + Cloudfront + Route53  ","url":"/aws-host-static-website-with-s3--cloudfront--route53/","val":5},{"group":4,"id":"/simplifying-search-activation-a-quick-guide-with-javascript/","name":"Simplifying Search Activation: A Quick Guide with JavaScript","url":"/simplifying-search-activation-a-quick-guide-with-javascript/","val":5},{"group":4,"id":"/setting-up-a-postgresql-container-a-quick-guide/","name":"Setting Up a PostgreSQL Container: A Quick Guide","url":"/setting-up-a-postgresql-container-a-quick-guide/","val":5},{"group":4,"id":"/learn-dart-programming/","name":"Learn Dart Programming","url":"/learn-dart-programming/","val":5},{"group":4,"id":"/types-of-pointers-in-c/c-/","name":"Types of Pointers in C/C++","url":"/types-of-pointers-in-c/c-/","val":5},{"group":4,"id":"/avoid-memory-leaks-in-c-/","name":"Avoid Memory Leaks In C++","url":"/avoid-memory-leaks-in-c-/","val":5},{"group":4,"id":"/operators-in-bash-shell-programming/","name":"Operators in Bash Shell Programming","url":"/operators-in-bash-shell-programming/","val":5},{"group":4,"id":"/learn-complete-linux-bash-scripting-in-one-article/","name":"Learn Complete Linux Bash Scripting in One Article","url":"/learn-complete-linux-bash-scripting-in-one-article/","val":5},{"group":4,"id":"/access-wsl-filesystem-from-windows-10-file-explorer/","name":"Access Wsl Filesystem From Windows 10 File Explorer","url":"/access-wsl-filesystem-from-windows-10-file-explorer/","val":5}]}