Shopify
The Metaobject Query That Scanned Every Entry on Every Page
Metaobjects are great for structured merchant content, until a query with an unsupported filter loads every entry on every page view and filters them in Liquid.
I write about why software breaks and how people figure it out. Founder of Krova Cloud, building isolated microVMs on our own hypervisor. Years of Shopify theme work and shared hosting before that. If I have not reproduced it, I do not publish it.
Shopify
Metaobjects are great for structured merchant content, until a query with an unsupported filter loads every entry on every page view and filters them in Liquid.
Security
Any feature that fetches a URL the user supplies is a potential proxy into your internal network. The webhook settings page let an attacker reach the cloud…
Performance
After switching the pooler to transaction mode, the app started failing with 'prepared statement does not exist' at random.
DevOps
The canary looked healthy the entire time it was serving errors to real users. Five percent of traffic is not a sample, it is a rounding error, and your…
Tooling
When CPU goes to 100 percent and your metrics show nothing, sampling the kernel's own profiler for thirty seconds will hand you the exact function responsible.
Code Review
Four thousand changed lines, all whitespace, and one moved operator. The reviewer skimmed it as formatting and approved it.
Opinion
Some tests fail every time the code changes shape and pass every time it breaks. They are not guarding behaviour, they are guarding the current arrangement…
Deep Dive
Under memory pressure the kernel kills one process and not another, and it is not random. The oom score is a small arithmetic formula you can read, tune and…
Bug Hunt
I turned the flag on at 9am. The first request that saw it arrived at noon, after a restart someone did for an unrelated reason.
Error Autopsy
Your code did nothing wrong and still the process crashed with EPIPE. The other end closed the socket first, and your runtime turned an ordinary network…
Shopify
Section rendering is the right way to update a fragment without a full reload, and it is cacheable by default.
Security
We pinned the signing algorithm on the way out and trusted the library on the way in. Algorithm confusion let a forged token verify successfully, and…