Зарабатываю вам деньги, быстро находя риски в кодовой базе и исправляя их.
Оказываю полное техническое сопровождение вашего проекта
Деньги на первый взгляд возвращались. Только в размере нуля. Поле refundAmount никогда не заполнялось при создании заказа: оператор жал «оформить возврат», система писала «успешно», покупатель получал ноль.
// Логика возврата const refundAmount = order.refundAmount || 0; await paymentService.refund(orderId, refundAmount);
Почему не заметили. Статус менялся на «возвращён» — в отчётах всё чисто. Никто не смотрел на суммы. Чинится валидацией суммы возврата и алертом на нулевые транзакции.
Создание заказа, списание и резерв товара — три операции без транзакции и без обработки сбоя. При падении на шаге 2 или 3 заказ висит в полусозданном состоянии: деньги списаны, товар не зарезервирован, клиент ждёт доставку.
function submitOrder(array $data): void { Order::create($data); // 1. заказ создан Payment::charge($data); // 2. списание Stock::reserve($data['items']); // 3. резерв }
DB::transaction(function () use ($data) { $order = Order::create($data); Payment::charge($order); // упало → rollback Stock::reserve($order->items); $order->markConfirmed(); });
Не в .env, не в секретах CI/CD — прямо в исходнике публичного GitHub-репозитория. Команда работала с этим кодом 8 месяцев; ключи были проиндексированы поисковиками. Среди них — ключи эквайринга.
const SECRET_KEY = "sk-prod-xxxxxxxxxxxxxxxxxxx"; const DB_PASSWORD = "admin1234";
git filter-repogit-secrets на pre-commit
Разработчик с 10-летним опытом в международных проектах и российском бигтехе. Оцениваю не только код, но и архитектуру, данные и безопасность. Вместо общих рекомендаций показываю конкретные места, где система может стать источником технических или бизнес-рисков. Работаю как независимый внешний консультант без конфликта интересов. NDA - по запросу
Объём поставляемого кода вырос в разы. Глубина ревью — нет. Неважно, написан код ИИ или подрядчиком. Бизнес получает скрытые дефекты, уязвимости и технический долг. Одни проблемы могут оставаться незаметными месяцами и приносить убытки, другие приводят к циклу бесконечных «исправлений», когда каждое новое изменение создаёт новые баги в системе.
Сначала независимый аудит: что реально сломано и стоит денег. Затем ИИ-агенты выстроенные в пайплайн, ревьюящие каждое изменение по вашим правилам — плохой код не проходит дальше.
В Jira, Linear или ваш трекер встраиваются агенты: сравнивают закрытую задачу с фактическим кодом и выдают отчёт о соответствии — до того, как подрядчик скажет «готово».
Утечки, слабая авторизация, секреты и ключи в репозитории, уязвимые зависимости.
Консистентность сущностей, гонки, дубли, неверные транзакции — причины потерянных денег.
Шаблонный код без контекста, мёртвые ветки, несовместимые контракты, отсутствие тестов.
Постоянный контроль входящих изменений: агенты в CI/CD, правила под продукт, эскалация эксперту.
Пакеты — для системной диагностики и внедрения. Почасовая работа — для точечных задач без долгого контракта.
Когда нужен быстрый независимый взгляд эксперта: второе мнение перед созвоном с подрядчиком, разбор инцидента, архитектурная сессия или оценка техрешений. Оплата по факту, отчёт по итогам сессии.
{{ f.a }}
Напишите, что болит — лично в Telegram или MAX. Разберу ситуацию и предложу формат, который остановит риск, пока он не стал убытком.