41554 blogs · [ { "id": "01a087c5-ca42-7021-b9f1-0f9c9040afc4", "title": "Reading List", "url": "https://pliutau.com/reading-list/", "published_at": "2026-09-09T03:24:39+00:00" }, { "id": "01a087c5-ca42-7021-b9f1-0f9c9112aed9", "title": "De-Googling: Replacing Google Search with Kagi", "url": "https://pliutau.com/from-google-to-kagi/", "published_at": "2026-08-31T08:00:00+00:00" }, { "id": "01a087c5-ca42-7021-b9f1-0f9c91dca867", "title": "Books I Read in 2025", "url": "https://pliutau.com/books-2025/", "published_at": "2025-12-24T12:00:00+00:00" }, { "id": "01a087c5-ca42-7021-b9f1-0f9c92aff09f", "title": "Running MinIO locally with Docker Compose", "url": "https://pliutau.com/local-minio-docker-compose-buckets/", "published_at": "2025-10-04T11:00:00+00:00" }, { "id": "01a087c5-ca42-7021-b9f1-0f9c936b45ca", "title": "About", "url": "https://pliutau.com/about/", "published_at": "2025-09-29T09:00:00+00:00" }, { "id": "01a087c5-ca42-7021-b9f1-0f9c93f8c465", "title": "Projects", "url": "https://pliutau.com/projects/", "published_at": "2025-09-11T14:00:00+00:00" }, { "id": "01a087c5-ca42-7021-b9f1-0f9c944b584d", "title": ".gitignore everything by default", "url": "https://pliutau.com/git-ignore-everything-by-default/", "published_at": "2025-09-04T09:00:00+00:00" }, { "id": "01a087c5-ca42-7021-b9f1-0f9c94c787d2", "title": "Deploy Hugo static site to Hetzner", "url": "https://pliutau.com/deploy-hugo-to-hetzner-vps/", "published_at": "2025-09-03T09:00:00+00:00" }, { "id": "01a087c5-ca42-7021-b9f1-0f9c956a863f", "title": "Auto-generated Reading List", "url": "https://pliutau.com/reading-list-rss/", "published_at": "2025-07-10T00:00:00+00:00" }, { "id": "01a087c5-ca42-7021-b9f1-0f9c958c817a", "title": "Minesweeper with Raylib Go Bindings", "url": "https://pliutau.com/minesweeper-in-golang-raylib/", "published_at": "2025-02-28T19:00:00+00:00" }, { "id": "01a087c5-ca42-7021-b9f1-0f9c9672878f", "title": "My first Zig program - zigping", "url": "https://pliutau.com/my-first-zig-program-zigping/", "published_at": "2025-02-06T20:00:00+00:00" }, { "id": "01a087c5-ca42-7021-b9f1-0f9c971085f4", "title": "Map with Expiration in Go", "url": "https://pliutau.com/map-with-expiration-go/", "published_at": "2024-10-02T18:17:12+00:00" }, { "id": "01a087c5-ca42-7021-b9f1-0f9c9754240d", "title": "My first experience with OCaml", "url": "https://pliutau.com/my-first-experience-with-ocaml/", "published_at": "2024-09-17T13:00:00+00:00" }, { "id": "01a087c5-ca42-7021-b9f1-0f9c97d1f67c", "title": "Centrally Collecting Events from Go Microservices", "url": "https://pliutau.com/centrally-collecting-events-in-go-microservices/", "published_at": "2024-09-12T11:00:00+00:00" }, { "id": "01a087c5-ca42-7021-b9f1-0f9c9809019a", "title": "An Ode to Logging", "url": "https://pliutau.com/an-ode-to-logging/", "published_at": "2024-09-02T11:00:00+00:00" }, { "id": "01a087c5-ca42-7021-b9f1-0f9c988722eb", "title": "My first experience with Gleam Language", "url": "https://pliutau.com/my-first-experience-with-gleam-lang/", "published_at": "2024-08-27T06:00:00+00:00" }, { "id": "01a087c5-ca42-7021-b9f1-0f9c9960c80f", "title": "Snake game in Go using Ebiten", "url": "https://pliutau.com/ebiten-snake/", "published_at": "2022-08-01T14:08:07+00:00" }, { "id": "01a087c5-ca42-7021-b9f1-0f9c99fdd026", "title": "Logging in Go using logrus", "url": "https://pliutau.com/logging-in-go-logrus/", "published_at": "2021-04-12T07:23:54+00:00" }, { "id": "01a087c5-ca43-73bf-ab94-ecc64309cea5", "title": "Engineering Management Books", "url": "https://pliutau.com/engineering-management-books/", "published_at": "2020-12-06T11:00:05+00:00" }, { "id": "01a087c5-ca43-73bf-ab94-ecc6436101cf", "title": "Writing testable Go code", "url": "https://pliutau.com/writing-testable-go-code/", "published_at": "2020-05-04T19:34:44+00:00" }, { "id": "01a087c5-ca43-73bf-ab94-ecc643c7d3de", "title": "Writing REST API Client in Go", "url": "https://pliutau.com/writing-api-go-client/", "published_at": "2020-04-27T10:36:20+00:00" }, { "id": "01a087c5-ca43-73bf-ab94-ecc6442c7330", "title": "Mounting Google Cloud Storage bucket to Kubernetes Pod", "url": "https://pliutau.com/mount-gcs-bucket-k8s/", "published_at": "2020-04-23T10:57:00+00:00" }, { "id": "01a087c5-ca43-73bf-ab94-ecc644be0d27", "title": "Google Home Action to manage your Kubernetes cluster", "url": "https://pliutau.com/google-home-k8s/", "published_at": "2019-08-26T10:22:12+00:00" }, { "id": "01a087c5-ca43-73bf-ab94-ecc64563d2ee", "title": "Rate Limiting HTTP Requests in Go based on IP address", "url": "https://pliutau.com/rate-limit-http-requests/", "published_at": "2019-08-09T08:52:38+00:00" }, { "id": "01a087c5-ca43-73bf-ab94-ecc645dd85ac", "title": "Building Desktop App in Go using Wails", "url": "https://pliutau.com/wails-go-vuejs/", "published_at": "2019-05-06T19:27:13+00:00" }, { "id": "01a087c5-ca43-73bf-ab94-ecc646a5d65e", "title": "Database Migrations with Go and Kubernetes", "url": "https://pliutau.com/database-migrations-with-go-and-k8s/", "published_at": "2019-02-18T10:41:00+00:00" }, { "id": "01a087c5-ca43-73bf-ab94-ecc646dad7d3", "title": "Google Cloud Functions in Go", "url": "https://pliutau.com/google-cloud-functions-in-go/", "published_at": "2019-01-21T08:15:41+00:00" }, { "id": "01a087c5-ca43-73bf-ab94-ecc647401dc8", "title": "Ultimate ClickHouse Helm Chart", "url": "https://pliutau.com/ultimate-clickhouse-helm-chart/", "published_at": "2019-01-02T12:29:37+00:00" }, { "id": "01a087c5-ca43-73bf-ab94-ecc648330d4c", "title": "Table driven tests in Go", "url": "https://pliutau.com/table-driven-tests-in-go/", "published_at": "2018-08-07T04:02:46+00:00" }, { "id": "01a087c5-ca43-73bf-ab94-ecc648f93188", "title": "Getting Started with OAuth2 in Go", "url": "https://pliutau.com/getting-started-with-oauth2-in-go/", "published_at": "2018-05-30T07:48:29+00:00" }, { "id": "01a087c5-ca43-73bf-ab94-ecc649ee1c46", "title": "Building a Slack Bot with Go and Wit.ai", "url": "https://pliutau.com/building-slack-bot-with-go/", "published_at": "2018-05-23T01:27:36+00:00" }, { "id": "01a087c5-ca43-73bf-ab94-ecc64a847baf", "title": "Transitioning from Engineer to Engineering Manager", "url": "https://pliutau.com/transitioning-from-eng-to-em/", "published_at": "2018-05-12T02:21:50+00:00" }, { "id": "01a087c5-ca43-73bf-ab94-ecc64b1abd66", "title": "Face Detection in Go using OpenCV and MachineBox", "url": "https://pliutau.com/face-detection-in-go-machinebox-opencv/", "published_at": "2018-01-19T03:32:25+00:00" }, { "id": "01a087c5-ca43-73bf-ab94-ecc64bafd724", "title": "Go tools are awesome", "url": "https://pliutau.com/go-tools-are-awesome/", "published_at": "2017-12-11T03:39:55+00:00" }, { "id": "01a087c5-ca43-73bf-ab94-ecc64bd9265a", "title": "Slack Stranger Bot in Go", "url": "https://pliutau.com/slack-stranger-bot-in-go/", "published_at": "2017-10-12T03:17:18+00:00" }, { "id": "01a087c5-ca43-73bf-ab94-ecc64bfd99b7", "title": "Benchmarking gRPC+Protobuf vs HTTP+JSON in Go", "url": "https://pliutau.com/benchmark-grpc-protobuf-vs-http-json/", "published_at": "2017-10-08T07:48:53+00:00" }, { "id": "01a087c5-ca43-73bf-ab94-ecc64c542607", "title": "Garbage Collection in Git", "url": "https://pliutau.com/git-gc/", "published_at": "2017-07-21T08:48:14+00:00" }, { "id": "01a087c5-ca43-73bf-ab94-ecc64cab7cd5", "title": "Using different Git emails", "url": "https://pliutau.com/using-different-git-emails/", "published_at": "2017-07-09T15:28:23+00:00" }, { "id": "01a087c5-ca43-73bf-ab94-ecc64d63f41d", "title": "Working with DB datetime/date columns in Go", "url": "https://pliutau.com/working-with-db-time-in-go/", "published_at": "2017-05-26T06:27:00+00:00" }, { "id": "01a087c5-ca43-73bf-ab94-ecc64e5a52a6", "title": "Multi-stage Dockerfile for Golang application", "url": "https://pliutau.com/multi-stage-dockerfile-for-golang-application/", "published_at": "2017-04-30T05:47:27+00:00" }, { "id": "01a087c5-ca43-73bf-ab94-ecc64f3471dc", "title": "Useful Git global config and ignore rules", "url": "https://pliutau.com/useful-global-git-config-and-ignore-rules/", "published_at": "2017-04-28T03:47:24+00:00" }, { "id": "01a087c5-ca43-73bf-ab94-ecc6500da90c", "title": "Different ways to block Go runtime forever", "url": "https://pliutau.com/different-ways-to-block-go-runtime-forever/", "published_at": "2017-04-24T13:39:13+00:00" }, { "id": "01a087c5-ca43-73bf-ab94-ecc650d3042a", "title": "How to build Go plugin with data inside", "url": "https://pliutau.com/how-to-build-go-plugin-with-data-inside/", "published_at": "2017-04-04T13:45:14+00:00" }, { "id": "01a087c5-ca43-73bf-ab94-ecc651be414a", "title": "How to use go-bindata with html/template", "url": "https://pliutau.com/go-bindata-html-template/", "published_at": "2017-03-27T07:26:12+00:00" }, { "id": "01a087c5-ca43-73bf-ab94-ecc651f66aef", "title": "How to separate Unit and Integration tests in Go", "url": "https://pliutau.com/separate_unit_integration_tests/", "published_at": "2017-03-02T04:25:19+00:00" }, { "id": "01a087c5-ca43-73bf-ab94-ecc652555b7d", "title": "How to mock exec.Command in Go", "url": "https://pliutau.com/how_to_mock_exec_command/", "published_at": "2017-02-27T03:15:26+00:00" }, { "id": "01a087c5-ca43-73bf-ab94-ecc652c36bc5", "title": "Swaggerize your APIs", "url": "https://pliutau.com/swaggerize-your-api/", "published_at": "2016-10-03T05:27:19+00:00" }, { "id": "01a087c5-ca43-73bf-ab94-ecc652fa7db2", "title": "Go templates. Helper to render a struct", "url": "https://pliutau.com/struct-render-helper/", "published_at": "2016-09-08T03:17:34+00:00" }, { "id": "01a087c5-ca43-73bf-ab94-ecc653999945", "title": "UUID without dependencies in Go", "url": "https://pliutau.com/uuid-without-dependencies/", "published_at": "2016-08-26T07:17:34+00:00" }, { "id": "01a087c5-ca43-73bf-ab94-ecc65476c723", "title": "Concurrency. Data race", "url": "https://pliutau.com/concurrency-data-race/", "published_at": "2016-07-21T00:52:29+00:00" }, { "id": "01a087c5-ca43-73bf-ab94-ecc654fcf5ee", "title": "Working with DB nulls in Golang", "url": "https://pliutau.com/working-with-db-nulls/", "published_at": "2016-04-07T02:17:49+00:00" }, { "id": "01a087c5-ca43-73bf-ab94-ecc655abf919", "title": "Optimize Go binary size", "url": "https://pliutau.com/optimize-go-binary-size/", "published_at": "2016-03-01T03:18:54+00:00" }, { "id": "01a087c5-ca43-73bf-ab94-ecc656316090", "title": "Quiz yourself in Golang. Part 1", "url": "https://pliutau.com/go-lang-test/", "published_at": "2016-02-05T11:08:43+00:00" }, { "id": "01a087c5-ca43-73bf-ab94-ecc656d942f0", "title": "Measure performance changes with benchcmp", "url": "https://pliutau.com/measure-performance-changes/", "published_at": "2016-01-26T09:10:23+00:00" }, { "id": "01a087c5-ca43-73bf-ab94-ecc65713c366", "title": "Supported Go types for gomobile bind", "url": "https://pliutau.com/gomobile-bind-types/", "published_at": "2016-01-25T06:12:43+00:00" } ] posts Claim your blog
Back to pliutau.com
Blog · corpus.blog/blogs/pliutau.com/posts

pliutau.com

pliutau.com

2026

2025

29 Sept 2025

2024

2022

2021

2020

2019

2018

2017

2016