The Curious Engineer

All blogs / DevOps / SRE / infrastructure

Tuan-Anh Tran

tuananh.net

Recent content on Tuan-Anh Tran

DevOps / SRE / infrastructureSoftware / engineering practiceLinux / Unix

Posts
341 from 13 Jul 2013 to 6 Jun 2026
Posting
monthly (17 in the last year)
Kind
personal blog
Feed
https://tuananh.net/feed.xml

2026 16

  1. Some concerns about Ladybird's bylaws
  2. My tech stack (2026)
  3. Why your next mobile app is probably headless
  4. Relicensing with AI-assisted rewrite
  5. BuildKit: Docker's Hidden Gem That Can Build Almost Anything
  6. A Bug is a Bug, but a Patch is a Policy: The Case for Bootable Containers
  7. Hope Is Not a Security Strategy: Why Secure-by-Default Beats Hardening
  8. Shifting Left of CI
  9. The Post-Agentic World: The Economics of Abundant Intelligence
  10. I was wrong about AI agent sandboxing
  11. Achieving a 0-CVE OS for VMs: The End of Traditional Patching
  12. What has Docker become?
  13. Digital Footprint in the AI Era
  14. All Flash NAS Upgrade
  15. Phần mềm gõ tay
  16. Architecture for Disposable Systems

2025 10

  1. Fix Battle.net agent went to sleep BLZBNTBNA00000005
  2. Execution is cheap(er)
  3. On MCP security
  4. AI không còn là điểm khác biệt chiến lược của sản phẩm nữa
  5. Download view-only Google Sheets
  6. Writing your first Arch Linux package
  7. Lite Youtube Embed for Hugo
  8. OBS - Fedora fiasco
  9. In market for a new TV in 2025
  10. How to install Cursor CLI on Linux

2024 8

  1. 0x0.st - temporary file hoster
  2. PaX basic
  3. On adopting Chainguard Images
  4. Machine learning rig
  5. Roblox on Linux
  6. Cloud cost optimization at scale part 1
  7. Reproducibility
  8. Writing your first Wolfi package

2023 2

  1. Almost** instant k8s secret update for your application
  2. Assume role without instance profile

2022 1

  1. CS:GO launch failure fix

2021 10

  1. Public ECR and private subnets
  2. Shure MV7 working on Linux
  3. Using k8s kind "rootlessly" without Docker
  4. Làm quen với Pod Security Admission (PSA)
  5. My blogging setup these days
  6. How to write Node modules with Rust
  7. What the fuck is even GitOps
  8. Distributed tracing is the new structured logging
  9. The state of Linux on desktop (2020)
  10. Using Cloudflare Warp on Linux

2020 17

  1. An extremely fast streaming SAX parser for Node.js
  2. camaro v6
  3. From Zsh to Fish on macOS
  4. kubectl run generators removed
  5. Using Synology NFS as external storage with Kubernetes
  6. Debugging Kubernetes: Unable to connect to the server: EOF
  7. How to setup reverse proxy for homelab with Caddy server
  8. Tips for first time rack buyer
  9. How to setup a home VPN with Synology NAS
  10. How to adopt UniFi Security Gateway to an existing network
  11. Dynamic DNS with CloudFlare
  12. Traffic from #1 post on Hacker News
  13. The story behind my talk: Cloud Cost Optimization at Scale: How we use Kubernetes and spot instances to reduce EC2 billing up to 80%
  14. Thoughts on Workers KV
  15. Reader
  16. Experiment with Cloudflare Workers
  17. Brag document

2019 13

  1. Debugging with git bisect
  2. The state of tiling window manager on Windows 10
  3. A beginner guide to CPU air cooling
  4. Advanced filtering and sorting with redis (part 2)
  5. Pi-hole
  6. Microsoft Sculpt Ergonomic Desktop review
  7. Optimal team size
  8. From macOS to Windows 10
  9. Tips on reducing WASM file size with Emscripten
  10. Choosing a wireless router in 2019
  11. Some lessons learnt after converting a native module to WebAssembly
  12. How to delete Redis keys using pattern
  13. Autocomplete at speed of light

