Aryan Jasala
Senior Software Engineer at rtCamp, a role that spans engineering, tech lead and engineering management.
I work on enterprise WordPress: caching, performance, and the class of production bug that only shows up under real traffic. This is where the fix gets written down, so the next person does not have to find it twice.

Split horizon DNS, and the day my own domain broke a cron job
Split horizon DNS means one name answering differently depending on who asks. Inside the network, a hostname resolves to a private address and traffic never leaves the switch. Outside, the same name…

VLANs on Omada, and the flag that is not a bug
Four VLANs, two wireless networks, one controller, and a config flag that reads as broken every time anyone looks at it. This is the networking layer under the rest of the homelab…

GPU passthrough on Proxmox, and why not an LXC
There are two ways to give a virtual machine a GPU on Proxmox, and most homelab guides pick the wrong one for the wrong reason. The usual advice is to run the…

A two node Proxmox cluster, and the quorum problem
A two node Proxmox cluster is the configuration the documentation quietly warns you about, and the one almost every homelab ends up building anyway. Two votes, majority needed, so losing either node…

The homelab hardware: two Proxmox nodes, a laptop, and a Pi
Two Proxmox nodes, a Raspberry Pi and a NAS. The primary node was built to be the server and does nothing else. The secondary is my college laptop, which is also the…

Translating a WordPress plugin, including the JavaScript
Internationalisation is making a plugin translatable. Localisation is someone actually translating it. You do the first one, and if you do it wrong the second one is impossible. This covers text domains,…

WordPress plugin fundamentals: headers, load order, hooks and options
A WordPress plugin is a folder with one header comment in it, and everything after that is hooks. This covers the header, where the file has to live, the order plugins load…

Custom Gutenberg blocks: create-block, InnerBlocks, context and patterns
A custom Gutenberg block is a plugin with a build step. This covers scaffolding one with @wordpress/create-block, what each file in src is for, registering it from PHP, adding sidebar controls, nesting…

A local WordPress dev setup: LocalWP, MailHog, PHPCS
A WordPress local setup that catches mistakes before review does: LocalWP for the site, MailHog so test mail never reaches a real inbox, PHPCS and PHPCBF for the coding standards, and the…

WordPress rewrite rules, permalinks and transients
Every WordPress request goes to index.php, and yet the browser shows /movie/iron-man, a path that does not exist on disk. Rewrite rules are what close that gap, they live in the database…

PHPUnit tests for a WordPress plugin, scaffold to first assertion
wp scaffold plugin-tests generates a working PHPUnit setup for a WordPress plugin in one command, and then the install script falls over on MySQL credentials. This covers the PHPUnit basics, what the…

WordPress VIP Go: repo structure, environments, and local dev
WordPress VIP Go is Automattic’s enterprise hosting platform, and the first thing that catches people out is that a VIP repo does not look like a WordPress install. This covers the directory…