Как стать автором
Обновить
VK
Технологии, которые объединяют
Сначала показывать

Расчёт вкусов пользователя для ленты рекомендаций с применением item2vec-подхода

Уровень сложности Средний
Время на прочтение 6 мин
Количество просмотров 496

Ежемесячная аудитория ОК только в России превышает 36 млн человек. Причём это активные пользователи, которые хорошо взаимодействуют с нашим контентом: ставят Классы, комментируют, делают репосты. Залогом активного отклика во многом является формирование новостной ленты с учетом предпочтений каждого конкретного пользователя.

Меня зовут Дмитрий Решетников. Я тимлид команды рекомендаций в Ленте ОК. В этой статье я расскажу, как выглядит наш пайплайн рекомендации в ленте новостей, о месте item2vec в нём и результатах внедрения такого подхода.

Читать далее
Всего голосов 15: ↑15 и ↓0 +15
Комментарии 0

Сбор логов в Kubernetes с помощью Vector: преимущества, архитектура, реальные кейсы

Уровень сложности Средний
Время на прочтение 12 мин
Количество просмотров 3.2K


Всем привет! На связи Максим Набоких, архитектор и технический руководитель Deckhouse Kubernetes Platform. В ноябре 2023 года я выступил на VK Kubernetes Conf, где рассказал, как мы делаем доставку логов в Kubernetes надёжной и отказоустойчивой с помощью Vector. Эта статья — текстовая версия моего доклада.
Читать дальше →
Всего голосов 40: ↑39 и ↓1 +38
Комментарии 8

Руководство для тимлидов: планирование, Agile и вот это всё

Уровень сложности Простой
Время на прочтение 10 мин
Количество просмотров 13K

Смотрели фильм «Люди в чёрном»? В нём множество запоминающихся реплик и моментов, смешных и поучительных. В одной из сцен агенты попали в затруднительную ситуацию и не могли понять, какой следующий шаг в расследовании им нужно сделать. Тогда один сказал, что нужно съесть пирог, он поможет.

Меня зовут Сергей Иванов, я из «ВКонтакте для бизнеса», и сегодня предлагаю вам присесть поудобнее и съесть пирог вместе со мной.

Съесть пирог
Всего голосов 36: ↑33 и ↓3 +30
Комментарии 6

Проводим и проходим собеседование по системному дизайну

Уровень сложности Средний
Время на прочтение 14 мин
Количество просмотров 3K

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

В предыдущей статье я рассказал, как мы пришли к системному дизайну как основному этапу собеседования в RuStore.

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

Читать далее
Всего голосов 23: ↑19 и ↓4 +15
Комментарии 0

Путь от монолита к разделению Compute и Storage: пример поиска «хранилища мечты» для большой аналитической платформы

Уровень сложности Средний
Время на прочтение 10 мин
Количество просмотров 2.1K

Для запуска и эксплуатации высоконагруженных ИТ-решений с петабайтами данных в активе, нужно проработанное решение, позволяющее гибко управлять ресурсами. Одним из критичных аспектов этого решения, является разделение Compute & Storage — разделение ресурсов инфраструктуры под вычисление и хранение соответственно. Если не реализовать такое разделение в крупном проекте, инфраструктура рискует превратиться в «чемодан без ручки» — эффективность использования ресурсов будет низкой, а сложность управления ресурсами и средами будет высока. На примере команды SberData и их корпоративной аналитической платформы я расскажу, когда требуется разделение Compute & Storage и как это реализовать максимально нативно.

Статья подготовлена по мотивам доклада на VK Data Meetup «Как разделить Compute & Storage в Hadoop и не утонуть в лавине миграций».

Читать далее
Всего голосов 15: ↑15 и ↓0 +15
Комментарии 4

От Cache до Middleware: эволюция Tarantool

Время на прочтение 5 мин
Количество просмотров 1.5K


Рассказываем, что такое Middleware, как мы прокачали Tarantool от Cache до Middleware и когда будет полезен Tarantool с новыми возможностями.
Читать дальше →
Всего голосов 22: ↑21 и ↓1 +20
Комментарии 0

SmartFlow: «В начале был пароль...» или новая аутентификация VK ID

Уровень сложности Простой
Время на прочтение 10 мин
Количество просмотров 2.7K

Привет, Хабр! Исторически сложилось, что первым способом аутентификации (в 1960-х) с появлением доступных компьютеров стал пароль. О рисках его использования и об изобретённых человечеством альтернативах мы подробно рассказали в статье о будущем беспарольной аутентификации. Этот подход к проверке подлинности пользователя мы начали развивать с апреля 2022 года и развиваем по сей день.

Меня зовут Саша, я работаю Android-разработчиком в команде VK ID. Мой рассказ — про SmartFlow, новый процесс аутентификации ВКонтакте, нюансы его внедрения и отличия от старого процесса переключения факторов. Разумеется, рассказывать буду применительно к Android-платформе. 