2018 13

  1. 2018: year in review
  2. My keyboard layout
  3. Favorite QMK hacks
  4. Fastest way to transform XML to JSON in Node.js
  5. Sharding and IDs
  6. Advanced filtering and sorting with redis (part 1)
  7. Notes on GraphQL
  8. Kubernetes Meetup #2 slide
  9. The Birth & Death of JavaScript
  10. Advice to new managers
  11. DejaLu - a new open source email client by Sparrow's author
  12. Series and parallel execution with async/await
  13. 2017: year in review

2017 29

  1. Building containers in pure Bash and C
  2. A better way to go through terminal command history
  3. The silence of the Lambda
  4. Traits of a good leader
  5. node-prune
  6. kompression - koa compression middleware with support for brotli
  7. Docker Containers on the Desktop
  8. If Your Boss Could Do Your Job, You’re More Likely to Be Happy at Work
  9. Kubernetes-hosted application checklist (part 1)
  10. Kubernetes-hosted application checklist (part 2)
  11. Minimal Node.js docker container
  12. Non-privileged containers FTW
  13. Recent Node.js TSC fuss
  14. node-pre-gyp and CI
  15. Tldr
  16. Getting started with WebAssembly
  17. The power of 2 random choices
  18. Camaro
  19. Parsing XML at the Speed of Light
  20. Redisearch - full text search with Redis
  21. minideb - a small base image based on Debian
  22. Using alpine as base Docker image
  23. Running twemproxy on kubernetes
  24. Setting up traefik as Ingress controller for Kubernetes
  25. n-api: add support for abi stable module API
  26. codis - proxy based redis cluster
  27. Redis as a JSON store
  28. Spot instances best practices
  29. Debugging why k8s autoscaler wouldn't scale down

2016 47

  1. smaz.js - a Node.js module binding for smaz
  2. Setting up fluentd log forwarding from Kubernetes to AWS Cloudwatch Logs
  3. GopherCon 2016: Kelsey Hightower - Building a custom Kubernetes scheduler
  4. Kubernetes spot termination notice handler
  5. Fix Terminal no longer uses keychain in MacOS Sierra
  6. Why we choose Kubernetes over ECS
  7. Bring in the Goddamn Adults Already
  8. Using ioredis with twemproxy
  9. kube-monkey
  10. Automate Let's Encrypt certificate genernation for Kubernetes Ingress
  11. Mycli
  12. Sharing secret data in Kubernetes
  13. Distelli - Your DevOps Dashboard for Kubernetes
  14. Using squid proxy to bypass 3rd party API IP whitelisting
  15. Getting started with Kubernetes
  16. Should I use yarn?
  17. The state of tiling window manager for OS X
  18. Amped
  19. Breaking changes between v4 LTS and v6 LTS
  20. Mincss
  21. Xbox Scorpio vs PS Neo
  22. Do’s and Don’ts of AWS Lambda
  23. How to import csv file in MySQL
  24. No More Vietnam
  25. Mildly interesting npm modules
  26. AWS Lambda
  27. Flynn 1.0
  28. Open-source PaaS on AWS
  29. Work hard and go home
  30. Refined Twitter
  31. Geo dynamic upstream with nginx
  32. Build command line tools with Node.js
  33. Classic Programmer Paintings
  34. Google kick-starts engineering team in Singapore
  35. Why JSON doesn't support comments
  36. Concurrency and parallelism
  37. Implement autocomplete with redis
  38. Welcome the second Pom to my family
  39. Setting up SSL certificate with Deis
  40. Search airport by city name
  41. How to install Discourse without Docker
  42. A look back at 2015
  43. MariaDB Raises $9M More, Michael Howard Named New CEO, Monty Widenius CTO
  44. Chuyện tiền nong
  45. Better MySQL pagination
  46. Performance at Rest
  47. Qmail

