Skip to content
back to projects
cbirddev schema rev 0.1 — last updated 2026.04

HQ (Malouf)

Laravel Vue 3 PHP MySQL AWS

The internal ERP I've spent a decade contributing to with 400+ models, 11,700+ of my own commits, and an order pipeline running across dozens of sales channels.

writeup

HQ is the operational core of Malouf Companies — a furniture and bedding manufacturer and retailer operating across wholesale, direct-to-consumer, and marketplace channels. I've been the lead architect and primary contributor since 2015, with over 11,700 commits across the platform's lifetime.

Scale

The platform covers purchasing, inventory, order management, fulfillment, vendor relations, EDI, financials, HR, and more. At last count: 400+ Eloquent models, 270,000+ lines of PHP application code, and enough scheduled jobs to keep a dedicated queue worker farm busy around the clock.

What I built and own

  • Order pipeline — Ingests orders from Amazon, Walmart, eBay, and a dozen other channels. Routes them through availability checks, fraud screening, and fulfillment assignment before they ever touch a warehouse queue.
  • Fulfillment routing — Determines whether an order ships from a company warehouse, routes to a drop-shipper, or splits across both. Handles backorders, substitutions, and carrier selection.
  • Job orchestration — Owns the scheduling and queue configuration for all background work across the platform. Hundreds of jobs run daily; most are invisible until they aren't.
  • CI/CD and static analysis — Built and maintain the GitHub Actions pipelines, PHPStan configuration, and coding standards that keep a multi-developer team shipping without stepping on each other.

Vue 2 → Vue 3 migration

In 2026 I led a complete migration of the frontend from Vue 2 (EOL) to Vue 3 — 700+ components, with no downtime and no feature disruption. The migration ran in parallel with active development for several months, using a compatibility shim layer I built to allow components to be migrated incrementally rather than all at once.

What makes it hard

The challenge with a system this size isn't any one feature — it's keeping the whole thing coherent as it grows. Domain boundaries erode. Queries get slow. Old patterns accumulate. A big part of my role is maintaining the architecture's integrity over time: enforcing boundaries, retiring bad patterns, and making sure the tenth year of development doesn't feel like the fifth year of technical debt.