Решила я тут давеча вкатиться в айти. Ну а что? Изучила этот ваш фронтенд, потыкала в CSS, поигралась с React, собрала пару пет-проектов «для души», опубликовала резюме на hh.ru и… тишина. Поняла, что я и мой код в огромном океане джунов никому, собственно говоря, не нужны. HR-фильтры работали безотказно - меня просто не существовало в их реальности.
Но сдаваться я не привыкла. Если гора не идет к Магомету, Магомет идет… в домовой чат. Решила искать работу не в душных корпорациях с пятью этапами интервью, а «на земле». Прямо в чате нашего ЖК написала: «Соседи, привет! Я фронтендер. Кому нужен сайт или есть задачи - пишите, я тут, я рядом».
И знаете что? Это сработало лучше, чем все мои отклики на Хэдхантере.
Акт 1: Сосед и Великий Китайский Файрвол
Откликнулся сосед. Он возит машины из Китая, ведет канал, и ему позарез нужен был сайт-агрегатор. «Сделаешь?» - спросил он. «Пф-ф, конечно!» - ответила я, еще не подозревая, в какой замес вписываюсь.
ТЗ звучало просто: «Хочу, как вот на этих китайских сайтах, только у меня». Ссылки он дал. Казалось бы, бери да парси. Я, полная энтузиазма, ринулась в бой, но первый же удар под дых нанес китайский фронтенд.
Выяснилось, что хитрые китайские разработчики защищают цены… шрифтами. Да-да, цифры рисовались кастомным шрифтом: в коде ты видишь «abc», а на экране - «5 000 000». К тому же сайты отдавали данные со скоростью раненой улитки, а фоток у каждой машины было больше, чем у меня за всё лето. Скрапер стонал, но я поняла: пора менять стратегию.
Акт 2: Докер, деньги, два маппера
Поняв, что парсить HTML - это путь боли, я откопала компанию-агрегатора, которая продавала эти же данные по API. Сосед, видя мои горящие глаза (и масштаб бедствия), согласился оплатить доступ.
И тут началась настоящая жара. Я впервые подняла базу данных в Docker (в моменте почувствовала себя хакером из фильмов). Данные полились рекой, но в разном формате. Пришлось писать мапперы и учить код понимать, что «Мокрый асфальт» и «Серый металлик» - это, в целом, об одном и том же.
Акт 3: Трудности перевода и «золотой» API
Данные есть, но они на китайском. Подключила Яндекс Переводчик API.
Проблема №1: это медленно.
Проблема №2: это, блин, платно!
Я привязала карту, запустила скрипт и… через час телефон начал вибрировать от уведомлений о списаниях. Бесплатный лимит испарился быстрее, чем мои надежды на легкий деплой.
Решение: Оптимизация. Я поняла, что переводить одно и то же слово «колесо» тысячу раз - это путь в нищету. Добавила индексы, кэширование: теперь если слово уже есть в базе - переводчик больше не трогаем. Экономия!
Акт 4: Математика боли (Таможня и Логистика)
Самым адом оказался калькулятор цены. Это не просто «курс юаня + маржа». Это утильсбор (который зависит от объема двигателя, лошадей и возраста авто), таможенные пошлины, комиссия банка и логистика.
Я сидела в обнимку с формулами, превращая этот бюрократический хаос в чистый код. Зато теперь цены на сайте обновляются сами: интеграция с Т-Банком подтягивает актуальный курс, а логика сама всё пересчитывает. Клиент доволен, я - почти магистр экономики.
Акт 5: Исчезающие фото и S3-баскет
Когда сайт был готов и гордо хостился на Timeweb, всплыл новый баг: картинки начали исчезать. Оказалось, ссылки на фото из Китая имеют свой TTL (время жизни) и «протухают» через пару часов.
Чтобы сайт не превратился в выставку пустых квадратов, я настроила скрипт для скачивания всех фото. А чтобы не забивать сервер и не тормозить систему, развернула S3-бакет на Timeweb. Теперь все тяжелые фотки летят в облачное хранилище, а сайт «летает».
Настройка Nginx и SSL-сертификатов стала финальным боссом. Скажу честно: если бы не AI-помощники и гугл, я бы там и легла рядом с этим сервером. Но когда зеленый замочек HTTPS наконец загорелся - это был чистый дофамин.
Итог:
Что мы имеем в сухом остатке? Сосед получил мощный бизнес-инструмент с автообновлением, каталогом и FAQ. А я? Я прошла путь от «сверстать кнопочку» до:
Backend: Node.js + MongoDB + облачное хранилище S3.
DevOps: Docker, Nginx, работа с VPS.
Frontend: Next.js + React + TypeScript.
Soft Skills: Научилась объяснять заказчику на пальцах, почему «просто спарсить» - это путь в никуда, убедила его, что платный API - это инвестиция, а не трата, и поняла, как планировать бюджет проекта так, чтобы не остаться с нулем на карте из-за переводчика.
Мораль: если на hh.ru вам не отвечают - не расстраивайтесь. Загляните в чат подъезда. Возможно, ваш первый серьезный проект живет этажом выше. Но а я продолжаю искать работу или новые проекты.
Страница Админ панель для управления серверной частью