2015 54

  1. Explicit over clever
  2. Step by step how to install Deis on AWS
  3. Metalsmith - a static site generator written in Node.js
  4. Possibly the easiest way to setup rtorrent/rutorrent
  5. Snapp
  6. Stuff you may not know about console
  7. Node.js happy coding
  8. ES6 in Node.js
  9. Go Native - Calling C++ From NodeJS
  10. Atom is slow but that's okay
  11. Efficient branching workflow with git flow
  12. Hello, HotelQuickly!
  13. Cancelling $http request in AngularJS
  14. How to install ZeroMQ on Ubuntu
  15. My first Hackathon
  16. Vì sao tôi thích xài email hơn là điện thoại
  17. Markdown table sucks. Let's use jekyll's data files instead
  18. Tắt tiếng của tab ở Chrome
  19. A collective list of Manchester United players' autobiographies
  20. MusicBrainz Picard
  21. The Codeless Code - Fables and Kōans for the Software Engineer
  22. Đặc quyền con người qua trò ném giấy vào thùng
  23. Về một thách thức trong quá trình học hỏi
  24. Love
  25. Managing multiple SSH tunnels is easy with Secure Pipes
  26. Official Oracle driver for Node.JS
  27. Atom switches to io.js
  28. BitTorrent Sync as an alternate backup solution
  29. Incremental regeneration in latest jekyll build
  30. Theming Apache's mod_autoindex directory listing
  31. Some of the most useful tips I learn when working with NodeJS
  32. Install io.js on Mac OS X
  33. How the Other Half Works: an Adventure in the Low Status of Software Engineers
  34. Things software developers wish they had known in their 20s
  35. How movies could change your perception
  36. Fix WELD-001408 unsatisfied dependencies for type error when deploying to GlassFish
  37. REST APIs made easy with StrongLoop
  38. Microsoft HoloLens
  39. Create a contact form with jekyll
  40. Fuck callbacks! Let's use generators
  41. IO performance benchmark on RamNode
  42. bluebird - a promise library with unmatched performance
  43. So I upgraded my VPS
  44. Scaling node.js application with cluster
  45. io.js v1.0.0 released
  46. Using AngularJS with jekyll
  47. A minimal iTerm2 setup
  48. AngularJS diary - Day 4
  49. Pretender - a mock server library
  50. The next bullet on my resume: AngularJS
  51. How to setup rtorrent, rutorrent on Ubuntu
  52. Using GitHub issue tracker as comment system for your static blog
  53. Resume-driven developer
  54. Shower thought about movie recommedation

