Домашняя страница Чем я занимаюсь в Locality Labs
Публикация
Отменить

Чем я занимаюсь в Locality Labs

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

Где находимся и чем занимаемся

Компания называется Locality Labs, LLC. Наша штаб-квартира находится в Чикаго, штат Иллинойс. По сути, это классический стартап, хотя компания уже насчитывает более 15 лет своего существования. С момента создания в 2006 и до 2013 года, организация носила название Journatic (от слов «journalism» и «automatic»).

В настоящее время, мы занимаемся сбором, обработкой и продажей информации о различных аспектах внутренней жизни США. То есть, являемся поставщиками контента для медиакомпаний и маркетологов. Только под моим руководством или непосредственном участии, мы собрали и поддерживаем в актуальном состоянии информацию с более чем 1000 веб-сайтов из США: от Census.gov до различных локальных ресурсов, освещающих те или иные события из жизни комьюнити, городов, округов и штатов. С начала 2020 года мы начали расширять свой охват с Иллинойса до всех штатов. Аппетит растёт, как известно, во время еды.

Кратко о последних проектах

Вот далеко не полный список основных наших проектов, для которых мы собираем данные:

  • Судебная система США
  • Юристы США
  • Система общественного образования США
  • Зарплаты гос. служащих США
  • Зарплаты в системе высшего образования США
  • Школьный и университетский спорт в США
  • Пенитенциарная система США
  • Финансирование предвыборных кампаний в США
  • Система льготного кредитования США
  • Экономика США
  • Система здравоохранения США

Список можно продолжать ещё долго… Все эти данные собираются как с сайтов различных ведомств, так и через отправление запросов на получение публичной отчётности согласно Закону о свободе информации (FOIA).

Для чего мы это делаем

Так как в США практически отсутствует единая система стандартов, мы вынуждены искать способы собирать всю эту разношёрстную информацию в структурированные наборы данных — датасеты. Стоит отметить, что первичные данные порой заполняются очень небрежно. Это добавляет остроты в нашу работу: попробуй, приведи всю эту мешанину стандартов и их отсутствия к требованиям нашей редакции.

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

Состав команды

Всё это осуществляется силами нашего подразделения численностью более чем в 150 человек. Географически они разбросаны от Китая до Америки. То есть, мы практически охватываем Земной шар.

Под моим непосредственным руководством находится около 50 человек семи национальностей и различных вероисповеданий.

Чем занимаюсь я

Как всё начиналось

Я работаю из России. В компанию пришёл в 2019 году, на должность рядового разработчика. Через год мне поручили создать отдел сбора данных и создать единую кодовую базу. На тот момент у нас не было никакого сформированного отдела и каких-либо стандартов для кодовой базы, а собранные данные были сомнительного качества. Было 5−7 «диких разработчиков», писавших код на Perl, Python, Ruby и, возможно, на чём то ещё — до сих пор вылавливаю артефакты той эпохи. Между собой они практически не контактировали.

Первые шаги

Мне обрисовали в общих чертах чего от меня хотят и отпустили в свободное плавание аж на два месяца с выделенным помощником. За это время я успел создать намётки будущего фреймворка — мы назвали его Hamster. Хомяк, попросту. Надеюсь, аналогия не требует расшифровки 🙂 С его помощью я планировал унифицировать кодовую базу. А по прошествии двух месяцев, задачи по сбору данных стали прилетать мне гораздо активнее. Поначалу мы справлялись вдвоём, потом нам выделили ещё пару человек. Я больше углублялся в разработку Hamster, но в какой-то момент нас подключили к очень большому проекту, где в достаточно короткие сроки требовалось собрать данные с более чем 100 сайтов.

Мне в команду наняли ещё 3 или 4 человек, и они начали пытаться использовать мой «продукт» с нуля. Это был интересный опыт, когда я переосмыслил несколько моментов. Но в целом, он характеризуется тем, что я тогда абсолютно не имел времени, чтобы отстранится от задачи и посмотреть на неё со стороны. Что породило ряд достаточно трудно исправляемых ошибок в архитектуре проекта.

Первые вызовы

Также, в какой-то момент выяснилось, что человек, который руководил этим крупным проектом, абсолютно неадекватен. Мне пришлось вмешаться и указать на допущенные им ошибки, чтобы избежать увольнения некоторых вновь нанятых сотрудников. И в какой-то момент я из старшего разработчика превратился в руководителя команды составом в 10 человек — я забрал к себе тех из «диких разработчиков», кто уже писал на Ruby либо был готов перейти на него.

Мы показали себя хорошо на том проекте, и поток задач стал расти непрерывно. Это породило ряд трудностей и проблем, некоторые из них мы решаем до сих пор. Команда постепенно росла, но наиболее значимое пополнение штата у меня случилось в начале этого года: с 15 человек мы выросли почти до 50. Для меня это стало серьёзным вызовом, так как я никогда до того не руководил таким количеством людей. Да ещё и разбросанных по всему миру. Тот ещё квест для меня.

Заключение

О некоторых моментах в архитектуре проекта, особенностях сбора, парсинга, хранения и постобработки такого объёма различных данных я планирую написать подробнее в других статьях.

Публикация защищена лицензией CC BY 4.0 .