Читать далее
Всего голосов 27: ↑26 и ↓1 +25
Комментарии 10

Знакомство с DevSecOps Guideline: правила организации безопасной разработки на уровне процессов

Время на прочтение 10 мин
Количество просмотров 4.1K


Количество киберинцидентов постоянно увеличивается, что вынуждает компании реагировать на растущие риски и делает практику DevSecOps обязательной для соблюдения при разработке ИТ-продуктов. При этом топорное внедрение мер не просто не гарантирует безопасность разработки, а может вызвать обратный эффект.
Читать дальше →
Всего голосов 33: ↑32 и ↓1 +31
Комментарии 3

Во что обойдется линеаризуемость в распределенной системе

Уровень сложности Средний
Время на прочтение 12 мин
Количество просмотров 5.3K


Всем привет, меня зовут Сергей Петренко, я программист в Tarantool. Сегодня мы посмотрим, с какими трудностями сталкивается клиент, когда вместо того чтобы общаться с системой, расположенной на одном инстансе, начинает общаться с распределенной системой. И разумеется, поговорим о том, как эти трудности преодолеть. Я расскажу, что такое линеаризуемость, как мы ее реализуем в Tarantool и как это делают другие СУБД. В завершение мы поговорим о накладных расходах от линеаризуемости.
Читать дальше →
Всего голосов 61: ↑60 и ↓1 +59
Комментарии 3

Анимация в браузерах и как с ней работать

Уровень сложности Средний
Время на прочтение 10 мин
Количество просмотров 4.4K

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

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

Меня зовут Сергей Чикуёнок. Я ведущий разработчик в ОК. В этом материале я расскажу об основных этапах работы с анимацией для браузеров, ключевых сложностях и вариантах их нативной оптимизации. 

Читать далее
Всего голосов 43: ↑43 и ↓0 +43
Комментарии 8

Система мета-сборки GN: краткий обзор и подходы

Уровень сложности Средний
Время на прочтение 11 мин
Количество просмотров 1.5K

Привет! Меня зовут Александр, я работаю в VK в команде браузера Atom. В его основе лежит open source-движок Сhromium. Сегодня хочу поговорить о системе мета-сборки GN. Её используют в крупных проектах Google (Chrome, Fuchsia, а также связанных с ними), и, например, когда разрабатывают браузеры на основе Chromium (то есть почти все браузеры, кроме Mozilla, Safari и совсем какой-то экзотики). Система мета-сборки GN используется для генерации ninja-файлов, описывающих этапы сборки проекта.

Читать далее
Всего голосов 21: ↑21 и ↓0 +21
Комментарии 3

Who are you, Platform Engineering: разбираемся с одним из главных технологических трендов. Часть 1

Время на прочтение 12 мин
Количество просмотров 2.1K


Platform Engineering — один из главных технологических трендов 2024 года. По оценке Gartner, к 2026 году 80% компаний, занимающихся разработкой, будут иметь внутренние платформенные сервисы и команды для повышения эффективности разработки. 

Мы в VK Cloud предлагаем Dev Platform — платформу для разработки, которой смогут пользоваться другие компании. В серии статей о методологии  Platform Engineering и создании Internal Development Platform (IDP), мы поделимся своим подходом построения платформенных решений, расскажем о сложностях и о том, почему даже правильный подбор компонентов и архитектурных решений для IDP — не панацея.

В первом материале серии начнем с базы — остановимся на трудностях повышения эффективности команд разработки, разберем, что такое Platform Engineering и Internal Development Platform, что дает внедрение комплексных платформ и какие могут быть сложности.
Читать дальше →
Всего голосов 26: ↑24 и ↓2 +22
Комментарии 0

Техническое собеседование инженеров мобильной разработки в RuStore

Уровень сложности Простой
Время на прочтение 12 мин
Количество просмотров 3.7K

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

Читать далее
Всего голосов 30: ↑27 и ↓3 +24
Комментарии 11

Анализируем виды тестов для Frontend

Уровень сложности Простой
Время на прочтение 14 мин
Количество просмотров 6.9K

С развитием веба сайты превратились в сложные приложения, которыми ежедневно пользуются десятки и сотни миллионов людей: почта, облачные хранилища, соцсети, маркетплейсы, стриминговые платформы и т. д. И каждое из них должно работать корректно. Как это сделать? Конечно писать хороший код, а потом и тестировать его. Хотя кто‑то обходится без тестов, тем не менее тестирование — важная часть инженерных практик наравне с мониторингом. Оно помогает нам заблаговременно находить и исправлять баги (или незапланированные фичи) в приложениях. Основная цель тестирования — получить гарантию корректной работы любого ПО .

