Telegram Web
Человек — самое слабое звено любой информационной системы, и Яндекс не исключение. Даже если сделать самую защищенную систему в мире, то доверчивый сотрудник может свести все усилия на нет.

Единственный способ починить самое слабое звено — обучение и повышение осознанности. Этим и занимается наша СИБ.

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

Для проверки усвоения знаний в школе и университете пишут контрольные работы и сдают экзамены. Как-то раз наша СИБ устроила внезапный “фишинговый экзамен” для части сотрудников.

В письме предлагалось получить подарок специально для сотрудников, и нужно было перейти по ссылке. Адрес почты отправителя очень сильно напоминал внутренний адрес, но если внимательно приглядеться, то можно было заметить “опечатку”.

Несколько сотрудников попались! Когда все узнали, что это “добрые хакеры”, то раздались вздохи облегчения. Но нужный эффект был достигнут, и сотрудники стали более подозрительными.

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

Если распознали фишинг и ради интереса хотите перейти по ссылке, то не делайте этого. Существуют атаки Zero-click, для которых достаточен только переход по ссылке!

P.S. В комментарии добавлю примеры наших фишинговых писем.

#безопасность
Запущена очередная важная фича. Написали о ней публичные анонсы и отпраздновали командой.

Нашему менеджеру пришло поздравление не только от коллег, но и от мэрии Москвы!

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

К слову, не зря он засомневался. Это письмо было фейковым и отправлено с разработческого сервера шутником-разработчиком.

Поле “отправитель” было подменено, и письмо выглядело весьма правдоподобно.

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

У нас в компании дают простой совет: если сомневаетесь в письме, или компьютер странно себя ведет, то сообщайте в службу безопасности.

Сомневайтесь, так безопаснее. Как говорится, лучше перебдеть.

Ну и с шутками тоже будьте поаккуратнее :)

#байки #безопасность
В Яндексе используется необычное выражение "дернуть ручку". Чаще всего означает вызвать endpoint HTTP API для получения или отправки данных. Если вы тоже используете это выражение, то скорее всего работали с яндексоидом.

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

История термина "ручка" уходит в далекое прошлое Яндекса. Тогда разработчики использовали CORBA для взаимодействия между клиентом и сервером. Клиент отправляет запрос в специальную общую шину для обработки сервером или сервантом.

Напрашивается аналогия с бабушкиным сервантом. Чтобы его открыть и достать конфеты, нужно было слегка дернуть за ручку. Клиенты в CORBA тоже "дергают ручку" у виртуального серванта, чтобы достать конфеты данные.

Если до верхней полки не дотянуться, то придется залезть на сервант. Одно неосторожное движение — и сервант падает. Если сервант лежит на полу, то уже не до конфет. Разработческий сервант тоже может упасть и перестать работать. Тогда мы говорили "сервант лежит".

В Яндексе перестали использовать CORBA. Исчезли серванты. Но вот ручки остались :)

P.S. А еще в Яндексе ковыряют дырки, но про них я расскажу в другой раз.

#яндекс
Для того чтобы следовать методологии GTD, необходима удобная система. Дэвид Аллен использует бумажные блокноты, но я предпочитаю цифровой вариант.

В далеком 2014 году я использовал Evernote для управления своими задачами и заметками. Evernote — гибкая система, можно сделать все, что угодно. Однако мне приходилось совершать много ручных действий, например, переносить задачи в Today при наступлении дедлайна.

В поисках альтернативы я наткнулся на почти идеальный DoIt.im:

- бесплатный
- кроссплатформенный
- синхронизация между платформами
- нативная поддержка GTD

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

И каково же было мое облегчение, когда коллеги подсказали мне Things. Это тот же DoIt.im, но более эстетически приятный глазу и без назойливых багов.

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

Чтобы не раздувать телеграм-пост, подробности я вынес в лонгрид.

#менеджмент
Много лет я придерживаюсь простого жизненного кредо, облегчающего жизнь.

Не врать.

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

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

Еще важный момент. Если речь зашла о ком-то, кого нет рядом, то говорите только то, что можете высказать человеку в лицо лично. Это честно по отношению к тому, кто не может в настоящий момент вам возразить.

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

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

Цитата 7-летней давности нашего коллеги:
— У нас сегодня на кофепоинте появился засахаренный имбирь. Берегись! Он выглядит как что-то ОЧЕНЬ ВКУСНОЕ, как цукаты. Как какой-то натуральный продукт. Я сразу взял себе самый большой кусок, вот такой. И откусил половину. А вокруг куча народу стоит. И тут я понимаю, что это имбирь. А все как будто на меня смотрят. Пришлось жевать и не подавать виду.

