Все мы писали парсеры.. Приступим к system design Нужно спроектировать систему, которая будет периодически запускать парсеры на разных языках и сохранять данные, которые в дальнейшем будет забирать ML команда для дальнейшей обработки. Управление парсерами должно быть гибким, с возможностью настройки периодичности и ручного запуска.Обсуждаем решение в комментариях к посту, а рисовать можно в draw.io https://drive.google.com/file/d/1NXkfZltpnxNJprKgSPPhiw36lAMg5ioM/view?usp=sharing (если возникнут трудности с подключением, пишите).Допущения:* Используемые языки для парсеров: Python, R, JS, PHP.* Один парсер может запускаться одновременно во множестве инстансов, чтобы обрабатывать в параллель множество страниц конкретного сайта.* Парсеры могут работать продолжительное время, вплоть до нескольких часов.* Общее количество парсеров не превышает 1000.* Парсеры собирают только текстовые данные.* Объём ежедневно собираемых данных — до 10Gb.* Данные хранятся в течение 3 лет.Какие технологии и подходы вы бы выбрали для реализации такой системы? Как вы организуете хранение данных, управление нагрузкой и мониторинг работы парсеров? Как обеспечить гибкость в настройке периодичности и ручного запуска?ЛСА | Лайфстайл айтишника
ЛСА | Лайфстайл айтишника
@lsa_python
ЛСА — инженерный рост без перегруза.Здесь говорят:— о зрелом коде и зрелом подходе;— о карьере: от senior до CTO;— об архитектуре, ИИ и командных практиках;— и как всё это вписать в нормальную жизнь.Для лидов и тех, кто туда идёт.
Похожие каналы
Все →Последние посты

Секция system designХотите прокачать свой навык прохождения system design или посмотреть, как это делают другие? Тогда читаем дальше😉Если вы будете проходить собеседование на позицию senior dev и выше в какую-нибудь BigTech компанию, то с большой вероятностью у вас будет секция system design. Что такое system design? Это процесс проектирования системы, который включает в себя анализ требований, определение компонентов, их взаимодействие и выбор технологий для реализации. Саму секцию можно разделить на несколько этапов: сбор и анализ требований, разработка высокоуровневой архитектуры, детализация компонентов и взаимодействий, а также оценка рисков и возможностей масштабирования.Проходили подобные секции? Сегодня предлагаю потренировать свой скилл или даже научиться в прохождении данного части собеседования. Но формат будет у нас нестандартный, и вот как предлагаю провести его:1. В 15:00 я выложу задачу отдельным постом.2. В комментариях к посту я буду модерировать процесс и выступать стейкхолдером, а также направлять и помогать двигаться в нужном направлении.3. Чем больше разных предложений и вопросов будет, тем интереснее будет получаться :)Поставьте реакцию, если готовы поучаствовать. От количества заинтересованных подберу более интересную или более простую задачу.ЛСА | Лайфстайл айтишника

Идемпотентность — любимый вопрос на собеседованияхВ продолжение вчерашнего кейса, как в итоге решили проблему:Когда клиент нажимает "Оплатить", он отправляет уникальный код (например, ABC123 или UUID) вместе с запросом на сервер. 1. Первый запрос: Сервер видит новый код ABC123, выполняет оплату, сохраняет результат вместе с кодом.2. Повторный запрос: Сервер видит тот же код ABC123, возвращает сохраненный результат, не проводя оплату повторно.Что получили:- Отсутствие двойных списаний: запросы с одним кодом обрабатываются только один раз.- Экономия ресурсов: сервер не дублирует операции и не стучится во внешние интеграции.- Удовлетворённость клиента: защита от случайных повторных оплат.Как часто вы или у вас спрашивают на собеседовании про идемпотентность?ЛСА | Лайфстайл айтишника

