Pull to refresh
37
0
Арина @abykova27

Employer Branding Manager / DevRel в Яндекс 360

Send message

Обновления в Swift Concurrency: что нас ждёт в Swift 6

Reading time20 min
Views1.7K

Привет, Хабр! Меня зовут Никита, я занимаюсь iOS-разработкой в Яндекс Диске. Как вы знаете, прошлой осенью зарелизился Swift 6, а вместе c ним появились и строгие проверки для защиты от датарейсов, связанные со Swift Concurrency.

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

Читать далее

Архитектура биллинга Яндекс 360: как не стать единой точкой отказа

Level of difficultyMedium
Reading time11 min
Views4K

Привет, меня зовут Илья Иванов, и я занимаюсь разработкой биллинга в Яндекс 360. Ежемесячно наши сервисы обслуживают 85 миллионов пользователей и более 130 тысяч организаций, обрабатывая свыше 1 миллиона запросов в секунду.

Биллинг в системе сервисов Яндекс 360 — ключевой механизм. Мы не про списание денег, а про то, чтобы пользователь получил доступ к тому, за что он заплатил, максимально быстро и без сбоев. В статье расскажу, как мы спроектировали архитектуру биллинга так, чтобы не быть единой точкой отказа.

Читать далее

13 млрд счётчиков и 220 000 RPS на запись: проектируем Key-Value-хранилище для Спамообороны

Level of difficultyMedium
Reading time10 min
Views3.4K

Привет! Меня зовут Тимур Нургалиев, я тимлид в команде Спамообороны. Яндекс Почта обрабатывает миллиарды писем, из них около 20–30% — спам. Технологии, которые мы создаём в команде, блокируют массовые рассылки и отправляют вредоносные письма в соответствующую папку.

В статье я расскажу про архитектуру нашего высоконагруженного сервиса, немного погружу в контекст и расскажу, как мы спроектировали Key‑Value‑хранилище, которое в режиме реального времени хранит и отдаёт признаки массовости письма.

Читать далее

Осторожно, Combine! Откуда берутся утечки памяти, потеря эвентов, нестабильность операторов и что с этим всем делать

Level of difficultyMedium
Reading time27 min
Views4.2K

Привет, меня зовут Никита, я iOS‑разработчик в Яндекс Диске. В прошлый раз я рассказывал, как мы начали свой путь в SwiftUI. Теперь настало время рассказать ещё об одном фреймворке, который мы затащили в свой проект параллельно со SwiftUI, — Combine.

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

Читать далее

Балуемся кластеризацией и синхронизацией: как устроена мгновенная загрузка фото в Яндекс Диске

Level of difficultyMedium
Reading time12 min
Views5.2K

Всем привет! Меня зовут Дима, я тимлид команды Яндекс Диска. Сегодня расскажу, как обрабатывать сотни терабайт загружаемого контента в день и быстро доставлять его в ленту со всеми фотографиями пользователя. Лента выглядит как локальная галерея на телефоне, но может содержать в себе сотни тысяч фотографий, хранящихся в облаке, и быстро переходить к любой точке среди огромного количества контента. 

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

Читать далее

Как справиться с нагрузкой в черную пятницу? Автоскейлинг инференса на GPU в Kubernetes

Level of difficultyHard
Reading time10 min
Views4.3K

У многих наступление осени вызывает разные чувства и эмоции: от ностальгии во время просмотра Гарри Поттера под теплым пледом до депрессивных мыслей у дождливого окна в кофейне. Именно в этот период компании проводят масштабные мероприятия, одно из них — известная черная пятница. Клиенты пытаются «урвать» по хорошей скидке товары и купить подарки к Новому году. В связи с этим «атакуют» своим трафиком популярные сайты e-commerce, которые могут быть не готовы к такой нагрузке.

Ни для кого не секрет, как сохранить и инфраструктуру в пиковые нагрузки, и трафик клиентов. При этом не понести большие убытки. Деплоим сервис в облако, скейлим ресурсы по требованию и радуемся продажам! Но это в e-commerce, мы же с вами интересуемся ML production.