#цитатник
На собеседованиях мы можем задать вопрос вида: "Как код попадает на боевые сервера?"

Вопрос деплоя сервиса имеет множество аспектов. Ожидается, что кандидат обратит внимание на несколько сред выполнения.

В нашей команде используются следующие среды выполнения сервиса:

- development — локальная разработка сервиса
- stand — стенд с работающей версией сервиса для каждого pull request
- testing — собранный релиз-кандидат
- prestable — продакшн версия сервиса с частью реального трафика
- production — продакшн версия сервиса с 100% пользовательского трафика

Разработчики проводят большую часть времени в окружениях development и stand, где происходит разработка и отладка сервиса.

Тестировщики в основном фокусируются на окружениях stand и testing, где осуществляется основной отлов багов.

Тем не менее, как разработчики, так и тестировщики следят за всеми окружениями.

Конечные пользователи видят два окружения: prestable и production. В обеих средах развертывается финальная версия сервиса, однако prestable получает только небольшую долю продакшн трафика.

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

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

#инфраструктура
В предыдущем посте я привел пример вопроса с собеседования. Сейчас я хочу рассказать о процессе найма.

В Яндексе мы проводим секционные собеседования, которые включают следующие этапы:

1. Несколько часовых собеседований.
2. Каждое собеседование проводится между кандидатом и интервьюером.
3. На каждом этапе кандидату предлагаются задачи или проекты для решения.
4. После успешного прохождения всех секций кандидат знакомится с командами.

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

Секционные собеседования являются стандартным подходом в крупных компаниях и де-факто стандартом в индустрии. Яндекс также перешел на эту систему при появлении нового технического директора из Microsoft.

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

Тем не менее, секции позволяют рассмотреть кандидата с разных сторон и оценить его знания. Задачи, которые предлагаются, помогают понять, как кандидат рассуждает и мыслит.

Мы постоянно работаем над упрощением процесса и повышением скорости найма. Например, раньше мы проводили 4-5 секций для найма фронтенд-разработчиков, а сейчас достаточно 2.

Прохождение собеседований — это навык, который можно тренировать и развивать. Для этого необходима практика.

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

#яндекс
В посте об использовании Things я рассказал, что являюсь приверженцем устройств Apple. Люблю их простые и элегантные решения, такие как Apple Pay.

Apple Pay заменил мне кошелек, позволяя оплачивать покупки с помощью телефона или часов. Однако после выключения Apple Pay в России мне пришлось вернуть и кошелек, и карту "Тройка".

Я обрадовался появлению QR-кодов для оплаты и активному развитию СБП от нашего ЦБ. Хотя это менее удобный способ оплаты, для него достаточно только телефона. К сожалению, этот способ оплаты пока не доступен повсеместно.

Один из моих опытов с использованием мобильной оплаты закончился неудачей, когда в момент заказа во Макдональдс Вкусно-и-точка не удалось совершить оплату онлайн. Случился факап, и приложение перестало работать, а QR-коды не были поддержаны. В результате мы с женой остались без чизбургеров.

В поисках альтернативы я обнаружил проект от компании Artpayments, которая создала шармы, подвески и брелки с возможностью оплаты. Украшения и браслеты мне не актуальны, а вот брелки выглядят неплохо.

Я прикрепил брелок к ключам, задал пониженный лимит и теперь всегда имею платежное средство под рукой. Ключи я реже забываю, чем кошелек :)

Брелок работает безотказно при оплате в различных местах, включая торговые центры и метро, и выглядит стильно. Несколько раз мне задавали вопрос "А чем вы сейчас оплатили?". Помню такие же вопросы при первых оплатах часами. Чизбургер я себе тоже купил, конечно.

Платежные стикеры мне не нравятся внешне, как и то, что телефон становится бесплатным размещением рекламы Банка. Поэтому их не рассматривал как альтернативу.

А вы знаете другие необычные инструменты для оплаты помимо платежных стикеров?

P.S. Владельцам телефонов Android не понять мою боль. Они как платили, так и продолжают оплачивать покупки телефоном :)

#байки
Идеалогия GTD предлагает всегда вносить события с конкретным временем в календарь. Это могут быть рабочие встречи, встречи с друзьями, концерты и т.д.

Я использую несколько календарей:

- Рабочий — рабочие синки с коллегами и партнерами
- Личный — встречи с друзьями, запись на стрижку и т.д.
- Здоровье — приемы врачей и обследования
- Обучение — все мои образовательные программы
- Family — общий календарь с моей женой для общих событий

