Рубріки: Истории

Нам предлагали делать то же самое в 60 раз дороже: как свои разработки Jooble экономят агрегатору вакансий более $1 млн в месяц

Анастасія Пономарьова

Популярный сервис для поиска работы Jooble, разработанный украинскими студентами-программистами, за 15 лет пережил множество технических изменений: использовались разные языки программирования, создавались уникальные поисковые роботы, внедрялись новые системы. Не обошлось и без стратегических ошибок — об этом рассказывает СТО компании Jooble Дмитрий Гринь в продолжении интервью Highload.

«Со временем мы начали унифицировать стек, приходить к одному языку»

СТО Jooble Дмитрий Гринь, фото из Facebook

В начале у нас в активе был сайт, написанный на ASP.NET webforms, C#, у нас были специальные высокопроизводительные элементы вроде библиотек обработки языка, написанных на C++, поисковые роботы, написанные на Delphi. Со временем мы начали унифицировать стек, приходить к одному языку, и остановились на С#. На данный момент около 70% кодовой базы написано именно на С#, еще 30% — на Python.

Если говорить об остальных вещах, то мы стараемся не изобретать велосипед, а используем «золотые стандарты» отрасли: Redis занимается кешированием, Elastic — поиском, Prometheus и Grafana — мониторингом. На разных проектах мы используем Microsoft SQL Server или Postgresql, немного MySQL как хранилище данных.

Острых технических проблем за время работы компании у нас не было, однако была трудность на стыке технологий бизнеса. История для нас немного болезненная: в 2012 году мы перерабатывали свой поисковый механизм, и, поскольку у нас было много инженеров, которые любили делать правильные и высокопроизводительные решения, мы сделали ставку на то, что разработаем этот механизм самостоятельно. Он будет максимально оптимизирован под наши нужды, в результате меньше затрат ресурсов, больше скорости.

Механизм реализовали, он действительно был оптимален, отдавал ответы на поисковые запросы почти мгновенно. Но в то же время мы как раз создавали команду data science внутри, начали активно экспериментировать с логикой поиска, которая пробовала разные подходы, автоматически сгенерированные математические модели.

Команда Jooble, фото из Instagram jooblelife

Тогда мы поняли, что наше решение очень негибко для этих экспериментов: среднее время новой поисковой выдачи составляет около двух недель, потому решили отказаться от производительности в сторону гибкости и выбрали Elastic. Наши запросы стали работать в пять раз медленнее, но это было некритично, потому что до этого они работали прям очень быстро. Зато мы смогли проводить новые эксперименты, подключать новые модели не за две недели, а за один-два дня.

Мы покупаем некоторое количество готовых продуктов: я придерживаюсь идеологии, что нельзя аутсорсить свои ключевые компетенции, но нежелательно тратить свои силы на то, что не является компетенцией компании. Мы покупаем CRM, систему мониторинга, вскоре рассчитываем подключить решение по анализу и блокировке нелегитимного трафика. Мы стараемся приобрести необходимые продукты у компаний, которые разбираются в этом лучше, у которых эти программы — основной продукт.

«У нас есть несколько типов роботов, которые полностью разработаны внутри компании»

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

Но мы понимаем, что есть огромное количество сайтов в интернете — сотни тысяч, — где вакансии есть, но их по одной-две штуки. На каждый из них писать сценарий было бы сложно и затратно с нашей стороны. Потому мы разработали еще один поисковый робот, который построен на небольшом машинном обучении с учителем.

Офис Jooble, фото из Instagram jooblelife

У нас также есть система, которая позволяет нашим сотрудникам на удаленной работе авторизоваться и выполнять операцию по разметке вакансий на HTML-странице. Она указывает: здесь находится должность, здесь — зарплата, здесь — описание. На основании этих данных, которые мы загружаем в систему, генерируются автоматические модели, которые работают с сайтами и собирают вакансии в нашу систему на постоянной основе. Таким образом мы расширили количество источников, которые индексируем, от нескольких тысяч до нескольких десятков тысяч.

Почему разработка революционная? Был случай, когда одна компания (не буду упоминать название) связалась с нами и предложила свои услуги в этом направлении. «Мы видим, что вы агрегатор, мы можем делать эту работу за вас», — говорили они. Мы с ними обсудили возможности, прикинули объем работы и получили чек на сумму примерно раз в 60 больше, чем та, за которую мы самостоятельно поддерживаем эти процессы. Нам предлагали $1.2m в месяц, однако та система обновляла данные 3 раза в неделю, а наша — ежедневно. Так что разработка сэкономила нам кучу средств.

О «крутом пике» во время карантина и актуальных проблемах сервиса Jooble, которые компания решает сегодня, читайте в заключительной части интервью скоро на Highload.

Останні статті

Обучение Power BI – какие онлайн курсы аналитики выбрать

Сегодня мы поговорим о том, как выбрать лучшие курсы Power BI в Украине, особенно для…

13.01.2024

Work.ua назвал самые конкурентные вакансии в IТ за 2023 год

В 2023 году во всех крупнейших регионах конкуренция за вакансию выросла на 5–12%. Не исключением…

08.12.2023

Украинская IT-рекрутерка создала бесплатный трекер поиска работы

Unicorn Hunter/Talent Manager Лина Калиш создала бесплатный трекер поиска работы в Notion, систематизирующий все этапы…

07.12.2023

Mate academy отправит работников в 10-дневный оплачиваемый отпуск

Edtech-стартап Mate academy принял решение отправить своих работников в десятидневный отпуск – с 25 декабря…

07.12.2023

Переписки, фото, история браузера: киевский программист зарабатывал на шпионаже

Служба безопасности Украины задержала в Киеве 46-летнего программиста, который за деньги устанавливал шпионские программы и…

07.12.2023

Как вырасти до сеньйора? Девелопер создал популярную подборку на Github

IT-специалист Джордан Катлер создал и выложил на Github подборку разнообразных ресурсов, которые помогут достичь уровня…

07.12.2023