myHomeIQ · Leads 04
Продукт, у який клієнти логіняться і за який платять — восьмирічна Rails-кодова база, де моїми були гроші, права доступу і стик між двома сервісами.
Я працював у двох місцях, де баг видно у виписці з банку
Це та половина myHomeIQ, у якій є клієнти. Агент завантажує своїх колишніх клієнтів, і платформа щомісяця надсилає кожному власнику будинку брендований звіт — скільки будинок коштує зараз, скільки іпотеки виплачено, що дало б рефінансування, що можна купити, якщо продати. Агент лишається на очах роками, не роблячи нічого.
Помилки білінгу видно у виписці клієнта. Підписки, апгрейди планів, повернення, блокування за неоплату — тут не буває «майже правильно». Права — це матриця, а не прапорець: дев’ять ролей проти дванадцяти планів, плюс enterprise і white-label, аж до прав на конкретний лід.
А два сервіси не мають ні спільної бази, ні спільного брокера — тож консистентність треба було спроєктувати, а не припустити. Я написав обидві сторони цієї інтеграції: так робить той, хто бачить систему цілком, а не лише свою ділянку.
Незручні частини Stripe, матриця Pundit і розбір імпортера на 6 256 рядків
84 тис. рядків, 2 272 класи, 34 контриб’ютори, 2 324 файли тестів, 8 Swagger-специфікацій у репозиторії.
Stripe: саме незручні частини
Нова роль, протягнута наскрізь
Імпорт клієнтських баз · 6 256 рядків
Міжсервісна інтеграція, обидві сторони
Інфраструктура листів
Продуктові вертикалі цілими шматками
контролер → інтерактор → сервіс → серіалізатор → валідатор → Swagger → п’ять-сім файлів тестів. Комбіновані партнерства з власним query-об’єктом; типи позик HELOC/HELOAN; round-robin розподіл лідів для пар агент + лендер. rswag генерує специфікацію з request-тестів, тож жоден мій ендпоінт не пішов без документації.Хто над цим працював
Соло — весь стек
- Білінг Stripe, матриця прав 9×12 і обидві сторони міжсервісної інтеграції.
- Цілі продуктові вертикалі від контролера до документованого ендпоінта.
Дочитали до кінця й хочете обговорити?