Привет, Хабр! Я — Антон, DevOps-инженер в команде Data/ML-продуктов Selectel. В этой статье расскажу, зачем нужен автоскейлинг GPU-ресурсов, как настроить масштабирование реплик в Kubernetes по трафику, а также как сделать свой высоконагруженный ChatGPT.
Читать дальше →

Основы Jetpack Compose: как обеспечить стабильность вашего кода

Level of difficultyMedium
Reading time13 min
Views11K

Привет, меня зовут Вера, я Android‑разработчик в Яндекс Диске. Мы в Диске сейчас активно работаем над переездом на Compose с использованием дизайн‑системы. Про стабильность в Compose есть немало статей, однако ошибки продолжают cовершаться, поэтому решила поделиться своим опытом в формате ликбез‑статьи.

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

Читать далее

От десятков до сотен тысяч RPS: как мы создали API, который развивается 10 лет без дропа обратной совместимости

Level of difficultyMedium
Reading time10 min
Views10K

Привет! Меня зовут Вадим Клеба, я руковожу командой бэкенд-разработки в Телемосте. Последние девять лет я разрабатываю высоконагруженные распределённые системы. Раньше я разрабатывал search-as-a-service-решение с эффективным полнотекстовым поиском с учётом релевантности.

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

Читать увлекательную историю

Как Додо Пицца доставляет свежий код: история мобильного CI для iOS

Level of difficultyEasy
Reading time9 min
Views6.1K

Мобильная разработка под iOS особенная: собрать приложение можно только на macOS, среда разработки по сути только одна, большая часть принятого в сообществе тулинга написана на Ruby, свой пакетный менеджер появился только пару лет назад. Тяжко.

А когда речь заходит про автоматизацию тестирования и сборок — тушите свет: Xcode Cloud появился полгода назад и почти ничего не умеет, популярные облачные решения могут месяцами не обновлять стек на новые мажорные релизы среды разработки или ОС (вставить ссылку на тред где гитхаб не может привести новую макось уже полгода), а ценник при этом может быть в 10 раз больше, чем за машинки на Linux. Ещё тяжелее.

Меня зовут Леха Берёзка, я iOS-техлид в Додо Пицце и сейчас я расскажу как мы собрали свой CI на М1, с виртуализацией и на полном нативе.

Читать далее

WebRTC для всех и каждого. Часть 1

Reading time26 min
Views79K



Привет, друзья!


Представляю вашему вниманию первую часть перевода этой замечательной книги по WebRTC. Данная часть посвящена тому, что такое WebRTC, процессу сигнализации и установки соединения (первые 3 части оригинала).


Справедливости ради следует отметить, что на Хабре уже публиковался "вольный" перевод первых 2 частей оригинала (часть 1, часть 2), но автор по какой-то причине решил не продолжать. Я, свою очередь, решил начать с самого начала, без лишних вольностей и сокращений.


Ссылка на вторую часть перевода.


Если вам это интересно, прошу под кат.

Читать дальше →

SwiftUI на iOS 14: преодолевая баги и улучшая перформанс в 3 раза

Level of difficultyMedium
Reading time19 min
Views7.6K

Привет, меня зовут Никита, я iOS-разработчик в команде Яндекс Диска. В этой статье я расскажу про наш опыт разработки на SwiftUI с минимальным деплоймент таргетом iOS 14.

В статье я собрал топ-6 багов, с которыми можно столкнуться, а еще поделился, что помогает улучшить перформанс SwiftUI и ускорить ваши view в 3 раза.

Читать далее

Line height в Android TextView: где не сходится с Figma, как мешает pixel-perfect, и как это решить

Reading time4 min
Views4.5K

В крупных проектах уделяется большое внимание деталям: дизайнеры, аналитики и продуктовые менеджеры продумывают все до мелочей, чтобы максимально улучшить пользовательский опыт. В дизайне такой важной деталью становится pixel-perfect-вёрстка. Разработчики реализуют тонкости дизайна, но иногда происходит расхождение платформенного рендеринга Android TextView и Figma Text.

Читать далее

Шардирование: с нуля до Яндекс Диска

Reading time9 min
Views12K

Меня зовут Андрей Колнооченко. Я отвечаю за ядро файловой системы Яндекс Диска. Когда мы запускали сервис, то сразу ориентировались на рост и приняли решение шардировать базу метаданных о файлах. Но за 11 лет Яндекс Диск настолько вырос, что нам пришлось трижды менять подход к шардированию. В статье расскажу, с какими проблемами мы сталкивались по мере роста сервиса и как от MongoDB пришли в итоге к PostgreSQL.

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

Читать далее

Ловкость рук, четкость алгоритма и никакого мошенничества: чек-лист для дизайнеров интерфейсов и фронтенд-разработчиков

Reading time10 min
Views13K

Привет, Хабр! Меня зовут Даша, я проектировщик интерфейсов в Selectel.

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

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

Шаги, примеры оформления и полезный шаблон ищите под катом. Рассчитываю, что текст будет полезен джунам и мидлам как в дизайне, так и во фронтенд-разработке.
Читать дальше →

Инструменты тимлида: как управлять техническим бэклогом

Reading time11 min
Views12K

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

Читать далее

Как не зависнуть на пике глупости и преодолеть долину отчаяния? Разбираем эффект Даннинга-Крюгера

Reading time5 min
Views19K

Эффект Даннинга-Крюгера — это когнитивное искажение, при котором люди неверно оценивают свои способности. Менее квалифицированные специалисты переоценивают свои навыки, а люди с глубокой экспертизой — недооценивают. Так возникает завышенная самооценка у одних и синдром самозванца — у других. Под катом рассказываем, как не попасть в эту ловушку.
Читать дальше →

Discovery-процесс в продукте: из подземелья незнания — к лучшим решениям

Reading time12 min
Views9.5K

Привет! Я Аля — продакт-менеджер в Selectel. Сегодня расскажу про наш Discovery-процесс в команде выделенных серверов. Он описывает, как мы подходим к вопросам, что нам нужно реализовать в продукте и действительно ли это нужно.

Недавно исполнился год, как мы перешли на Discovery- и Delivery-спринты. В тексте пройдемся по лабиринтам именно Discovery-процесса: расскажу, с какими «монстрами» мы столкнулись, пока выстраивали работу, и как с ними боролись. Спойлер: суммой цифр на игральных костях с ними не справиться.

Текст будет полезен всем, кто выстраивает подобные процессы в компании и хочет больше узнать о чужих «граблях».
Читать дальше →

Каков ты, русский опен сорс?

Reading time4 min
Views14K

В 2017-м году, когда я жил в Одессе (Украина), на украинском IT-портале DOU (аналог Хабра) опубликовали анализ наиболее активных "украинских" open source разработчиков: GitHub-акаунти українських ІТшників: хто в ТОПі. Я не попал в рейтинг, хотя по некоторым параметрам на тот момент превосходил многих его участников (например, по числу followers). Мне стало интересно, по какому принципу были отобраны кандидаты: по гражданству, стране проживания, языку в Javadoc, или по их location в GitHub. Думаю, что по последнему. Три года назад мне показалось это странным: в open source мире не должно быть, как я думал тогда, ни гражданств, ни прописок. Теперь я вижу, что ошибался.

Читать дальше →

Откуда Карты знают, когда приедет автобус

Reading time7 min
Views57K

Раздел «Транспорт» — один из самых популярных в Яндекс Картах: там автобусы, троллейбусы и трамваи перемещаются прямо по карте в реальном времени, а для каждой остановки есть виртуальное табло. Можно посмотреть, сколько ещё ждать транспорт, или понять, когда лучше выходить из дома, чтобы его не пропустить. А если оказались в незнакомом районе — узнать, как быстрее добраться домой, и сразу найти ближайшую остановку или станцию метро.

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

Читать далее

Что такое MLOps? Самый подробный текст про работу с ML-системами, который вы найдете в интернете

Reading time25 min
Views32K


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

Сохраняйте текст в закладки, потому что на данный момент это, возможно, самое полное описание MLOps на русском языке (и не перевод очередной англоязычной статьи!). Подарим мерч Selectel тому, кто пришлет ссылку на более развернутое описание концепции в комментариях.
Читать дальше →
1

Information

Rating
Does not participate
Works in
Registered
Activity

Specialization

HR Brand Development Manager