#pure

9 постов
пост №1076Личное

Увольняюсь из Пьюр.

Мне трудно и я устал. Дело в отношениях с владельцем Pure, Ромой. Я благодарен Роме за возможность поработать вместе, это были очень интересные полгода, я многому научился.

Хочу подвести итог работе в Pure: за эти полгода мы сделали многое для защиты наших пользователей. Борьба со злоупотреблениями — важная часть любого дейтинг сервиса. У нас в Pure, где люди выражаются более свободно, чем в остальном интернете, эта проблема стоит ещё острее.

Плохие пользователи (bad actors) бывают двух типов: те, кто стригут мелкую монету с массовых рассылок и те, кто шантажируют точечно, но на крупные суммы. За эти полгода мы ударили по обоим категориям.

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

Шантаж происходит так, что вас уводят в не анонимный (читай любой другой) мессенджер, где вы обмениваетесь текстами или фото/видео. Атака может продолжаться часы или даже дни. Злоумышленник деанонимизирует вас по номеру телефона или соцсетям, находит ваших близких и шантажирует вас раскрытием деталей переписки. Для борьбы с этим мы теперь даем отключить таймера у чата (ошейник!) — можно добавить человека в контакты и продолжать общение в Pure.

Внутри чатов Pure мы предупреждаем о том, что собеседник снял скриншот чата и когда он предлагает перейти в другой мессенджер. В способе предупреждений — весь интерфейсный кайф Pure. Это не системное уведомление, а один из 7 классных рисованных персонажей, который вклинивается в переписку и на понятном языке объясняет риски. В последнем релизе мы добавили чумовые стандартные аватарки и отключили возможность загружать картинки из галереи (только фото здесь и сейчас).

Ещё на нас была хакерская атака, которую мы успешно отразили (к сожалению, пока без подробностей).

Но главная моя работа в другом. Когда я пришел в компанию, в ней было 19 технарей. Много формальной документации, но мало реального общения, инициативы и ответственности за результат. Ухожу я из команды в 9 человек, с гораздо более живыми процессами. Буквально месяца не хватило запустить полноценный продуктовый цикл с новым, очень многообещающим дизайнером (привет, Надя!), но я знаю, что Pure на правильном пути.

До этого я работал в компаниях, в которых уже был правильный дух в технической команде. Я чувствовал его и пытался не сломать, но как его создать? Как целенаправленно поддерживать? Для меня это было загадкой и я боготворил людей, которые умеют его создавать — Егора Хмелева и Андрея Зайцева-Зотова, например.

Оказывается, нет никакой магии, недоступной мне, простому смертному. Достаточно не бояться говорить «нет» и верить своим чувствам. Это из области, которую трудно формализовать, но легко увидеть и почувствовать. Как это прекрасно сказал судья конституционного суда США, I know it when I see it. Если ваши разработчики ясно излагают свои мысли (ясно мыслят), свободны и инициативны — то всё в порядке. Если чего-то из этого не хватает — у вас будут проблемы. Я не говорю тут о hard skills вроде умения программировать — с этим проблемы возникают куда реже. Сложнее всего правильно договориться, что мы будем программировать и для чего.

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

Менять мир вокруг себя страшно, но эти изменения и есть жизнь.

Воу, программный пост получился. Аминь и с рождеством вас 🎄

пост №1063Работа и карьера

Две недели назад я нанял в Пьюр ведущего бэкенд разработчика — Антона. За это время Антон вник в проект, сделал так, чтобы серверы не умирали при повторных запросах от клиентов, почти доделал несколько важных задач для борьбы с мошенниками (выпустим большое обновление приложений ещё до Нового года) и наметил план по дальнейшему наведению порядка.

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

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

Далее, заменим старую и неподдерживаемую систему фоновых задач gearman на celery и переедем на python3.

А вот дальше начинается круть: полный аудит текущих мобильных приложений и новая версия API, свободная от легаси. Самый сок: сейчас большая часть данных о пользователе хранится в json-ах внутри одной таблицы «users» — мы её распилим на кусочки. Меняем систему доставки обновлений на клиенты с long-polling на вебсокеты (заодно выпиливаем mongo с сотней гигабайт мусора).

Если всё это звучит для вас не как шум, а как интересные задачи и вызов — пишите мне в личку или на samat@pure.app. Обязательный список: django, celery, aiohttp (можно хотеть изучить, нужен для бэкенда чатов), postgres. Приложите код, который вы считаете лучшим в своей жизни.

Минусы:
- задачи часто меняются
- процесс ещё не устаканен
- нужно много прогать

