41554 blogs · [ { "id": "01a087bf-212f-71e0-88bc-f556ed295d48", "title": "Apply sysctl before systemd: a lesson from reserving ephemeral ports too late", "url": "https://peng.fyi/post/apply-sysctl-before-systemd/", "published_at": "2026-08-01T00:00:00+00:00" }, { "id": "01a087bf-212f-71e0-88bc-f556edfd6362", "title": "Don't hardcode fsync in your library", "url": "https://peng.fyi/post/dont-make-fsync-default-in-library/", "published_at": "2026-07-20T00:00:00+00:00" }, { "id": "01a087bf-212f-71e0-88bc-f556ee452290", "title": "When enforcing OCI image spec broke customer containers", "url": "https://peng.fyi/post/when-enforcing-image-spec-broke-customer-containers/", "published_at": "2026-06-11T00:00:00+00:00" }, { "id": "01a087bf-212f-71e0-88bc-f556ef0f49d0", "title": "Why a Trailing Dot in DNS Can Break Your Customers", "url": "https://peng.fyi/post/trailing-dot-dns/", "published_at": "2026-06-10T00:00:00+00:00" }, { "id": "01a087bf-212f-71e0-88bc-f556efdf3bb5", "title": "How cgo silently disables Go's deadlock detector", "url": "https://peng.fyi/post/cgo-disables-deadlock-detecter/", "published_at": "2026-05-04T00:00:00+00:00" }, { "id": "01a087bf-212f-71e0-88bc-f556f05027fa", "title": "Replacing socat with systemd-socket-proxyd", "url": "https://peng.fyi/post/systemd-socket-proxyd-repalce-socat/", "published_at": "2026-03-30T00:00:00+00:00" }, { "id": "01a087bf-212f-71e0-88bc-f556f068891f", "title": "You probably want to disable cgo: Go's stdlib has pure-Go implementations", "url": "https://peng.fyi/post/go-cgo-enabled-default-and-pure-go-alternatives/", "published_at": "2026-03-25T00:00:00+00:00" }, { "id": "01a087bf-212f-71e0-88bc-f556f12b0767", "title": "Who killed my service: collecting kernel kill logs with OTEL", "url": "https://peng.fyi/post/collect-kernel-kill-logs-with-otel-collector/", "published_at": "2026-03-10T00:00:00+00:00" }, { "id": "01a087bf-212f-71e0-88bc-f556f1f4b760", "title": "Avoid using 2D map for transition table in Go", "url": "https://peng.fyi/post/avoid-2d-map-for-state-transition-in-go/", "published_at": "2026-02-26T00:00:00+00:00" }, { "id": "01a087bf-212f-71e0-88bc-f556f2108d0c", "title": "cached-imds-client: cache static IMDS responses to avoid linklocal_allowance_exceeded on EC2", "url": "https://peng.fyi/post/cache-imds-to-avoid-linklocal-throttle/", "published_at": "2026-02-15T00:00:00+00:00" }, { "id": "01a087bf-212f-71e0-88bc-f556f2d6f3aa", "title": "Using WaitGroup to Track Work Items, Not Workers: A Multi-threaded BFS Example", "url": "https://peng.fyi/post/waitgroup-track-work-not-workers-multi-thread-bfs/", "published_at": "2026-02-15T00:00:00+00:00" }, { "id": "01a087bf-212f-71e0-88bc-f556f33ca269", "title": "Simplify device path on boot with udev", "url": "https://peng.fyi/post/simplify-device-path-on-boot-with-udev/", "published_at": "2026-02-02T00:00:00+00:00" }, { "id": "01a087bf-212f-71e0-88bc-f556f35bc9d7", "title": "Use KillMode=process with caution: restart loop could deplete resources", "url": "https://peng.fyi/post/think-again-before-use-killmode-process/", "published_at": "2025-12-12T00:00:00+00:00" }, { "id": "01a087bf-212f-71e0-88bc-f556f3e90645", "title": "Spawning a New Process for Socket-Activated Daemons is Error-Prone", "url": "https://peng.fyi/post/antipattern-in-socket-activation-spawn-new-process-for-the-daemon/", "published_at": "2025-12-10T00:00:00+00:00" }, { "id": "01a087bf-212f-71e0-88bc-f556f437fa51", "title": "Be careful making thread-aware syscalls in Go: lock the thread", "url": "https://peng.fyi/post/thread-aware-syscall-in-go-lock-the-thread/", "published_at": "2025-10-20T00:00:00+00:00" }, { "id": "01a087bf-212f-71e0-88bc-f556f4dd9ed0", "title": "Speed up building Bottlerocket image in AWS CodeBuild", "url": "https://peng.fyi/post/speed-up-building-br-image-in-codebuild/", "published_at": "2025-10-20T00:00:00+00:00" }, { "id": "01a087bf-212f-71e0-88bc-f556f5a3f00e", "title": "Mysterious Image Pull Failures: \"401 Unauthorized\" and \"Not Found\" After Migrating Containerd to v2", "url": "https://peng.fyi/post/mysterious-image-pull-failure-wait-for-interface-ready/", "published_at": "2025-10-12T00:00:00+00:00" }, { "id": "01a087bf-212f-71e0-88bc-f556f62a814e", "title": "EC2 IMDS is Unstable During Early Boot: Always Retry", "url": "https://peng.fyi/post/retry-imds-request/", "published_at": "2025-09-15T00:00:00+00:00" }, { "id": "01a087bf-212f-71e0-88bc-f556f71e2edc", "title": "Who Modified My Program in Bottlerocket?", "url": "https://peng.fyi/post/who-moved-my-program/", "published_at": "2025-09-11T00:00:00+00:00" }, { "id": "01a087bf-212f-71e0-88bc-f556f7d1e3d7", "title": "Introducing bottlerocket-extra-kit: Essential debugging tools for Bottlerocket", "url": "https://peng.fyi/post/debug-on-bottlerocket-and-introduce-bottlerocket-extra-kit/", "published_at": "2025-09-01T00:00:00+00:00" }, { "id": "01a087bf-212f-71e0-88bc-f556f8461ab5", "title": "Tips for Building Bottlerocket AMIs", "url": "https://peng.fyi/post/tips-build-bottlerocket-ami/", "published_at": "2025-08-20T00:00:00+00:00" }, { "id": "01a087bf-212f-71e0-88bc-f556f8ee68f0", "title": "Working Knowledge of Linux Memory: Concepts", "url": "https://peng.fyi/post/working-knowledge-of-linux-memory-concepts/", "published_at": "2025-08-04T00:00:00+00:00" }, { "id": "01a087bf-212f-71e0-88bc-f556f9ac2b2c", "title": "Detect and fix rare cases where the primary ENI does not serve default traffic", "url": "https://peng.fyi/post/swap-eth-names-when-primary-eni-does-not-serve-default-traffic/", "published_at": "2025-07-27T00:00:00+00:00" }, { "id": "01a087bf-212f-71e0-88bc-f556fa962a2f", "title": "SELinux Concepts", "url": "https://peng.fyi/post/selinux-part-1-concepts/", "published_at": "2025-06-15T00:00:00+00:00" }, { "id": "01a087bf-212f-71e0-88bc-f556fb4d39b9", "title": "Modern Go idioms", "url": "https://peng.fyi/post/modern-go-idioms/", "published_at": "2025-05-18T00:00:00+00:00" }, { "id": "01a087bf-212f-71e0-88bc-f556fb88e843", "title": "A Few Shell Surprises", "url": "https://peng.fyi/post/a-few-shell-surprises/", "published_at": "2025-04-22T00:00:00+00:00" }, { "id": "01a087bf-212f-71e0-88bc-f556fb9e1f96", "title": "x509: certificate signed by unknown authority? Maybe the cert pool is empty", "url": "https://peng.fyi/post/empty-cert-pool-x509-certificate-signed-by-unknown-authority/", "published_at": "2025-04-15T00:00:00+00:00" }, { "id": "01a087bf-212f-71e0-88bc-f556fc153ce4", "title": "Sharp edges of errgroup: Lessons from an errgroup and Context mishap", "url": "https://peng.fyi/post/lessons-from-an-errgroup-and-context-mishap/", "published_at": "2025-03-23T00:00:00+00:00" }, { "id": "01a087bf-212f-71e0-88bc-f556fc85d94a", "title": "Avoid panic on expected errors: lessons from operating journald-to-cwl", "url": "https://peng.fyi/post/avoid-panic-on-expected-error/", "published_at": "2025-02-23T00:00:00+00:00" }, { "id": "01a087bf-212f-71e0-88bc-f556fd542ddd", "title": "GPG is still in use to verify downloads", "url": "https://peng.fyi/post/gpg-is-still-in-use/", "published_at": "2025-02-23T00:00:00+00:00" }, { "id": "01a087bf-212f-71e0-88bc-f556fd9654a5", "title": "Why does GOMEMLIMIT take up significant physical memory for unused virtual memory?", "url": "https://peng.fyi/post/why-does-gomemlimit-take-up-significant-physical-memory-for-unused-virtual-memory/", "published_at": "2025-01-19T00:00:00+00:00" }, { "id": "01a087bf-212f-71e0-88bc-f556fe739f80", "title": "Don't Use stderr to Determine Process Failure Because Logs Default to stderr", "url": "https://peng.fyi/post/logs-go-to-stderr-by-default/", "published_at": "2024-11-30T00:00:00+00:00" }, { "id": "01a087bf-212f-71e0-88bc-f556ff73893a", "title": "AL2023 vs. AL2: less disk space with ext4?", "url": "https://peng.fyi/post/al2023-vs-al2-less-disk-space-with-ext4/", "published_at": "2024-11-17T00:00:00+00:00" }, { "id": "01a087bf-212f-71e0-88bc-f556ffff2994", "title": "Ways Go programs die", "url": "https://peng.fyi/post/ways-go-programs-die/", "published_at": "2024-11-10T00:00:00+00:00" }, { "id": "01a087bf-212f-71e0-88bc-f55700132a4c", "title": "Missing Container Disk I/O Stats with cgroup v1 on Kernel 6.1", "url": "https://peng.fyi/post/container-disk-io-stats-missing-on-kernel-6.1-cgroupv1/", "published_at": "2024-11-09T00:00:00+00:00" }, { "id": "01a087bf-212f-71e0-88bc-f55700c3e51a", "title": "Mind ordering cycles in systemd: how systemd breaks them can brick server startup", "url": "https://peng.fyi/post/systemd-cycle-dependencies/", "published_at": "2024-10-16T00:00:00+00:00" }, { "id": "01a087bf-212f-71e0-88bc-f5570119b394", "title": "Monotonicity: Find 1-3-2 Pattern", "url": "https://peng.fyi/post/monotonicity-subinterval-132/", "published_at": "2024-10-14T00:00:00+00:00" }, { "id": "01a087bf-212f-71e0-88bc-f55701e1c380", "title": "Hoare Partition, one of the simplest and most beautiful algorithms", "url": "https://peng.fyi/post/hoare-partition/", "published_at": "2024-06-17T00:00:00+00:00" }, { "id": "01a087bf-212f-71e0-88bc-f55701f017ee", "title": "No More Confusion of Upstream and Downstream", "url": "https://peng.fyi/post/upstream-and-downstream/", "published_at": "2024-03-07T00:00:00+00:00" }, { "id": "01a087bf-212f-71e0-88bc-f557022db8e8", "title": "False sharing: a look at cache line and write combining", "url": "https://peng.fyi/post/false-sharing-cacheline-and-write-buffer/", "published_at": "2024-02-23T00:00:00+00:00" }, { "id": "01a087bf-212f-71e0-88bc-f5570295038b", "title": "Binary Search in Go standard library", "url": "https://peng.fyi/post/binary-search-in-go-sdk/", "published_at": "2024-02-11T00:00:00+00:00" }, { "id": "01a087bf-212f-71e0-88bc-f557034a71b4", "title": "Monotonic Stack: Steps to Make Array Non-decreasing", "url": "https://peng.fyi/post/steps-to-make-array-non-decreasing/", "published_at": "2024-01-28T00:00:00+00:00" }, { "id": "01a087bf-212f-71e0-88bc-f557038ea76c", "title": "Calculate number of nodes in a linear network using message passing", "url": "https://peng.fyi/post/calculate-linear-network-size-by-message-passing/", "published_at": "2024-01-20T00:00:00+00:00" }, { "id": "01a087bf-212f-71e0-88bc-f557044011c7", "title": "Nested Map: Breakdown analysis of events and return result as nested JSON", "url": "https://peng.fyi/post/breakdown-analysis-nested-json/", "published_at": "2024-01-19T00:00:00+00:00" }, { "id": "01a087bf-212f-71e0-88bc-f557048d6b1d", "title": "Factorial Growth of Subqueries When Using Nested WITH Clauses in ClickHouse", "url": "https://peng.fyi/post/factorial-growth-of-clickhouse-with-clause/", "published_at": "2024-01-12T00:00:00+00:00" }, { "id": "01a087bf-212f-71e0-88bc-f557051be428", "title": "Maglev Hash: Consistent Hash with Guaranteed Even Distribution", "url": "https://peng.fyi/post/maglev-hash-alternatives-for-ring-hash/", "published_at": "2024-01-07T00:00:00+00:00" }, { "id": "01a087bf-212f-71e0-88bc-f55705a724b3", "title": "Monotonicity: Sliding Window", "url": "https://peng.fyi/post/monotonicity-sliding-window/", "published_at": "2023-11-27T00:00:00+00:00" }, { "id": "01a087bf-212f-71e0-88bc-f55705c4a2f7", "title": "Monotonicity: Find Largest Subarrays for Each Array Element", "url": "https://peng.fyi/post/monotonicity-stack/", "published_at": "2023-11-23T00:00:00+00:00" }, { "id": "01a087bf-212f-71e0-88bc-f557069a1f57", "title": "Set GOMAXPROCS for Go programs in containers", "url": "https://peng.fyi/post/gomaxprocs-in-container/", "published_at": "2023-11-22T00:00:00+00:00" }, { "id": "01a087bf-212f-71e0-88bc-f55706f3e28a", "title": "A simple and customizable load test tool in Go", "url": "https://peng.fyi/post/simple-customizable-loadtest/", "published_at": "2023-10-15T00:00:00+00:00" }, { "id": "01a087bf-212f-71e0-88bc-f557079feb63", "title": "Monotonicity: Find the K-th number in two sorted arrays", "url": "https://peng.fyi/post/kth-number-in-two-sorted-arrays/", "published_at": "2023-10-10T00:00:00+00:00" }, { "id": "01a087bf-212f-71e0-88bc-f55707faaef4", "title": "Priority Map: A hash map with access of the minimum value", "url": "https://peng.fyi/post/priority-map/", "published_at": "2023-10-09T00:00:00+00:00" }, { "id": "01a087bf-212f-71e0-88bc-f55708cafca1", "title": "Gotchas of defer in Go", "url": "https://peng.fyi/post/gotchas-of-defer-in-go/", "published_at": "2023-09-10T00:00:00+00:00" }, { "id": "01a087bf-212f-71e0-88bc-f557094b780a", "title": "CORS error with 504 Gateway timeout", "url": "https://peng.fyi/post/cors-error-with-504/", "published_at": "2023-09-01T00:00:00+00:00" }, { "id": "01a087bf-212f-71e0-88bc-f5570a2c944f", "title": "Deep dive in \"context canceled\" errors on Go web servers", "url": "https://peng.fyi/post/context-cancel-go-web/", "published_at": "2023-06-29T00:00:00+00:00" }, { "id": "01a087bf-212f-71e0-88bc-f5570ac3ecbc", "title": "Simplicity By Default", "url": "https://peng.fyi/post/simplicity-by-default/", "published_at": "2023-05-23T00:00:00+00:00" }, { "id": "01a087bf-212f-71e0-88bc-f5570ae3ed80", "title": "Six Options for Generating Distributed Unique IDs", "url": "https://peng.fyi/post/six-options-generating-distributed-ids/", "published_at": "2023-04-20T00:00:00+00:00" }, { "id": "01a087bf-212f-71e0-88bc-f5570b402a1d", "title": "Creating test doubles in Go, manual or auto-generated?", "url": "https://peng.fyi/post/creating-test-doubles-in-go-manual-or-generated/", "published_at": "2023-03-30T00:00:00+00:00" } ] posts Claim your blog
Back to peng.fyi
Blog · corpus.blog/blogs/peng.fyi/posts

peng.fyi

peng.fyi

2026

2025

2024

2023