You can’t fix a slow site on a terrible server
I got an email from a long-term client. “Ahmad, the site is painfully slow. Ever since that last plugin update, it’s been a nightmare.” My…
I got an email from a long-term client. “Ahmad, the site is painfully slow. Ever since that last plugin update, it’s been a nightmare.” My…
I got a call about a WooCommerce site, a big one with thousands of products and constant orders, where the admin dashboard was timing out….
I got a call on a Friday. 4:30 PM. A client’s critical checkout feature was bugging out, and they needed a hotfix deployed immediately. You…
Got a frantic call from a client a while back. Their WooCommerce site was throwing a 500 error on the checkout page, but only for…
A client’s WooCommerce shop crashed every time they ran a sale. The caching plugin wasn’t the problem; the aging server stack was. Moving to Nginx, current PHP, and Redis object caching fixed it.
A client needed three custom post types fed by three APIs. Instead of writing near-identical save functions, I defined one PHP interface as a contract and a single function to save any CPT that implements it.
A client running Bedrock sites updated by hand and worried about missed patches. I set up Dependabot and CircleCI so Composer updates get opened, tested, and deployed automatically.
A WooCommerce shop was timing out because a pre_get_posts hook ran a tax query on every request site-wide. Scoping it to the main shop query with is_main_query, is_admin, and is_shop cut page loads from 20 seconds to under 2.
I got a Slack message from one of our project managers. A client’s WooCommerce shop, a big one with thousands of products, was crawling. Product…
I got a call from a client running a decent-sized WooCommerce store. They needed a “quick change” to a custom coupon function. Seemed simple enough….