Плюсы:
- можно участвовать в формулировке задач
- есть тестировщики и хороший сисадмин (devops)
- удаленка
- вы будете работать с АНТОНОМ ШУРАШОВЫМ.

пост №1061Технологии и общество

Мессенджер Signal рассказывает, как они работают над возможность выкинуть кого-то из группового чата.

Да, вы не ослышались. Это мессенджер, в котором невозможно удалить человека из группового чата.

Любой мессенджер — это десятки компромиссов между безопасностью и удобством пользования. Signal во всех спорных ситуациях выбирает безопасность.

Во всех остальных мессенджерах владелец сервера может как минимум посмотреть, кто с кем переписывается и в каких группах состоит. В Signal эта информация скрыта от владельца сервера [1, 2].

Это защита на случай, если серверы Signal взломают или государство выпишет им судебный ордер на выдачу данных.

Дуров говорит, что Telegram не взломают потому что они крутые; и не заставят выдать данные юридически, потому что он устроил адскую схему из компаний в разных юрисдикциях, владеющих частями друг-друга.

Signal решает подобные проблемы технически, без внесения компоненты доверия. Для этого улучшения групповых чатов они попросили авторов доработать криптографический алгоритм, придуманный учеными всего несколько лет назад! Это примерно как если бы для строительства здания привлекли ученых физиков, которые открыли новый закон, который позволил сделать колонны необычной формы.

Вот бы команде Signal десятую долю инженерных способностей направить в дизайн и интерфейсы — цены бы этой программе не было!

Мне очень близка тема безопасного, анонимного общения. Мы наведем базовый технический порядок в Pure, чтобы быстро работал и не глючил, а потом скопируем техническую начинку Signal максимально. Предвкушаю момент, когда буду объяснять «у нас в приложении самый безопасный анонимный мессенджер на свете, которым удобно пользоваться. А ещё знакомства для взрослых».

пост №1036Управление и команды

Похвастаюсь: ко мне на работу в Pure пришел бэкендер Антон Шурашов и начал приводить бэкенд Pure в чувство.

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

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

Спасибо всем, кто откликнулся на вакансию. Познакомились с несколькими интересными специалистами, надеюсь ещё поработаем вместе. 🍒

пост №1028Работа и карьера

Я ищу опытного бэкендера для наведения порядка в PURE.

Pure это приложение для анонимного общения и знакомств. Профиль, лента, чаты, платежи. Мобильные клиенты под iOS и Android, веб версия.

Бэкенд сейчас в плачевном состоянии. Django python2 и немного python3, не DRF. Писался 4 года назад с планами, что это будет «платформа» для запуска разных приложений знакомств — был введен слой абстракций, который усложняет разработку и поддержку (на самом деле приложений два и они мало отличаются). Части вроде аналитики, которые стоит вынести в отдельные проекты, всё ещё внутри основного приложения. Нужно привести всё это в порядок. Задача не для слабых духом и не для тех, кого пугает слово legacy.

Из хорошего: 1) несколько сотен тысяч MAU, пользователи радуются и платят деньги; 2) интересные продуктовые планы — хотим быть лучшим приложением для анонимного общения; 3) мы готовы выделять 40-60% времени на улучшения и рефакторинг — хочется сделать конфетку не только снаружи, но и изнутри; 4) работа удаленная и щедро оплачивается; 5) я ищу человека готового включать голову и брать ответственность — не «просто кодера».

В команде: ещё один бэкенд-разработчик (толковый!), по два мобильных разработчика на iOS и Android, три фронтендера, два дизайнера, инженер ops и два тестировщика. Основатель и владелец проекта — продакт, я — технический директор. Вся команда распределенная.

Идеальный кандидат: разработчик с опытом создания и поддержки больших python приложений в продакшене, которому хочется сделать большое и сложное дело. Работал с платежами и с мобильной разработкой: писал структуру взаимодействия клиентов с сервером, документацию и моки, занимался траблшутингом клиент-серверных ошибок. Понимает про базы данных, деплои, нагрузку и масштабирование, интересуется дейтингом и анонимными мессенджерами, ответственен и самостоятелен. Я сам далеко не идеальный техдир, так что готов к неидеальным кандидатам.

Пишите в личку или на samat@pure.app

пост №1018Продукты и дизайн

Я отсмотрел 5000 фотографий профилей в Pure за 3 часа и нашёл среди них несколько пенисов и вульв.

