Karn Wong
karnwong.me
Karn Wong
@karnwong.me
A systems engineer by background. Platform engineer by trade. Technical leadership.

https://karnwong.me
Pinned
Hi Folks 👋

I'm a systems engineer by background, picked up data and ML along the way. Currently I'm an Engineering Manager.

I'm specialized in systems optimization.

I code in Terraform, Bash, Go, Rust, Python.

More about me at: karnwong.me

#introduction
Karn Wong
Homepage and blog by Karn Wong
karnwong.me
Because data is beautiful
Electricity use of AI coding agents | Simon P. Couch – Simon P. Couch
www.simonpcouch.com
February 12, 2026 at 5:42 AM
Slides for National Coding Day 2026@Bangkok, TH. Mostly about why you should refactor, and things that are hard to rectify once they went to production.

Also for those who's curious about AI impact, fret not. As long as AI can't bridge the gap between IT and Finance for FinOps we are safe.
National Coding Day 2026 - Software Evolution: The Complete Lifecycle
speakerdeck.com
February 3, 2026 at 4:26 AM
Because you can't call it a day after releasing an agentic product. Gotta plug security holes as well, and because data exfiltration isn't fun.
Advent of AI Security 2025
A friendly, step-by-step Advent calendar of AI security risks and hands-on examples for practitioners and curious engineers.
advent-of-ai-security.com
January 26, 2026 at 8:14 AM
You can't stop students from using AI. But you can make them think very hard about it, because wrong answers with AI help means you lose more points.

This I like!
Giving University Exams in the Age of Chatbots
Giving University Exams in the Age of Chatbots par Ploum - Lionel Dricot.
ploum.net
January 22, 2026 at 12:53 PM
great read regarding recent ux on mac os (which I'm not too happy about)
It’s hard to justify Tahoe icons
Looking at the first principles of icon design—and how Apple failed to apply all of them in macOS Tahoe
tonsky.me
January 22, 2026 at 5:21 AM
In case you are looking for bedtime stories. Love the illustrations!

- authzed.com/resources/di...
- www.gentlydownthe.stream
- www.cncf.io/phippy/the-c...
January 19, 2026 at 7:48 AM
ONNX inference on multiple platforms, because I just had to know. These are baseline performance, no optimizations or accelerators.

karnwong.me/posts/2026/0...
ONNX Multi-platform benchmark
karnwong.me
January 12, 2026 at 9:56 AM
Slides from Microsoft Ignite After Party 2025 is up.

TLDR: make your services portable so you don't have to spend too much time on supporting multiple infrastructures. Because some of your workloads might be on-prem, some are on cloud. This way, it's easier to maintain and you get more sleep 😪
Microsoft Ignite After Party 2025 - Azure Infrastructure for Cloud Native Solutions
speakerdeck.com
January 7, 2026 at 4:43 AM
This month there's 2 high severity CVEs. I recommend using github.com/anchore/grype to scan your codebase to check for vulns. You can use it in CI as well.
December 16, 2025 at 8:47 AM
Terraform CDKTF will sunset. There is pulumi if you still prefer programming languages interface for IaC, but you might need to change some of your workflows.

Alternative is vendor's IaC solution, such as AWS CDK, but if you have to work with stuff outside of AWS perimeter it might be challenging.
December 16, 2025 at 8:43 AM
Recently gave a talk about in-browser ML/LLM inference, if you can get by with small models, and that you don't want to maintain a separate ML inference system (because finding ops who are familiar with python deployment is rare).

Slides here: speakerdeck.com/kahnwong/llm...
December 3, 2025 at 8:19 AM
Recommend these for markdown linter/formatter
- github.com/rvben/rumdl - for markdown itself
- github.com/hougesen/mdsf - for markdown code blocks

As for pre-commit, github.com/j178/prek. It's backward compatible with pre-commit.

All are written in rust. Fast, that they are 😎.
November 21, 2025 at 7:36 AM
Was implementing SMART reading feature for my cli utils app, and found that my server's ssd is on its last legs. Replaced the ssd and use the old one for a temp mountpoint. 2 weeks later it suddently disconnected, and `sudo blkid` hangs. I think I dodged a bullet there.
October 23, 2025 at 2:58 AM
Recently gave a talk at PyCon Thailand about ONNX.

TLDR; stacking ONNX with rust can reduce latency by 20%.

See workshop repo in the slides.

karnwong.me/speaking/
October 21, 2025 at 8:44 AM
I have a secrets sharing service deployed for personal use. Once the secret is accessed, it's gone.

My friend just told me that he's been using the said service I deployed for "personal use" with his "team". Because he trusts my server.

I'll take that as a compliment 😆
September 26, 2025 at 8:17 AM
This secrets scanning tool is very fast, and it returns normal exit code when found secrets. Very impressed!

Normally I don't use mongodb (only for storing logs) but gotta say this is a gem.

github.com/mongodb/king...
September 12, 2025 at 8:18 AM
I use 3 machines on a daily basis. One for desk, kitchen and bedroom. Nix makes a lot of things easier, but auxiliary tools help.

This setup allows me to switch between machines at a moment's notice. Been rocking this setup for 3-4 years, so it's been tested in prod.

karnwong.me/posts/2025/0...
September 12, 2025 at 6:15 AM
Cranked out a benchmark for spatial join. Indexes do help a lot, and this means you can use frameworks without spatial support to do spatial stuff.

There's duckdb, pandas, polars, postgis, spark, datafusion.

karnwong.me/posts/2025/0...
September 1, 2025 at 7:38 AM
polars is faster than pandas. But when it comes to spatial operations everyone fallbacks to geopandas, especially when it comes to reading geoparquet files.

I find this very amusing, but personally I use spark sedona 😛
August 27, 2025 at 1:09 PM
Documented my setup for static lib linking in Go. It was really fun, and I gotta say the experience is very polished. At least it's easier than using swig with python to achieve the equivalent.

karnwong.me/posts/2025/0...
August 26, 2025 at 12:21 PM
Monitoring a lot of services mean if someone magically forward critical logs to SRE room I'd die happy. Trawling through logs take time, and you have to filter out a lot of irrelevant stuff. Having critical logs directly served means less cognitive load, yay devx.

karnwong.me/posts/2023/0...
August 25, 2025 at 5:44 AM
Good stuff, but doesn't seem to support ONNX converted from scikit-learn.

Seems like it only support neural networks.

github.com/google-ai-ed...
August 23, 2025 at 4:30 AM
Too much cognitive load? Try adopting DevX.

I know I sleep better when I can repro prod setup via containers locally 🐳

karnwong.me/posts/2023/0...
August 22, 2025 at 3:00 AM
I use at least 4 messaging apps because my friends have different preferences.

I use multiple machines and firing up all apps kinda got tedious, then I remember there's matrix bridges. Got it working and now I can text all my friends from one place. Yay open-source.
August 20, 2025 at 8:41 AM
Oldie but goodie. Because we should be kind to other people. And juggling multiple functions isn't fun because it requires a lot of cognitive load.

Also there's a difference between using a pipeline and having to create one yourself.

And because it's a team sport :)

karnwong.me/posts/2023/1...
August 19, 2025 at 2:03 AM