myHomeIQ · Leads 04
The product customers log into and pay for — an eight-year Rails codebase where I owned the money, the permissions and the seam to the other service.
I worked on the two places where a bug shows up on someone’s bank statement
This is the half of myHomeIQ that has customers in it. An agent uploads their past clients, and the platform sends every homeowner a monthly branded report — what the house is worth now, how much of the mortgage is paid off, what refinancing would save, what they could buy if they sold. The agent stays visible for years without lifting a finger.
Billing errors show up on a customer’s bank statement. Subscriptions, plan upgrades, refunds, lockout for non-payment — there is no “almost right” here. Permissions are a matrix, not a flag: nine roles against twelve plans, plus enterprise and white-label, down to rights on a single lead.
And the two services share no database and no message broker, so consistency had to be designed rather than assumed. I wrote both sides of that integration — which is what someone does when they can see the whole system, not just their slice of it.
Stripe’s awkward parts, a Pundit matrix, and a 6,256-line importer split
84k LOC, 2,272 classes, 34 contributors, 2,324 spec files, 8 Swagger specifications in the repository.
Stripe billing, the awkward parts
A new role, threaded end to end
Client-base imports · 6,256 lines
Cross-service integration, both sides
Email infrastructure
Product verticals, whole slices
controller → interactor → service → serializer → validator → Swagger → five to seven spec files. Combined partnerships with a custom query object; HELOC/HELOAN loan types; round-robin lead distribution for agent + lender pairs. rswag generates the spec from request specs, so no endpoint of mine shipped undocumented.Who worked on it
Solo — the whole stack
- Stripe billing, the 9×12 permission matrix, and both sides of the cross-service integration.
- Whole product verticals from controller to documented endpoint.
Read to the end and want to talk it over?