Хочу рассказать отдельно про два календаря: Здоровье и Family.

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

Семейный календарь Family — особое открытие. По историческим причинам он назван на английском языке, хотя в этом нет особого сакрального смысла.

Календарь Family — общий и расшаренный на семью. Это удобный способ синхронизировать наши планы.

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

Всем порядка!

#менеджмент
This media is not supported in your browser
VIEW IN TELEGRAM
Сегодня поговорим про “гусиный феномен” в Яндексе. Алексей Ионов описывает его так:

"Хурал можно посетить лично, а можно посмотреть трансляцию. Пока выступающие собираются, в чате уже запускают «гусей» — это такая местная традиция, которая пошла со времён локдаунов и удалёнки.

Трансляция была нестабильна и в какой-то момент накрылась чёрным экраном. Остался только чат, в котором все и начали со страшной силой флудить.

И тут кто-то написал: «Запускаем гуся, работяги» — это один из мемов из русскоязычных трансляций на Twitch. Остальные начали копировать и повторять, и мем прижился."

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

Недавно коллеги внедрили запуск гусей в качестве пасхалки в поиске. Там их можно пускать без ограничений по времени :)

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

Однако такой подход не является оптимальным. Нужна более продвинутая система деплоя.

В Яндексе большинство серверов работает на операционной системе Ubuntu, где для установки приложений используются debian-пакеты.

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

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

В Яндексе не стали изобретать велосипед и выбрали этот подход для дистрибуции своих сервисов.

Однако требовалась система “оркестрации” для распространения пакетов на группы серверов и по различным окружениям. Для этой цели была разработана внутренняя система под названием Кондуктор, которая контролировала движение вагончиков пакетов с обновлениями.

Несмотря на то, что сейчас мы деплоим docker-контейнеры, я считаю, что использование debian-пакетов и системы Кондуктор было очень удачным решением. Мы взяли проверенный инструментарий и настроили его под свои нужды.

В итоге получилось решение, которое служит уже не один год. Более того, даже сегодня система Кондуктор продолжает работать и помогать сервисам, которые по каким-то причинам до сих пор не перешли в “облачное“ будущее :)

Кстати, если вам интересно узнать больше о деплое с использованием debian-пакетов, то я могу написать лонгрид. Отмечу, что написание лонгридов требует много времени, поэтому давайте договоримся, что “цена” за лонгрид будет 50 👍 к этому посту.

#инфраструктура
Синки – неотъемлемый процесс разработки сервисов. Чаще всего ответственный менеджер просит разработчиков по очереди рассказать краткое резюме о проделанной работе.

А что делать, если вы забыли имя и даже логин не вспоминается? Нужно находить выход из положения.

Герой сегодняшней истории выкрутился не очень удачно. Забыв имя, он назвал первого разработчика "Разработчик 1", а второго – "Разработчик 2".

Специально он это сделал или нет – история умалчивает, но веселья он добавил.

Где-то у коллег даже сохранились фото разработчиков, которые держат листочки со своими "новыми именами".

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

#байки
На одной из конференций Аркадию Воложу подарили самый настоящий светофор, который он передал Геосервисам.

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

Для этого были выполнены следующие шаги:

1. Установили плату с реле для управления светофором.
2. Настроили компьютер для управления платой.
3. Написали скрипт на Python для обновления пробочных данных.

Теперь настоящий светофор показывает информацию о пробках на улице.

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

Наша команда неоднократно переезжала из одного офиса в другой, и светофор всегда переезжал вместе с нами. Он является памятным подарком от одного из основателей Яндекса, и мы бережно к нему относимся.

#гео
В начале этого месяца я рассказывал о том, как проходит найм в Яндексе. Однако так было не всегда.

Раньше мы предлагали кандидатам решить небольшое тестовое задание перед очным собеседованием. Обычно на это требовалось затратить 1-2 часа времени. Кандидат пишет код в спокойной обстановке без лимита по времени и может показать свой максимум.

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

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

Затем я часто предлагал комплексную задачу, например, написать простую версию Яндекс.Карт:

- Создать три компонента: строку поиска с кнопкой "Найти", сайдбар и карту.
- Поиск запускается при нажатии кнопки "Найти".
- Результаты поиска отображаются списком в сайдбаре и в виде меток на карте.
- При клике на метку должно подсвечиваться соответствующее ей место в сайдбаре и наоборот.

Такая задача позволяла обсудить множество аспектов: взаимодействие клиента и сервера, разделение обязанностей, работу с API, абстракции. А также написать некоторые фрагменты кода и интерфейсы.

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

