будни

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

Вроде и рабочие моменты, а все равно тревожно за клиента. И чувство, будто подошел к краю бездны, которую обычно в жизни обхожу стороной.

Я сначала написал: «а вот если бы у финдира в сейфе в запечатанном конверте были бы ключи доступа и инструкция по входу…».

Но это попытка вернуть иллюзию контроля. Мол, «вот если бы это сделали — то не оказались бы в подобной ситуации».

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

Сегодня я видел небольшой самодельный ERP (много мелких крудов типа оформления отпуска) на скале, с Кафкой и Кассандрой. Там есть блоги. На скале.

А вчера — высоконагруженное e-commerce решение с ядром на битриксе.

Не могу решить, что мне нравится больше 👀

Мой учитель по психотерапии говорит, что почти в каждом терапевте есть мазохистическая часть личности, иначе в профессии делать нечего. В IT-аудите — похожая история.

Ещё круто, что как не издевайся над здравым смыслом — все равно ведь работает и даже деньги зарабатывает. Мир шире и богаче, чем я себе представлял.

«Журналистика DKIM»

https://meduza.io/feature/2017/11/29/medvedev-snova-dast-intervyu-telekanalam-v-pryamom-efire-kak-eto-ustroeno-vse-voprosy-soglasovany

Обратите внимание, как наш редактор угадал, какую строчку из исходника письма нужно удалить, чтобы цифровая подпись сошлась. МАГИЯ

Если после обновления на High Sierra у вас в скетче у части картинок «вымылись» цвета — вы не сходите с ума, это баг и для его починки нужно обновить скетч до 47 версии и прогнать на побитых файлах специальный плагин.

У нашего арт-директора Насти эта ошибка совпала с установкой нового монитора (тот самый 4K 21” от LG) и я чуть с ума не сошел в поиске проблемы с цветовым профилем.

В кружочках «вымылись цвета»

Год назад назад я рассказывал вам про нашего клиента, w1d1. Они собирались сделать приложение для развития креативности сотрудников IT и дизайн-компаний. Обычно, мы заключаем контракт на пару месяцев за фиксированную сумму денег.

Тут, мы договорились консультировать основателя за небольшой опцион — сделали ставку на то, что проект вырастет в десятки раз и мы продадим свою долю за много денег (да, прямо как в кино). В течении года я пару раз делился, как мы делали для них что-то техническое и постил вакансии.

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

Если очень кратко — то дела на картинках ниже, а подробнее — внутри.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

P.S. Android-пользователи жалуются, что у них вместо Unicode-символов 𝑥 (mathematical italic small x), 𝑐, 𝑢 и 𝑛 в тексте показывается вытянутый прямоугольник ☐. Так мы узнали, что в Android-ах (видимо, речь идет о системном Roboto) нет ключевых математических символов. Приземление в реальность.

Проблему можно починить, добавив в медузные шрифты нужные глифы (артдиректор в отпуске, дизайн отдел и так перегружен) или заменив красивые специальные буквы типа 𝑥 на обычные курсивные английские x. Так и сделали. Извините, что сразу не догадались.

Мы в медузе используем s3 для хранения картинок, но при этом очень агрессивно кешируем все на своём самодельном CDN, так что пока эффекта нет (upd: с европейским амазоном пока всё ок).

Конечно, есть сервисы, где простой недопустим - но их обычно программируют люди, разбирающиеся в термине "единая точка отказа". Всем остальным можно расслабиться и запастись попкорном, такое не часто случается.

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

Яркий пример — маркетплейсы. Стабильно раз в несколько месяцев приходит потенциальный клиент, который предлагает миллионы, десятки миллионов рублей за разработку Озона для «тут подставьте то, чем вы занимаетесь или где живете».

Самое сложное в маркетплейсе — это источники спроса и предложения. Запрограммировать крупный маркетплейс — нетривиальная задача, но рекомендательные системы, борьба со фродом и прочие проблемы масштабирования — это problems good to have. Если вы столкнулись с этими задачами — значит, у вас есть покупатели и есть продавцы.

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

К сожалению, такое исследование рынка — не наша специализация. Мы с Федей теряем клиентов и деньги. Зато спокойно спим по ночам.

Не рекомендую делать «контрольные закупки» и просить своих разработчиков сделать не имеющие смысла вещи, но если ваши программисты редко задают вам вопросы «зачем», «как это будет работать» и «как это принесет нам денег» — то это красный флаг 🚩