Артём Шумейко (@artemshumeiko) — Telegram-канал | Telegram Dialogs
Telegram Dialogs — логотип
Все каналы
Артём Шумейко

Артём Шумейко

@artemshumeiko

19.9K подписчиков технологии 💬 Комментарии открыты

Senior Backend разработчик. Рассказываю о лучших практиках разработки приложений и делюсь жизнью разработчика Курс по Backend на Python: https://clck.ru/3RHSKg По рекламе: ads@pytex.school Для связи: t.me/artem_shumeiko_support РКН: clck.ru/3SvT2D

Последние публикации

Артём Шумейко
27.08.2026 13:24 · 👁 3.6K
9 ошибок, которые выдают Junior Backend разработчика ➡️ Новое видео: YouTube / VK / Rutube В коде Backend разработчика ошибки часто начинаются с мелочей, которые легко пропустить, а затем приводят к проблемам в проде. В новом видео разберём такие ошибки: начнём с простых и постепенно перейдём к более сложным случаям. Покажу, почему эти они возникают, чем опасны и как можно их избежать. Сможешь найти ошибки во всех примерах до того, как я их разберу?
Артём Шумейко
25.08.2026 12:47 · 👁 4.7K
Как мы уменьшили RPS в 2 раза Звучит странно, да? Как будто мы потеряли половину пользователей. Ведь обычно чем больше RPS, тем круче компания?) Давайте разбираться. Речь как обычно пойдет о моем стартапе Солвит — тренажере для подготовки к собеседованию. Количество запросов на наш бэкенд (API на FastAPI) упало в 2+ раза за счет внедрения кэширования на стороне браузера. Как это работает Представим себе эндпоинт, который отдает список языков программирования GET /languages. Он вызывается на фронтенде довольно часто, и мы как хорошие бэкендеры, конечно, добавим Redis для кэширования данных, чтобы не ходить каждый раз в базу. Для сравнения: запрос в Базу данных может занять 20-30 мс, тогда как в Redis сходит за 2-3 мс — выигрыш в 10 раз. Это всё звучит круто, но потом ты узнаешь, что клиент, находящийся далеко от сервера, ждет эти данные по сети 200 мс. И тут выигрыш в 20-30 мс кажется уже ничтожно маленьким, и хочется любым способом сократить эту сетевую задержку или вообще избавиться от нее. На помощь приходит кэширование ответа от бэка в браузере. За него, кстати, отвечаем мы, бэкендеры) Если в заголовках ответа добавить, например, Cache-Control: max-age=60, то в браузере на 60 секунд закэшируется результат вызова нашего GET /languages. И при любом повторном вызове эндпоинта запрос просто не уйдет на бэк, данные возьмутся из кэша. Но ведь тогда мы не можем мониторить реальный RPS! Ну да, часть запросов не долетает до бэка, мы не увидим логи ни в Nginx, ни в Python. И что? А что такое реальный RPS? И какой смысл пытаться постоянно его увеличивать? Я пришел к тому, что мои графики и цифры не будут расти стремительно, зато пользователи будут получать лучший опыт использования моего сервиса. И даже в условиях медленного интернета мой сайт будет быстро работать. Подробнее про кэширование в бэкенд разработке рассказывал на большом эфире в Школе Pytex. Чтобы писать надежные бэкенд приложения, выстраивать масштабируемую архитектуру и выдерживать возрастающий RPS — приглашаю на мой Практический курс по Backend разработке на Python. На нём я обучаю всему, что знаю сам и использую в своем стартапе. ➡️ До 31 августа действует скидка 15%, успевай присоединиться к курсу по Backend разработке по сниженной цене
Артём Шумейко
25.08.2026 07:06 · 👁 5.2K
Что происходит с приложением при нагрузке 10 000 RPS ➡️ Новое видео: YouTube / VK / Rutube На 1 RPS приложение может работать совершенно спокойно: один экземпляр, база данных, простой пул соединений. Но что произойдёт, когда станет 10, 100, 1 000 или 10 000 запросов в секунду? В новом видео разбираем основные этапы масштабирования и смотрим, какие изменения требуются на каждом уровне нагрузки.
Артём Шумейко
20.08.2026 11:39 · 👁 8.3K
Джун без коммерческого опыта | Собеседование Python разработчик ❗️Новое видео: YouTube В видео приглашенный гость Дил не имеет коммерческого опыта, всего 1 год изучает Python, но выдает такие ответы, что многие могут позавидовать. В начале разобрали с Дилом базовые темы: изменяемые типы данных, скорость работы структур, хеш-функции, декораторы, асинхронность, лямбда-функции, контекстные менеджеры и миксины. Затем перешли к таким темам, как JWT, access и refresh токены, аутентификация в микросервисах, Kafka и RabbitMQ, N+1, CORS и CSRF, REST API, PUT и PATCH, HTTP-статусы, идемпотентность, логирование и трейсинг. И зафиналили практической частью: решили задачи и провели код-ревью. Если готовишься к собеседованию на разработчика, это видео поможет понять, какие вопросы могут встретиться на интервью и какие темы стоит повторить перед ним
Артём Шумейко
17.08.2026 13:17 · 👁 8.4K
⚡️ С сегодняшнего дня действует скидка 15% на курсы Школы Pytex до конца августа! Скоро осень, а значит близок сезон самого активного найма новых специалистов. Чтобы достичь новых вершин в карьере, пользуйся скидкой до конца лета и развивайся в разработке. BACKEND РАЗРАБОТКА НА PYTHON За 3 месяца ты пройдешь полный цикл продакшен разработки на Python. Напишешь API на FastAPI, научишься работать с PostgreSQL и SQLAlchemy, освоишь SQL, миграции Alembic, JWT-аутентификацию, Redis, Celery, тестирование, Docker, CI/CD и развертывание проекта на сервере. Практика занимает около 80% обучения. Тебя ждут более 30 заданий, полноценный проект, код-ревью нескольких production-проектов на FastAPI и Flask, а также разбор типичных ошибок, с которыми сталкиваются Python-разработчики. ❗️ Выбирай подходящий тариф на сайте Записаться на бесплатную экскурсию
Артём Шумейко
16.08.2026 18:24 · 👁 9.5K
Чего ждать от Python 3.15? Python 3.15 выйдет через полтора месяца, и новые фичи уже зафиксированы, поэтому давайте посмотрим, что интересного появится в следующей версии языка. Ленивые импорты Теперь модуль можно импортировать не сразу, а только в момент, когда он реально понадобится: lazy import aioboto3 print("приложение запустилось") session = aioboto3.Session() # только здесь загрузится код библиотеки aioboto3 В больших приложениях импорт всех зависимостей может занимать заметную часть времени запуска, причём часть из них в конкретном запуске может вообще не понадобиться. Раньше для этого часто приходилось переносить импорты внутрь функций, а теперь для ленивой загрузки появится отдельный lazy import. Новый тип данных frozendict У set уже давно есть неизменяемая версия frozenset, а теперь такая появится и у словарей: config = frozendict( timeout=5, retries=3, ) config["timeout"] = 10 # TypeError Такой объект удобно использовать, например, для конфигурации, которую вы передаёте между разными частями приложения и хотите гарантировать, что никто случайно её не изменит (ни вы, ни другие разработчики). Кстати, теперь на собеседовании на вопрос про типы данных надо не забыть ещё и frozendict назвать :) Распаковка внутри comprehensions Теперь можно будет написать: lists = [ [1, 2], [3, 4], [5], ] result = [*items for items in lists] # [1, 2, 3, 4, 5] Вместо [item for items in lists for item in items]. То же самое работает с set, генераторами и даже словарями через **. Не сказать, что без этого было невозможно жить, но для некоторых задач код станет чуть короче. UTF-8 кодировка теперь стоит по умолчанию Если написать open("file.txt") и явно не передать параметр encoding, Python 3.15 будет использовать UTF-8 независимо от системной кодировки. Меньше шансов словить ситуацию, когда локально всё работает, а в другом окружении (или другой операционной системе) начинаются проблемы с кодировкой. Ещё в Python 3.15 будет несколько менее заметных изменений и улучшений — полный список можно посмотреть в тутачки. Релиз, конечно, не революционный, но язык продолжает постепенно развиваться, это радует. 🔥 — сижу на Python 3.13 или выше 👍 — сижу на Python 3.12 или ниже
Артём Шумейко
10.08.2026 19:20 · 👁 10.3K
Лучшая разгрузка после тяжелого дня
Артём Шумейко
06.08.2026 14:01 · 👁 12.5K
SQL — разбираем популярные вопросы с собеседований ➡️ Новое видео: YouTube | VK | Rutube В новом видео разбираю вопросы по SQL, которые часто встречаются на технических собеседованиях на backend-разработчиков: 🟢Чем отличается WHERE от HAVING 🟢 Что такое JOIN и какие виды существуют 🟢 Что такое UNION и UNION ALL и чем они отличаются 🟢 Что такое CTE, подзапросы и временные таблицы 🟢 Как найти дубликаты 🟢 Что такое оконные функции и когда их использовать 🟢 Использование IN и EXISTS 🟢 Конструкция NOT IN
Артём Шумейко
30.07.2026 10:04 · 👁 13.4K
Топ вопросов по HTTP с собеседований с разбором ответов ➡️ Новое видео: YouTube | VK | Rutube В новом видео я разобрал вопросы по HTTP, которые регулярно задают на собеседованиях на backend-разработчика, а именно: 🟢 POST, PUT и PATCH запросы 🟢 В чем разница между заголовками и куки 🟢 Какие есть уязвимости при работе с куки 🟢 Что такое CSRF-атака 🟢 Что такое CORS 🟢 Как HTTP связан с ограничением запросов 🟢 Какие способы передачи файлов существуют 🟢 Кэширование в HTTP 🟢 В чем различие статус-кодов: 200, 201 и 204 В видео разобрал все, что нужно знать по HTTP, чтобы успешно подготовиться к собеседованиям
Артём Шумейко
22.07.2026 11:16 · 👁 14.7K
Middle из бигтех собеседуется на Python Backend 👉 Новое видео: YouTube | VK | Rutube В новом ролике с приглашенным разработчиком Александром, работающим в бигтехе, провели интервью на Middle Backend. За время собеседования мы успели обсудить проектирование высоконагруженных сервисов, PostgreSQL, индексы и оптимизацию запросов, Python и asyncio, архитектуру приложений, SQLAlchemy, интеграцию с внешними API, тестирование, алгоритмы, аутентификацию и авторизацию, JWT, микросервисы и многое другое. Если ты готовишься к собеседованию на Middle Python Backend или хочешь понять, какие вопросы задают на технических интервью, смотри видео.
Чат поддержки
Ответим здесь же, обычно быстро
Здравствуйте! Напишите ваш вопрос — оператор ответит в этом чате.