А потом произошло несколько вещей:

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

Поэтому в какой-то момент мы перешли на секционные собеседования.

#яндекс
Дайджест 01.04.2023—30.06.2023
Раз в квартал я публикую дайджесты для быстрого доступа к старым постам.

Для удобства посты разбиты по категориям и отсортированы по алфавиту.

Байки
- Письмо от мэрии нашему менеджеру
- Админ перезагрузил кластер вместо одного сервера
- Разработчик 1 и разработчик 2
- Как я искал удобный способ оплаты

Безопасность
- Письмо от мэрии нашему менеджеру
- Взлом паролей роботом Marcus Brutus
- Фишинговые письма для сотрудников
- О службе безопасности

Гео
- История светофора

Инфраструктура
- Окружения сервиса: testing, prestable, production
- Debian-пакеты для деплоя сервисов

Инциденты
- Админ перезагрузил кластер вместо одного сервера

Карьера
- Про честность
- Про шильдик "руководитель отдела"

Книги
- Дэвид Аллен: Как привести дела в порядок

Менеджмент
- Про GTD
- Про Things
- Про календари

Менторство
- Ресурсное и нересурсное состояние

Разработка
- Технологическое болото

Цитатник
- Имбирь с несахарным характером

Яндекс
- Гуси на хурале
- Что было до секций при найме
- Про найм в Яндексе
- Ну где же ваши "ручки"?

#дайджесты
У нас в компании работают сотрудники разных профилей, не обязательно технических. Чтобы вся компания хорошо функционировала, важно настраивать "информационные мостики" между разными профилями.

Иногда это требует объяснения технических деталей коллегам из "другого мира".

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

Эти статьи — компиляция информации из открытых источников. В них нет NDA, поэтому нет смысла ограничивать их доступ только внутри компании.

📖 Прочитайте статью о взаимодействии клиента и сервера

#разработка
Я уже рассказывал о средах выполнения сервиса, или, как мы их называем, окружениях. При запуске приложения необходимо указать текущую среду выполнения.

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

Для определения среды использовался специальный файл /etc/yandex/environment.type с содержимым в виде одной строки: development, testing и так далее. Выкладывался этот файл также отдельным debian-пакетом. Причем для каждого окружения существовал свой debian-пакет.

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

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

#байки
В своем первом посте я писал, что работаю в Яндексе уже более 10 лет. А вокруг меня есть коллеги с еще большим стажем работы. И вот на протяжении всех этих лет мы вместе строим Геосервисы.

Почему мы так долго работаем не просто в одной компании, а в одном направлении?

Я себе отвечаю так:

1️⃣ Карты — градообразующий сервис. Мы оказываем влияние на жизнь города. Добавил подъезд в народной карте, и 2 тонны железа в виде такси начинают приезжать с правильной стороны. Это же чистой воды магия! Наша команда делает такие вещи возможными.

2️⃣ Геосервисы строят цифровую модель реального мира. Наш мир постоянно меняется и ставит перед нами новые вызовы. Карты всегда развиваются. Необходимость в ориентации в городе всегда остается актуальной.

3️⃣ Чтобы построить нечто по-настоящему масштабное, требуется время. Много времени. У меня в голове есть видение технологического будущего нашей команды, и это путешествие займет несколько лет, а то и больше. Мы уже сейчас разрабатываем методологии, подходы к унификации десятков сервисов и многое другое. Это задачи совершенно иного уровня.

Раньше я удивлялся, как можно проработать в одной компании более 5 лет. Однако практика показывает, что 10 лет - это не предел.

#гео
Разработчик, программист, компьютерщик, оператор ЭВМ — все эти термины описывают специалистов в области IT. Я предпочитаю использовать термины "разработчик" и "инженер".

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

Для них не столь важны конкретные языки программирования или фреймворки. Они ищут наиболее подходящие инструменты для текущей задачи. В своей команде я отношусь к своим коллегам как к инженерам.

Пару лет назад к нашей команде присоединился разработчик на позицию фулстека. Однако после выхода ему пришлось изучить Python и применять технологию MapReduce. Ему потребовалось изучить новые инструменты и использовать их для решения задачи. Это был настоящий инженерный подход!

У меня в команде также есть C++ разработчики, которые программируют на Python, так как они унаследовали сервис, написанный на этом языке. Ранее они также занимались мобильной разработкой, так как это было необходимо.

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

А вообще я поддерживаю технократию! Да здравствует власть настоящих инженеров! :)

#карьера
2025/06/28 22:16:29
Back to Top
HTML Embed Code: