Рубрика «system design»

Привет!

Я — Зинченко Иван, IT-Lead в направлении разработки цифровых каналов в Газпромбанке. За последние 3 года я провёл и прошел десятки собеседований по System Design и заметил: 80% кандидатов проваливаются на одной и той же ошибке - не фиксируют основные требования к системе.

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

Для чего нам нужны требования? 

Сбор и фиксация требований это первый и самый важный этап при Проектировании IT-СистемыЧитать полностью »

Кто я и зачем всё это

Всем привет! Меня зовут Бодров Иннокентий. Я — продакт, аналитик и архитектор с более чем 17-летним опытом в разработке информационных систем, построении успешных продуктов в телеком-индустрии, финтехе, электронном документообороте и корпоративных порталах.

Последние несколько лет я активно продвигаю идеи работы на основе здравого смысла, бережливости и современного, гибкого (в хорошем смысле слова) продуктового подхода. И один из инструментов, который мне помогает в этом — это Domain-Driven Design (DDD).

Читать полностью »

System Design Interview — пожалуй, один из самых «бесформенных» этапов технического собеседования. Здесь важно не найти единственно верное решение, а продемонстрировать системное мышление, умение работать с абстракциями, логически выстраивать архитектуру и аргументированно делать выбор технологий.

Александр Кучук, эксперт сообщества Spring АйО, подготовил авторскую статью, в которой шагом показывает, как структурировать интервью, какие вопросы задавать, как рассуждать и что оценит интервьюер.

Кстати, Александр ведет репозиторий с заметками: Читать полностью »

К сожалению, в последнее время всё больше и больше людей советуют использовать JWT для управления пользовательскими сессиями в веб-приложениях. Это ужасная, ужасная идея, и в этом посте я объясню, почему.

Чтобы избежать недопонимания, я введу термины:

  • Stateless JWT – Токен JWT, который содержит сессионные данные, вшитые непосредственно в этот токен.

  • Stateful JWT – Токен JWT, который содержит лишь идентификатор сессии. Сессионные данные хранятся при этом на сервере.

  • Читать полностью »

Несколько лет назад я начал всё больше разбираться в том, как проектируются большие и сложные IT-системы. Ещё и такие, которые выдерживают огромные нагрузки: обрабатывают запросы миллионов пользователей каждый день, гоняют петабайты данных ежемесячно и всё такое. YouTube, TikTok, Google Docs и т.п.

А в последнее время и по работе чаще стало необходимо погружаться в архитектурные обсуждения. Интересно ещё и то, что в крупных IT-компаниях всё чаще наблюдается тренд на проведение так называемых System Design Interview. Это по сути архитектурное собеседование для специалистов с серьёзным уровнем.

Читать полностью »

Привет! Сегодня поговорим про такого зверя, как positional bias. Если вы работаете с поисковыми системами или рекомендательными сервисами, то наверняка сталкивались с этой проблемой. Разберёмся на примере задачи по ml system design — предсказание вероятности клика по товару (известной как CTR — Click-Through Rate) в поисковой выдаче.

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

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

— Нет никакой организации! — вопили они.

Подозреваю, что слежка велась через мой телеграм-канал.

Читать полностью »

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

Читать полностью »

50 терминов системного дизайна, которые должен знать каждый разработчик - 1

1. Масштабируемость / Scalability

  • Масштабируемость — это способность системы поддерживать возросшую нагрузку путем добавления дополнительных ресурсов
  • Примером является добавление дополнительных серверов для обработки увеличившегося веб-траффика
  • Что такое масштабируемость и как ее достичь?

2. Балансировка нагрузки / Load Balancing

  • Балансировка нагрузки — это разделение входящего сетевого траффика между несколькими серверами для снижения нагрузки на каждый из них (во избежание того, чтобы на один сервер приходилось слишком много траффика)
  • Примером является распределение веб-траффика между несколькими экземплярами EC2 с помощью сервиса AWS Elastic Load Balancer (ELB)
  • Понимание балансировки нагрузки

Читать полностью »

Привет! Что‑то я давно не писал, отбился от рук, а ведь когда‑то мы целый курс машинного обучения на Хабре вели. Расскажу про свой недавний заход по собесам, что спрашивали, какие выводы сделал. Контекст: Applied Machine Learning science (в том числе этот ваш Generative AI), Нидерланды, уровень синьор+. Я долго получал отказы, старался не унывать и в конце таки нашил лычку Staff GenAI Field Solutions Architect в Google Cloud. Тут поделюсь статистикой собесов, полезными ресурсами и, конечно, всякими советами.

Ну и как настоящий продажник и типа блоггер, упомяну, что все это и многое другое я описывал в Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js