При этом тестировать современный фронтенд сложно: неуправляемая асинхронность (событийная модель браузера), различие браузеров, тяжелое окружение — это лишь малая часть сложностей. Можно ли все возложить на ручных тестировщиков или исправлять баги после жалоб пользователей? Однозначно нет. В большинстве случаев такой подход в скором времени приведет к оттоку пользователей: не все пишут о багах, просто уходят к конкурентам. Безусловно, ручное тестирование остается важным элементом разработки, но тестировщики не могут держать сотни или тысячи сценариев, которые нужно пройти перед релизом или запуском новой фичи. Так где нам получить гарантии, что ключевые сценарии приложения работают корректно? Автоматическое тестирование.

Всем привет! Меня зовут Миша, работаю фронтэнд‑разработчиком в VK в команде Облака Mail.ru, и я хочу разобрать различные виды тестов, дать их сравнительный анализ и применимость. Сразу скажу, тут не будет практики написания тестов. Потому что это нереально сделать внутри одной статьи, необходимо разобрать: теорию тестирования, классов эквивалентности, различие подходов/методов к тестированию, комбинаторику состояний, правильное использование моков и стабов, понимание чистых функций, знание архитектуры приложения. Поэтому предлагаю сконцентрироваться на видах тестирования и начать с «идеального теста».

Читать далее
Всего голосов 33: ↑33 и ↓0 +33
Комментарии 2

Иерархия ИИ-потребностей

Время на прочтение 6 мин
Количество просмотров 2.1K


Как это часто бывает с быстро развивающимися технологиями, ИИ породил массовые проявления синдрома упущенных возможностей, страха, неуверенности, сомнений и междоусобиц. Некоторые из них имеют под собой основания, некоторые — нет, но всё это бросается в глаза. Все от мала до велика, от незаметных стартапов до финтех-гигантов и государственных учреждений, сформировали команды специалистов, которые лихорадочно разрабатывают ИИ-стратегии. 

Команда VK Cloud перевела статью о том, как использовать ИИ и машинное обучение, чтобы лучше справляться с тем, что мы делаем.
Читать дальше →
Всего голосов 29: ↑25 и ↓4 +21
Комментарии 0

Аналитика в игре на Godot: подключаем MyTracker

Время на прочтение 8 мин
Количество просмотров 1.7K

Привет! Я Артем Ковардин, руководитель команды Push Service в RuStore. В этой статье я расскажу про подключение MyTracker в мобильную игру на Godot. 

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

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

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

Читать далее
Всего голосов 31: ↑31 и ↓0 +31
Комментарии 0

Тестирование менеджера транзакций

Уровень сложности Средний
Время на прочтение 6 мин
Количество просмотров 2.7K


Привет, Хабр! Меня зовут Георгий Лебедев, я учусь на 4-м курсе ФРКТ МФТИ и работаю в команде разработки ядра Тарантула. В этой статье я хочу поделиться методикой тестирования менеджера транзакций, которая применяется в Тарантуле.
Читать дальше →
Всего голосов 26: ↑25 и ↓1 +24
Комментарии 1

Проверка продуктовых гипотез и немодерируемые UX-исследования c применением внутренних инструментов: кейс команды OK

Уровень сложности Средний
Время на прочтение 7 мин
Количество просмотров 856

Проверка гипотез — неотъемлемая часть работы с продуктом. Но в условиях крупного «живого» проекта, такого как ОК, зачастую возникает не одна, а много гипотез одновременно, которые нужно проверить быстро, без негативного влияния на сервис и с минимальными затратами. 

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

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

Рассказываем, что получилось в итоге.

Читать далее
Всего голосов 27: ↑24 и ↓3 +21
Комментарии 0

Figma to Frontend: как мы автоматически синхронизируем дизайн и код

Уровень сложности Средний
Время на прочтение 7 мин
Количество просмотров 20K

Меня зовут Анастасия Кабалкина, я Head of design в VK Tech. В этой статье расскажу, как мы синхронизировали треть нашей дизайн-системы за счет автоматической генерации дизайн-токенов и компонентов.

Читать далее
Всего голосов 47: ↑44 и ↓3 +41
Комментарии 9

Запуск проекта в Kubernetes за 60 минут: инструменты, GitLab, Terraform

Время на прочтение 14 мин
Количество просмотров 12K


Привет, Хабр! Меня зовут Илья Нырков, я архитектор в VK Cloud. В своей работе встречаюсь с желанием партнеров (это и крупный энтерпрайз, и различные стартапы) использовать Kubernetes, но их останавливает сложность поднятия, конфигурирования кластера, деплоя в нём приложений и построения CI/CD-процессов вокруг него. Я постараюсь показать на практическом примере, который вы можете повторить сами, как развернуть за сравнительно небольшое время полноценный CI/CD с рабочим приложением, доступным для внешних пользователей.
Читать дальше →
Всего голосов 38: ↑37 и ↓1 +36
Комментарии 0

Информация

Сайт
team.vk.company
Дата регистрации
Дата основания
Численность
свыше 10 000 человек
Местоположение
Россия
Представитель
Руслан Дзасохов