Кейс: двойная оплата при плохом интернетеВ интернет-магазине клиенты иногда сталкивались с двойным списанием при оплате. Если после нажатия кнопки "Оплатить" связь прерывалась, пользователь не получал подтверждения и нажимал кнопку снова. Сервер обрабатывал каждый запрос отдельно, списывая деньги дважды.После пары быстрых фриланс правок в коде появились следующие конструкции:1. (На фронте) Блокировка кнопки после нажатия: предотвращает повторные клики, но мешает повторить попытку при сбое.2. (На беке) Отслеживание времени: игнорирование запросов, поступающих в короткий интервал, но это ненадежно при легитимных повторных попытках.Как думаете, как можно было бы ещё закостылить решение? Позже в комментариях напишу, как в итоге решили проблему.ЛСА | Лайфстайл айтишника
Observability: инструменты и тренды— Какие инструменты ты используешь для мониторинга системы?— Обычно Prometheus для метрик и ELK для логов, а ты?Prometheus — метрики, ELK — логи, Jaeger — трассировки. OpenTelemetry становится стандартом для объединения метрик, логов и трассировок. Не забываем и про Sentry — инструмент для отслеживания ошибок в приложениях.Для понимания актуальных трендов в observability смотрите свежие обзоры, такие как «State of DevOps».* На 29 странице отчёта State Of DevOps Russia 2024 расписаны популярные инструменты Observability в российских компаниях.* Также стоит посмотреть на список решений, предоставленных CNCF https://landscape.cncf.io/guide#observability-and-analysis--observability. Интересно ли узнать про практики сбора метрик и как начать реагировать на проблемы заранее, не дожидаясь, когда придут пользователи? Сталкивались ли вы с ситуациями, когда алёрты просто пропускались? Про что вам хотелось бы узнать подробнее?ЛСА | Лайфстайл айтишника
Софт и хард скиллы, что нужно для роста зарплаты разработчика— Почему ты не хочешь перейти в другую компанию? — Там новый коллектив, стресс, нужно доказывать заново свои компетенции.Почему разработчики считают, что только технические навыки определяют успех в карьере? Софт скиллы, такие как умение общаться, работать в команде, управлять временем, да и просто хотя бы включать камеру играют не менее важную роль.1. Способность ясно излагать мысли и объяснять технические детали коллегам и менеджерам помогает избегать недоразумений и повышает вашу ценность в команде.2. Работать в команде, как бы банально не звучало, но многие не умеют, поддерживать других и делиться знаниями. Или делают это так, что больше к ним не подойдешь. А этот навык особенно важен в крупных проектах, где успех зависит от коллективных усилий.3. Управление временем и задачами: про навык адекватно оценивать задачу, правильно расставлять приоритеты и эффективно управлять временем, часто не могут даже senior разработчики. А ведь это помогает завершать задачи в срок, что положительно сказывается на общей производительности команды и компании.4. Лидерские качества: или способность брать на себя ответственность и вести проекты к успеху не только улучшает ваш имидж в компании, но и может быть весомым аргументом при обсуждении повышения зарплаты.Инвестируя в развитие софт скиллов вы обеспечиваете себе дальнейший карьерный рост и увеличение дохода.ЛСА | Лайфстайл айтишника [python]
ЛСА | Лайфстайл айтишника pinned «20 новых слотов на диагностику — У меня в окружении нет опытных разрабов. Потихоньку разберусь сам. — Записывайся к нам на диагностику. Неадекватные руководители, слабые техлиды, отсутствие команды, синдром самозванца и отличницы, слабые софты, доход ниже…»
Как формируется костяк команды — Во сколько релизим? — В 10 утра. У нас осталось 4 часа.У меня в команде иногда приходилось работать ночами.Подавляющее большинство команды воспринимало такие ситуации как вызов, когда нужно всем поднапрячься, доделать фичи, поправить баги и спокойно отдохнуть. Некоторые ребята могли сидеть в зуме и просто поддерживать тех, кто писал код, помогать гуглить и тестить. Но были и те, кто наотрез отказывался работать выше нормы. — Какая мотивация работать, если за это никто не заплатит? — Я свои задачи закрыл, мне доделывать ничего не надо.В этой истории нет неправых. Одни переживали за результат команды, топили за продукт и создавали семейную атмосферу, а другие просто работали. Ответственность за результат и вовлеченность = карьерный и личностный рост. А вы встречали рассвет за написанием кода? ЛСА | Лайфстайл айтишника [python]
20 новых слотов на диагностику— У меня в окружении нет опытных разрабов. Потихоньку разберусь сам.— Записывайся к нам на диагностику.Неадекватные руководители, слабые техлиды, отсутствие команды, синдром самозванца и отличницы, слабые софты, доход ниже рынка.Такие проблемы озвучили 10 участников канала на one-to-one встречах с нами. Об этих историях никто не напишет на лендингах, потому что они живые и настоящие.Мы со своей стороны искренне хотим давать вам поддержку и повышать вашу насмотренность. Рассказывать, как можно решать проблемы и расти по навыкам и доходу. Поэтому выделили еще 20 бесплатных слотов на диагностику. Записаться тут:https://python.forkway.io/diagnostic/?utm_source=telegramЛСА | Лайфстайл айтишника [python]
Ох уж эта капча…— Что сейчас я должен знать, чтобы хорошо устроиться на работу? — Давай посмотрим, что хочет рынок. Чтобы спарсить самый популярный в РФ сервис по поиску работы, не забудьте использовать прокси и часто менять IP. Это первое, что хочется сказать вам.А ещё мы собрали для вас 60 наиболее востребованных навыков, которые хотят видеть от python-разработчиков работодатели в 2024 году. Мы очень надеемся, что те 15 часов, которые мы потратили на написание кода парсера, чистку данных и приведение их в удобный формат, не прошли даром. И те, кто сейчас задаются вопросом: «А что я должен освоить, чтобы быть востребованным разработчиком?», скажут нам спасибо. А мы будем искренне рады за то, что помогли вам.Получить документ с информацией о 60 ключевых навыков, которые ждут компании от middle python-разработчиков, можно в нашем боте:https://t.me/developers_lifestyle_bot?start=skill_60ЛСА | Лайфстайл айтишника [python]