Let AI do the grunt work: a dev’s take on MCP
I had a client with about a dozen small WordPress sites, nothing major, mostly local businesses. Every month, they wanted a simple health check report….
I had a client with about a dozen small WordPress sites, nothing major, mostly local businesses. Every month, they wanted a simple health check report….
I got a call from a client running a membership site on a pretty old, third-party plugin. Their problem? They needed to sync a user’s…
I was working on a small security plugin a while back and decided to get it onto the official WordPress directory. But then I remembered…
A client’s Resources section had meta box code scattered across functions.php and two include files, so every small change broke something. One reusable meta box class moved the registration logic into a constructor and the form HTML into a template.
A client’s high-volume WooCommerce store kept timing out in the admin. More server power didn’t help. The real cause was an N+1 query from a shipping plugin, and the fix was better code, not bigger hosting.
A junior dev passed a post object where my function wanted an integer, and it failed silently with no error. That is the trap of overly defensive WordPress code, and when you control the environment, failing loudly beats bailing quietly.
A sharp junior dev was stuck on a bug that only showed up on staging, because he was lost without a GUI. The command line is the most direct way to see what a server is doing, and a couple of basic commands found the error in minutes.
A standalone Symfony CLI tool gets brittle once you wire every command’s dependencies by hand. This shows how to configure the dependency injection container so it autowires services and registers new console commands for you.
I remember getting a panicked call from a client a few years back. It was the week before Thanksgiving. Their site was locked up. A…
A client came to us with a plugin that was, to put it mildly, a total mess. It started simple enough: one little settings page….