2014 71

  1. Inline Google fonts to further reduce number of blocking CSS resources
  2. Contexts is the perfect companion app for Amethyst
  3. How to burn a bootable ISO file to USB stick on OS X
  4. Awesome maching learning
  5. Deferred font loading and using localStorage as cache
  6. How to fix `Logon failed for login 'username' due to trigger execution` error with mssql
  7. nodejs: callback vs promise
  8. How to setup Sublime-IJulia with Sublime Text
  9. A conversation with stranger
  10. Social sharing button without embedding sharing script crap
  11. When static website isn't fast enough
  12. New theme
  13. BAT script to execute commands on remote Unix machine with PuTTY
  14. youtube-dl - A must have little gem in your toolbelt
  15. Shorter code is better?
  16. Where is the safest seat on airplane?
  17. Filco Majestouch 2 Ninja Italian Red (TKL) review
  18. Filco Majestouch 2 Italian Red (TKL) with blue switches
  19. How to find table name when knowing column name and column value in Oracle
  20. Some useful use cases for Java Reflection
  21. Poker 2 keyboard with Granite and Dolch keycaps
  22. Force Safari to refresh website's favicon
  23. How to setup your VPS as a seedbox in under 15 mins
  24. A poor man's seedbox for $15 a year
  25. LaunchRocket
  26. Download accelerators, managers for Mac
  27. How to lazy-load CSS with JavaScript
  28. Java 9 is coming with money API
  29. SafariTabSwitching
  30. Maxel - a native download accelerator for OS X
  31. A better sitemap for jekyll
  32. jQuery Tips and Tricks
  33. Is Mailbox (for Mac) the last email client you ever need?
  34. Fix unable to download huge files with varnish
  35. Lift - an app that put your goals into action
  36. Localization with jekyll
  37. My favorite tiling window manager for OS X
  38. How to setup Discourse local dev environment on OS X
  39. Post scheduling with jekyll
  40. CloudFlare to offer free-SSL by mid-October
  41. jekyll full-text search without jQuery or plugin
  42. Another attempt at regular blogging
  43. jekyll plugin directory
  44. Make your jekyll blog a little bit more SEO-friendly
  45. Paginated post plugin for jekyll
  46. How to use jekyll plugins with GitHub Pages
  47. Writing your first jekyll plugin
  48. Embedding Liquid code snippet with jekyll
  49. Monthly/yearly post archive generator plugin for jekyll
  50. Blogging with jekyll
  51. BetterTube - A jekyll plugin for embedding YouTube videos
  52. Optimizing the hell out of your site for PageSpeed
  53. Static assets combine with jekyll
  54. Things you may not know about JavaScript array
  55. How to connect to remote Postgres DB through ssh tunnel
  56. Returning query result as json array with Oracle 10G
  57. Setup custom error page for jekyll on nginx
  58. Speed up jekyll site generation with rsync
  59. Hydra - an open-source window manager for OS X written in Lua
  60. Clean code/dirty code
  61. How to use SSH tunnel to access blocked websites
  62. How to code like a dick in JS
  63. Cakebrew
  64. Matias Laptop Pro review
  65. Programming is like writing a book
  66. How to install Discourse on DigitalOcean
  67. Tự do ngôn luận
  68. Be happy
  69. Matias Quiet Pro black matte case mod
  70. My must-have Cydia tweaks/apps
  71. Matias Ergo Pro

2013 50

  1. GasMask keycap
  2. Features vs. Benefits
  3. Google Nexus 5 review
  4. Phân tâm
  5. IntelliJ IDEA 13 released
  6. If humans evolved from monkeys, then why are there still monkeys?
  7. Who Needs Stored Procedures, Anyways? (2004 post)
  8. IntelliJ IDEA 13 to be released with Java 7 Bundled Mac Installer
  9. How to use Source Code Pro font with JetBrains IDE
  10. FastR - an implementation of R in Java
  11. What goes into what in MVC
  12. How to group posts by month in Jekyll archive page
  13. The six most common species of code
  14. History of the browser user-agent string
  15. Hyde
  16. Humble New Tab Page
  17. Letter to a young programmer
  18. Pinboard tab sets
  19. Nexus 5 and Android KitKat
  20. Snip - another screenshot capture/annotation tool
  21. Flamingo for Mac
  22. Free OCR solution on OS X
  23. Amethyst - A tiling window manager for OS X
  24. Fixing Mac App Store error 100 when purchasing app
  25. FACEMATH
  26. Dropshelf
  27. FileBot
  28. Why We Hate Infographics And Why You Should
  29. Liquid
  30. Minbox
  31. Volume Scroll
  32. namebench
  33. Contexts for Mac
  34. Droplr Draw
  35. Link Post in Jekyll
  36. Nginx Plus
  37. Shiori - A Pinboard & Delicious Client for OS X
  38. Korean Buses Now Wirelessly Charge as They Drive
  39. Magic
  40. Z type
  41. How Koreans Solve Their Parking Issue and Saving Oil
  42. How To Fake Database Design
  43. homebrew-cask
  44. Daring Fireball User Custom Style
  45. Layouts v2.0
  46. MailDrop.cc - Free Throwaway Email Address
  47. Trolling Or Just Pure Stupidity!?
  48. Effeckt.css
  49. A Proposal to A Better Format for Research Paper
  50. Finally