Важное различие магазинов мобильных приложений Apple AppStore и Google Play в том, что каждое обновление всех приложений в AppStore проходит ручную проверку модераторами Apple. Правила достаточно подробные и написаны понятным языком, но при этом напирают на здравый смысл, а не на следование букве текста. Например, про порно они раньше приводили знаменитую цитату судьи конституционного суда США «узнаю, когда увижу» (сейчас цитируют определение из словаря). При этом то, к чему придерется один модератор, может пропустить другой. Гуглу всё фиолетово.

Новую версию нашего приложения недавно задержали в ревью AppStore из-за голого тела в ленте, так что держать ленту чистой от органов — важная задача.

Книжная цензура в царской России и СССР была в режиме премодерации, цензоры читали каждую книгу до печати; Роскомнадзор работает по схеме постмодерации, блокирует уже публичный контент. У нас гибридная модель: при загрузке фото его рассматривает наш алгоритм и при необходимости сервис машинного зрения Amazon Rekognition. Если они не находят голого тела, то картинка становится публичной и её с большой вероятностью посмотрит наш модератор и может удалить постфактум.

Наши модераторы работают в стандартной джанго-админке, из-за чего часть фотографий оставалась непросмотренной. Я провел в ней три часа. За эти три часа я успел просмотреть 5 тысяч фоток и хорошенько обдумать, что главное в новой админке — возможность одним кликом отмечать плохие фотки и мгновенно переходить к следующей пачке фотографий для просмотра. Очевидно хочется, чтобы все дубликаты однажды забаненной фотки банились автоматически. Главная метрика качества системы — сколько времени голая фотка провисит в ленте до удаления (хочется как можно меньше).

Наткнулся после этого экспириенса на разговор Марка Цукерберга и техдира фейсбука и удивился, что они там говорят про то же самое «улучшение детекта дубликатов в модерации». Правда у них другая большая проблема — всякая рачлененка и прочая жесть, от просмотра которой полный рабочий день 30 тысячам модераторов фейсбука очень плохо, а некоторые даже кончают жизнь самоубийством. Для борьбы с этим они собираются машинно блюрить части «жестких» картинок или переводить их в чб, чтобы смысл оставался понятен, а урон психике модераторов был поменьше. Слава богу у нас такого нет.

Очень интересно, как устроена система модерации во Вконтакте и у Одноклассников. Это ведь целый мир, гиганская сложная машина. Мне рассказывали, что у фейсбука есть отдельная система модерации приватных групп, в которых никто ни на что не жалуется. В этих группах сидят педофилы и довольные обмениваются детским порно, пока их не засекает сам ФБ и не сдает правоохранителям. Хочется похожие кулстори от ВК и Одноклассников послушать. Сколько платят модераторам? Какой рабочий день? На что странное жалуются пользователи? Интересно!

А админкой новой похвастаюсь как запустим, уже скоро.

P.S. После длительного просмотра фоток на самом деле больше ничего не хочется. Жаль, что приходится людям это делать.

пост №1011Работа и карьера

Начнём с простого: почему дейтинг, почему Pure?

Знакомства и общение - самая интересная мне область приложения технологий. Здесь сильные эмоции; мы создаём среду, влияем на поведение людей, на их жизни. Я люблю книги (Bookmate), мне интересны медиа (Медуза) и я начал ценить видеоигры (RAWG), но дейтинг, общение - самый 🔥

Pure сегодня - сотни тысяч пользователей в приложениях под iOS, Android и в вебе. Распределенная продуктовая команда из более чем дюжины толковых специалистов. Есть куда приложить мои умения. При этом Pure - не корпорация как Badoo или Одноклассники с ВК. Не в обиду сказано, вы крутые, просто хочется другого.

Ну и самое важное для меня - создатель Pure и его продакт, Рома Сидоренко. Во первых, он мне очень нравится. Во вторых, у Ромы сильные те стороны, которых мне не хватает и которым я хочу научиться. Рома классно спрашивает по договорённостям, делегирует, использует рацио там, где я ударяюсь в эмоции и крутой продакт ❤

пост №1010Личное

Привет! Давненько не писал и тому были причины:

1. У нас с женой родился сын. На третьем ребёнке я наконец распробовал, как классно быть отцом.

2. Ухожу из RAWG. Горжусь, что мы открыли API самой большой базы данных видеоигр в мире. Скоро ребята презентуют интеграции с крупными игроками. Коллеги, спасибо, вы классные!

3. Я технический директор Pure. Pure - анонимный дейтинг, где можешь быть кем захочешь.

Возвращаюсь из пещеры, есть чем поделиться. Надеюсь, я ещё не разучился писать. Собираюсь постить гораздо свободнее чем раньше, не обессудьте.