Как я использовал профессию, чтобы уехать на Бали 🌴

В прошлом посте (https://set.ki/post/gNFy4kh) я обещал странную часть про сертификат OneTwoTrip от Сетки. Поездка случилась. А вот поймать девять ночей в одном отеле руками так и не вышло.

❗️Тратить сертификат на тот вариант было совсем невыгодно. Цена не стояла на месте. Обновишь карточку, и уже другое число. Тогда я решил разбить отдых на два отеля. Второй взять и шикануть. Мне казалось, там точно меньше конкуренции за динамическую цену, потому что на него не висит вся очередь.

👀 А потом я увидел на первом отеле разных поставщиков, уже через API сайта. У каждого своя цена, и она мотается туда-сюда, от 170 тысяч до 260, то каждую секунду, то раз в пять. Отель популярный, за него толкаются все. И я понял, что мне нужен отель, где очередь короче.

Вот тут программирование впервые пригодилось не «для резюме», а чтобы потратить подарок с умом. Слежку за ценой я отдал агенту и даже не посмотрел, какой стек он выбрал. Код наваливался кучами, страница открылась, и я обрадовался уже этому. Хотелось на себе почувствовать тот знаменитый менеджерский результат: B2B SaaS, в код не смотришь, а снаружи продукт уже есть 🤢

Думал, автоматика успеет то, чего не успеваю руками. Открыть, протыкать, заполнить форму и опередить всех, кто просто обновляет сайт. На популярном отеле не успевала и она. Пока поля заполняются, цифра снова уезжает.

Второй отель был тот, где хотелось кайфануть. Три ночи, тише, уровнем сильно выше. Я сторожил 150 тысяч (номинал сертификата) и не дождался, взял за 163 (доплатил 13 тысяч). Модель по истории сказала, что цены около 161 больше не будет, бери сейчас. График после этого резко провалился, и я нажал одну кнопку. Робот из тестового фреймворка сам дошёл до кнопки «Оплатить» и приложил подарочный сертификат.

А когда вся работа уже была навайбкожена, я заглянул внутрь и ужаснулся.

🤮 Код паршивый и весь разный. Масштабировать нельзя, отваливается в разных частях. Куча таймеров, счётчиков и костылей. Странные паттерны проектирования, странные архитектурные детали и такая же работа с асинхронными операциями. Потом многое из этого пришлось переписывать уже с вершины моего опыта: по канонам, по наработанным бест практис и с точными установками.

💎 Снаружи сейчас это уже не скрипт в терминале. На локальном хосте крутится свой монитор. График минимальной цены, сводка за всё время слежения, цель, история проверок и кнопка «Подготовить бронь». На скрине с той охоты: почти 11 500 успешных проверок за 18 дней, минимум 161 тысяча всплыл всего четыре раза, средняя около 170, последняя ушла примерно на 6 тысяч ниже средней, а цель 150 так ни разу и не случилась. Без такой штуки эти четыре раза глазами просто не поймать.

Стек в итоге оказался таким: Next.js, TypeScript, Postgres, Redis, очередь BullMQ и Playwright. Агент сам это накидал. Я сначала только смотрел, что страница открывается.

❗️Из идеи «просто потратить сертификат» выросла целая группа мониторов по сайтам, которые мне нужны. В свободное время буду их развивать для себя.

#дикийнетворк

Как я использовал профессию, чтобы уехать на Бали 🌴 | Сетка — социальная сеть от hh.ru Как я использовал профессию, чтобы уехать на Бали 🌴 | Сетка — социальная сеть от hh.ru Как я использовал профессию, чтобы уехать на Бали 🌴 | Сетка — социальная сеть от hh.ru Как я использовал профессию, чтобы уехать на Бали 🌴 | Сетка — социальная сеть от hh.ru