5 min read aiengineering
The pre-flight check I run before shipping any AI feature
Seven questions that take 30 minutes and catch most of the reasons AI features fail in production. If you cannot answer all of them in plain language, you are not ready to ship.
Read →
4 min read aiagents
Everyone wants more autonomous agents. The teams shipping reliable ones are doing the opposite.
Agentic got conflated with autonomous, and the AI crowd has been chasing the wrong thing ever since. Here is what reliable agents actually look like in production.
Read →
6 min read magentoupgrade
Magento Open Source 2.4.9: what actually changed and whether to upgrade
A practical breakdown of the Magento 2.4.9 release — PHP 8.5 support, Symfony 7.4, Zend_Cache removal, infrastructure additions, and what to check before upgrading.
Read →
6 min read magentodiagnostics
Why Magento cron jobs pile up (and what to actually do about it)
A diagnostic walkthrough of the most common cause of stuck cron queues in Magento 2 systems, and how to fix it without restarting everything.
Read →
4 min read magentosecurity
Adobe Commerce security bulletin APSB26-49 — what it fixes and who needs to act
APSB26-49 was released May 12, 2026. It covers critical vulnerabilities including arbitrary code execution and denial of service. Affected version list and fixed versions inside.
Read →
5 min read consultingcorporate
What corporate vendor onboarding actually looks like (a consultant's field notes)
A behind-the-scenes look at what happens when a multi-billion rand enterprise onboards a small independent consultant, and how to be ready for it.
Read →
7 min read magentoerp
Integrating Magento with Microsoft Dynamics 365: architecture, data flows, and what actually goes wrong
A technical walkthrough of Magento–Dynamics 365 integration — sync patterns, middleware choices, B2B considerations, and the real failure modes I see in production systems.
Read →
6 min read magentoai
AI extensions for Magento in 2026: what is worth using and what to be cautious about
A practical look at the Magento AI extension landscape — content generation, semantic search, chatbots, and admin tools. What works, where to start, and what to watch for before deploying.
Read →
7 min read magentohyva
Migrating from Luma to Hyvä: what actually changes and how to approach it
A practical guide to Hyvä theme migration — what breaks, what stays the same, how to audit third-party extensions, and how to plan a phased rollout without disrupting production.
Read →
4 min read magentosecurity
PolyShell: the unpatched Magento vulnerability you need to act on now
PolyShell allows unauthenticated file upload via the REST API on all Magento versions up to 2.4.9-alpha2. No official patch exists for production versions. Here is what it is and what you can do today.
Read →
6 min read magentopos
Magento POS integration: architecture, sync patterns, and the problems that show up in production
A practical look at connecting Magento to a point-of-sale system — inventory sync, order flow, offline mode, and the real-world failure modes that cause problems months after go-live.
Read →
4 min read magentosecurity
Adobe Commerce security bulletin APSB26-05 — March 2026 patch breakdown
APSB26-05 was released March 10, 2026. Multiple critical vulnerabilities including privilege escalation and arbitrary code execution. Affected versions and how to patch.
Read →
4 min read magentoadobe-commerce
Fetching product row_id vs entity_id in Magento 2 and Adobe Commerce
Why Adobe Commerce uses row_id instead of entity_id for products, and the correct way to retrieve it using MetadataPool — without hardcoding field names.
Read →
4 min read magentoelasticsuite
Fixing the ElasticSuite setup:upgrade trigger error in Magento 2
The smile_elasticsuitecatalog_search_query_product_position table not found error during setup:upgrade has a one-line root cause and a clean patch fix.
Read →
4 min read magentoapi
Managing guest cart billing address via REST API in Magento 2
How to set and retrieve billing address on a guest cart using the V1/guest-carts/:cartId/billing-address endpoint — request format, response, and the gotchas.
Read →
5 min read magentoapi
How to get customer ID from a bearer token in Magento 2 Web API
The correct way to resolve a customer ID from an Authorization header bearer token in a Magento 2 custom module — using UserTokenReader, not manual JWT parsing.
Read →
3 min read magentodatabase
Checking if a database table exists in Magento 2 before running queries
Using isTableExists() to guard SQL operations against missing tables — why it matters in upgrade scripts, install patches, and any code that touches optional tables.
Read →
5 min read magentodatabase
Using insertFromSelect for bulk INSERT ... SELECT queries in Magento 2
How to write INSERT IGNORE INTO ... SELECT queries the Magento way using insertFromSelect — cleaner than raw SQL and handles duplicate strategies correctly.
Read →
4 min read magentopatch
Debugging Magento composer patch errors: wrong path, wrong type
When composer-patches throws a type error instead of applying your patch, the problem is almost always in your composer.json — not in the patch file itself.
Read →