15708
Присоединяйтесь к нашему каналу и погрузитесь в мир Backend-разработки Связь: @devmangx РКН: https://clck.ru/3FobxK
7,2 млн рублей призового фонда и реальные задачи космической отрасли 🚀
В сентябре пройдет серия КосмоХакатонов для студентов, молодых ученых и специалистов.
Участникам предстоит за два дня разработать собственное решение, поработать с экспертами и представить проект жюри.
Участников ждут:
🛰 реальные задачи космической отрасли
👥 команды от 3 до 5 человек
💻 очный и онлайн-форматы
🧑💻 работа с экспертами и трекерами
🏆 финал в Москве
Первый КосмоХакатон стартует уже 4 сентября в Ростове-на-Дону.
Дальше серия продолжится в Красноярске, Нижнем Новгороде, Благовещенске и Санкт-Петербурге, а завершится финалом в Москве.
Участие бесплатное. Присоединиться могут студенты, аспиранты, молодые ученые и специалисты от 18 лет.
🔗 Зарегистрироваться: https://космохакатон.рф
Backend Checklist: JSON-сериализация
Сериализация — это преобразование Python-объектов в текст для передачи по сети. Звучит как простая смена формата, но на деле это скорее перевод с одного языка на другой. А при переводе часть информации может потеряться.
В JSON всего семь типов, а у ваших объектов их гораздо больше. Весь набор типов JSON — это object, array, string, number, true, false и null. И всё. Никаких datetime, Decimal, set, UUID или bytes.
Поэтому всё, что сложнее этих типов, приходится обрабатывать отдельно — иначе json.dumps() завершится с TypeError:datetime, UUID, Decimal — в JSON нет соответствующих типов, поэтому их преобразуют, обычно в строки.set, bytes — прямых аналогов тоже нет, поэтому вы сами выбираете способ представления: например, set как list, а bytes как base64.tuple — незаметно превращается в array, а после десериализации возвращается уже как list.
Последний пример в миниатюре показывает суть проблемы. Вы сериализуете tuple, а десериализуете list. Данные сохранились, но тип — нет.
Объект, который вы получаете обратно, — уже не тот объект, который вы отправили. Round trip через JSON может приводить к потере информации. datetime уходит как string и остаётся string до тех пор, пока кто-то явно не распарсит его обратно. Decimal, если преобразовать его во float для совместимости с JSON, вернётся как float — и по пути может потерять точность.
Сериализация — это перевод на язык, в котором всего семь слов. Всё, для чего в нём есть подходящее «слово», сохраняется. Всё остальное зависит от соглашений между обеими сторонами — иначе оно просто не переживёт передачу.
В Python shell:json.loads(json.dumps(("a", "b")))
вернёт: ["a", "b"] Round trip изменил тип данных, не сохранив различие между tuple и list.
👉 @BackendPortal
now() — это не «сейчас», а скорее «когда-то было сейчас».
На самом деле now() возвращает время начала текущей транзакции. Реальные часы продолжают идти, но каждый последующий вызов now(), CURRENT_TIMESTAMP, CURRENT_TIME и CURRENT_DATE внутри этой же транзакции всё равно возвращает одно и то же время.
В Postgres это называется transaction-frozen timestamp.
То есть INSERT на 10 000 строк с created_at DEFAULT now() получит один и тот же timestamp для всех строк, а не 10 000 слегка отличающихся значений.
Три варианта времени:
• now() — традиционный для Postgres вариант, хотя он есть и в других СУБД, но это не стандарт SQL. В стандарте SQL используется CURRENT_TIMESTAMP. В Postgres также есть transaction_timestamp(), который работает так же, как now(), но хотя бы честно говорит об этом своим названием.
• statement_timestamp() обновляется один раз на каждый SQL-запрос. Это полезно внутри длинной транзакции, когда вам нужно фиксировать время выполнения отдельных команд, но не переходить к реальному системному времени.
• clock_timestamp() — единственный timestamptz, который меняется даже во время выполнения одного SQL-запроса.
👉 @BackendPortal
Все говорят «поставь кэш». Но почти никто не показывает, где система реально развалится.
Breakscale — это не обычный генератор нагрузки. Это симулятор архитектуры, где ты собираешь систему, постепенно увеличиваешь трафик и смотришь, что сломается первым.
В демонстрации:
2 запроса/с — всё зелёное
840 запросов/с — 99% запросов падают
И самое интересное — узкое место вообще не в API. Обе базы данных загружены на 99,9%.
Вот чему обычная статичная схема архитектуры тебя никогда не научит.
Внутри есть 33 компонента: балансировщики нагрузки, кэши, очереди, реплики, автоматические выключатели и многое другое.
Плюс 23 готовых сценария вроде retry storm, cache-aside, шардинга и автомасштабирования.
Задержки p50, p95 и p99 здесь реально считаются, а не берутся из воздуха. Незавершённая работа продолжает занимать ресурсы. Можно даже устроить хаос, убить один из узлов и посмотреть, выдержит ли архитектура.
k6 на боевой системе это не заменит.
Но как тренажёр системного проектирования перед тем, как трогать реальную инфраструктуру, выглядит очень круто.
Открытый исходный код.
Демо
https://breakscale.tech
GitHub
https://github.com/xevrion/breakscale
👉 @BackendPortal
Приложения и базы данных, которые стоят за ними.
Instagram — PostgreSQL
Reddit — PostgreSQL
Twitch — PostgreSQL
Notion — PostgreSQL
Figma — PostgreSQL
ChatGPT — PostgreSQL
Skype — PostgreSQL
GitHub — MySQL
Shopify — MySQL
Slack — MySQL
YouTube — MySQL
Uber — MySQL
Airbnb — MySQL
Facebook — MySQL
Netflix — Cassandra
Discord — ScyllaDB
Забавно, насколько большая часть крупнейших сервисов в мире до сих пор держится на PostgreSQL и MySQL.
👉 @BackendPortal
Ядро Linux приближается к отметке в 2 000 уязвимостей за один выпуск.
Ещё несколько лет назад их было около 500 на выпуск. Потом число перевалило за 1 000. Затем за 1 500.
Грег Кроа-Хартман, один из самых опытных сопровождающих ядра Linux, показал эту тенденцию перед своим выступлением на Kernel Recipes 2026.
При этом сама кодовая база не выросла настолько сильно. В ней по-прежнему около 40 миллионов строк.
Изменилось другое — кто теперь читает этот код.
Инструменты ИИ сканируют его в масштабах, которые раньше были недоступны ни одной человеческой команде.
Старые и малоизвестные драйверы, к которым годами никто не прикасался, внезапно оказываются полны недавно обнаруженных ошибок.
Большинство из них имеют низкий приоритет.
Но сам объём находок уже заставляет сопровождающих ядра удалять устаревший код быстрее, чем когда-либо раньше.
👉 @BackendPortal
Сегодня запустили pgterm.dev
Терминал для PostgreSQL, написанный на Rust.
Один терминал для всех ваших баз PostgreSQL.
→ Добавляйте любую базу одной командой
→ Следите за состоянием, запросами, индексами и активностью
→ Мгновенно переключайтесь между базами
→ Подключайте pgbot для более глубокой диагностики
→ Всё работает локально
Бесплатно и с открытым исходным кодом.
По сути, это htop для PostgreSQL, только созданный специально для разработчиков и ИИ-агентов.
GitHub ↓
https://github.com/pgrundev/pgterm
👉 @BackendPortal
Что такое Forward Proxy?
Само слово proxy означает «от имени кого-то». Forward Proxy находится между клиентом и интернетом и действует от имени клиента.
Основная идея
Вместо того чтобы клиент напрямую обращался к серверу, он сначала отправляет запрос прокси-серверу. Прокси пересылает запрос дальше и получает ответ от имени клиента.
С точки зрения сервера запрос пришёл от прокси, а не от самого клиента. Реальный клиент для сервера остаётся скрытым.
Пример из реальной жизни
Forward Proxy широко используют в компаниях для фильтрации, блокировки и журналирования интернет-трафика.
Представим, что у вас ИТ-компания, где сотрудники выходят в интернет с рабочих компьютеров. Forward Proxy позволяет
• записывать запросы
• фильтровать их в зависимости от пользователя или типа запроса
• блокировать отдельные сайты
Внешний сервер будет видеть IP-адрес прокси компании, а не конкретного сотрудника.
Где используется Forward Proxy
• приватность
• фильтрация контента
• кэширование
• обход географических ограничений
• журналирование и мониторинг
Главное
Forward Proxy действует от имени клиента и находится между пользователем и интернетом. Его используют для приватности, контроля доступа и кэширования со стороны клиента.
👉 @BackendPortal
Упрощает изучение шаблонов проектирования через понятные объяснения и примеры кода на PHP 7.
https://github.com/nilbuild/design-patterns-for-humans
👉 @BackendPortal
Как купить Gemini Pro на 1.5 года за 4.99$??
Топовая нейронка для создания видео, картинок, написания кода и работы. Сейчас цена 4.99$ вместо 360$ на 1.5 года (схема рабочая, всё легально оформляется)
✅Nano Banana 2 PRO (картинки для ТТ и YT)
✅Видео генерация (видео, нарезки, мувики)
✅Gemini AI Pro (для кодеров)
✅Доступ к AntiGravity
✅ 5 ТБ облака в Google One
✅Deep Research (для курсачей за 5 минут)
Продаётся в Тайнике, схему скоро прикроют — у кого куплено, всё останется работать. У шопа 3000+ покупок и 300+ отзывов, кстати бекают деньги и делают замены.
Классика алгоритмов
https://www3.cs.stonybrook.edu/~skiena/373/videos/
👉 @BackendPortal
Бывший глава GitHub строит ему замену.
Потому что GitHub уже не справляется с собственной инфраструктурой.
Сейчас GitHub обрабатывает 2,9 млрд коммитов в месяц. Ещё в апреле было 1,4 млрд. То есть нагрузка удвоилась всего за четыре месяца.
Каждый месяц сливаются 130 млн пул-реквестов и создаются 24 млн новых репозиториев.
И это уже второй крупный сбой GitHub только за август.
Технический директор GitHub Влад Фёдоров прямо написал в разборе инцидента
«Мы добились прогресса, но эти инциденты ясно показывают, что нам нужно ускорить эту работу».
Сейчас уже 58% нагрузки GitHub работает на Microsoft Azure. В мае было всего 12%.
Только за этот год компания добавила 3 млн процессорных ядер и 120 петабайт хранилища.
Собственные центры обработки данных GitHub упёрлись в предел. Причём не по бюджету, а буквально по доступной мощности электроснабжения.
Тем временем Томас Домке, который руководил GitHub до 2024 года, запустил новую компанию Entire.
И она создаётся именно потому, что он не верит, что нынешняя архитектура GitHub сможет выдержать ту нагрузку, которую скоро начнут генерировать ИИ-агенты для программирования.
Источник — The New Stack.
👉 @BackendPortal
Tobi Lütke, сооснователь и CEO Shopify, на выходных сделал открытую реализацию подхода из статьи Cursor «Git at Scale».
Проект называется walgit. Это один бинарный файл на Rust, который можно подключить к любому S3-совместимому объектному хранилищу. Он использует WAL и CAS и при этом не требует отдельной базы данных.
Также есть поддержка bundle-uri, благодаря чему большие Git-репозитории и монорепозитории можно гораздо быстрее скачивать как цепочку статических бандлов.
Плюс добавлен базовый привычный интерфейс.
Исходный код открыт - https://github.com/tobi/walgit
👉 @BackendPortal
Создатель PostgreSQL фактически поблагодарил Oracle за успех своей базы данных.
Майкл Стоунбрейкер создал PostgreSQL. Ему уже за 80, а он до сих пор продолжает запускать компании.
Его слова
«Мы должны поблагодарить Oracle за популярность PostgreSQL, потому что когда они купили MySQL, все испугались... Именно тогда и начался подъём PostgreSQL».
Oracle купила MySQL в 2010 году. Разработчики начали мигрировать ещё до того, как компания успела сделать что-то плохое.
Спустя 15 лет Стоунбрейкер считает, что страхи были оправданы.
В сентябре 2025 года Oracle провела масштабные сокращения в основной команде MySQL.
А PostgreSQL тем временем стал самой популярной базой данных среди разработчиков ещё в 2023 году. Microsoft, Google и Amazon построили вокруг его протокола собственные сервисы.
О нынешнем положении MySQL Стоунбрейкер говорит просто
«Исчезает как конкурент».
А главную причину успеха PostgreSQL он объясняет так
«Им управляет группа из 20–30 очень умных суперпрограммистов... Это открытый исходный код в своём лучшем проявлении».
Получается красиво.
Oracle 15 лет подряд случайно строила главное преимущество PostgreSQL.
У него никогда не было одного владельца, которого все могли бы бояться.
👉 @BackendPortal
Чеклист лучших практик для разработки backend-приложений
Удобный и структурированный чеклист для всех, кто разрабатывает backend: от настройки проекта и API-дизайна до тестирования, логирования и деплоя. Можно буквально пройтись по пунктам и улучшить свой текущий сервис
Полезно для pet-проектов и подготовки к собеседованиям 🎁
👉 @BackendPortal
Следующая тема: Routing.
Материал о том, что на самом деле происходит после того, как запрос покидает браузер, и как работает routing на разных уровнях.
Network routing, routers, routing tables, BGP, OSPF, static и dynamic routes, backend routing, path parameters, query parameters, nested routes, API versioning, middleware, route matching — а также то, что происходит под капотом routing engine.
Это не очередной разбор app.get(), представленный как объяснение routing. Здесь рассматривается весь процесс: от того, как сетевые пакеты находят нужный сервер, до того, как backend определяет нужный участок кода для обработки запроса.
Главная идея — не просто запоминать концепции backend-разработки, а понимать, что именно происходит под капотом и как все эти механизмы связаны между собой.
Вторая статья из серии: anuragdotdev/the-ultimate-guide-to-routing-from-network-packets-to-backend-handlers-64cc4f7fdbfa" rel="nofollow">https://medium.com/@anuragdotdev/the-ultimate-guide-to-routing-from-network-packets-to-backend-handlers-64cc4f7fdbfa
👉 @BackendPortal
Недавно довольно часто пользуюсь Ansible — очень сильный проект с открытым исходным кодом, уже 69,1 тысячи звёзд на GitHub.
1️⃣ Автоматизацию можно описывать обычными текстовыми сценариями и использовать их для развёртывания приложений, настройки серверов и управления облачной инфраструктурой.
Недавно мне нужно было подготовить окружение сразу на трёх новых машинах. Написал один playbook — и всё поднялось почти автоматически. Вручную через команды на это ушло бы минимум пару часов.
2️⃣ Все машины управляются по SSH, при этом на целевые серверы не нужно ставить отдельный клиент.
Раньше я уже обжигался на зависимости SaltStack от агента, поэтому подход Ansible реально удобнее. Поменял конфигурацию — и можно сразу раскатить её хоть на сотню машин.
3️⃣ Синтаксис довольно близок к обычному английскому, поэтому новичок может разобраться буквально после беглого просмотра документации.
В прошлом месяце я автоматизировал сбор логов в компании. Руководитель думал, что там какая-то сложная система, хотя по факту получилось около 30 строк конфигурации.
Тем, кто работает с ИИ, тоже стоит посмотреть на Ansible. Сам подход к устройству системы очень полезно изучить.
Он столько лет остаётся популярным не просто так. Ansible делает инфраструктуру как код максимально прямолинейной, без лишнего нагромождения терминов.
Среди знакомых мне инженеров по эксплуатации его используют почти все, а в вакансиях это уже фактически стандартный навык.
А чем вы обычно автоматизируете развёртывание ИИ-сервисов и запуск экспериментальных окружений — своими скриптами или сразу через Ansible?
https://github.com/ansible/ansible
👉 @BackendPortal
Настоящая находка среди репозиториев.
В нём собраны все основные шаги по защите и усилению безопасности Linux-сервера.
Если у вас есть VPS, стоит сохранить:
→ https://github.com/imthenachoman/How-To-Secure-A-Linux-Server
👉 @BackendPortal
⚡️⚡️Joker 2026 — теперь больше, чем Java-конференция. Что изменилось?
Огромные системы на Java будут жить еще много лет и знание платформы никак не обесценится. Однако сама работа инженера меняется. Код всё чаще можно поручить машине, а вот ответственность за архитектуру и рабочий продукт — нет.
В этом году Joker пройдет в два дня: 14 октября разберем инженерную базу и современные практики, а 15-го обсудим разработку будущего, перераспределение ответственности и изменение профессии в целом. Поговорим про замысел, рабочее окружение и реализацию идей инженера.
Но сегодня важно не просто знать «как написать», а понимать, что именно мы строим.
Поэтому организаторы подготовили подборку докладов, которые вас точно заинтересуют — в ней собраны темы конференции, максимально близкие к устройству самой Java-платформы.
Трек Core Java — про JVM, JIT и AOT, FFM API, Vector API, Valhalla и будущее языка. Среди спикеров и хорошо знакомые Java-сообществу лица, и те, кого вы увидите на нашей сцене впервые.
Собрали доклады по тематике Core Java первого дня на карточках. Подробности и расписание — на сайте.
🔥 А по промокоду BackendPortal можно получить скидку на персональный билет
Купить билет
Реклама. ООО «Джуг Ру Груп». ИНН 7801341446
Вышел pnpm 12!
Лучший менеджер пакетов для JavaScript-проектов.
✓ Безопасен по умолчанию
✓ Полностью переписан с нуля на Rust
✓ В 3 раза быстрее при чистой установке
→ https://pnpm.io/blog/releases/12.0
👉 @BackendPortal
На Stepik вышла программа «DevOps с нуля: от Linux до Kubernetes»
Это комплексная программа из 5 практических курсов по ключевым технологиям DevOps: Linux, Git, Docker, GitLab CI/CD, Kubernetes
Вы последовательно пройдёте путь от работы в Linux и управления кодом через Git до контейнеризации приложений, настройки CI/CD-пайплайнов и развёртывания в Kubernetes.
Что вы изучите:
• работу с Linux и командной строкой
• Git и контроль версий в реальных проектах
• создание Docker-образов и запуск контейнеров
• автоматизацию сборки, тестирования и деплоя в GitLab CI/CD
• развёртывание и управление приложениями в Kubernetes
• сети, хранилища, конфигурации и секреты
• диагностику инфраструктуры и автоматизацию рутинных задач
... и многое другое
PORTAL20 стоимость всей программы составит 10 392 ₽.
Этот репозиторий на GitHub даёт 979 готовых API для скачивания видео, извлечения метаданных, создания расшифровок и анализа контента с YouTube, TikTok, Instagram, Facebook и множества других платформ.
https://github.com/cporter202/video-scraping-apis
👉 @BackendPortal
SSH-туннели, или как стать магом сетевой связности
10 практических челленджей, чтобы прокачать port forwarding через SSH-туннели — от простого локального/удалённого проброса портов до продвинутых сценариев с bastion- и jump-хостами:
- Получить доступ к внутреннему debug-порту через SSH-туннель
https://labs.iximiuz.com/challenges/ssh-local-port-forwarding
- Достучаться до приватного сервиса в VPC через SSH-бастион
https://labs.iximiuz.com/challenges/ssh-local-port-forwarding-bastion
- Получить доступ к удалённому loopback-порту через SSH jump host
https://labs.iximiuz.com/challenges/ssh-local-port-forwarding-jump-host
- Ограничить доступ к SSH-бастиону в зависимости от роли пользователя
https://labs.iximiuz.com/challenges/ssh-local-port-forwarding-bastion-hardened
- Получить доступ к внутренним серверам через SSH-бастион без shell-доступа
https://labs.iximiuz.com/challenges/ssh-jump-host-internal-servers
- Получить доступ ко всей VPC через SSH SOCKS-прокси
https://labs.iximiuz.com/challenges/ssh-socks-proxy
- Пробросить локальный сервис наружу через обратный SSH-туннель
https://labs.iximiuz.com/challenges/ssh-remote-port-forwarding
- Пробросить устройство из домашней сети через обратный SSH-туннель
https://labs.iximiuz.com/challenges/ssh-remote-port-forwarding-home-network
- Пробросить всю домашнюю сеть через обратный SSH SOCKS-прокси
https://labs.iximiuz.com/challenges/ssh-reverse-socks-proxy
- Заменить root-доступ по паролю на админский логин по SSH-ключу
https://labs.iximiuz.com/challenges/ssh-harden-new-server
Бэкенд-разработка не обязана начинаться с 10 инструментов и 50 конфигурационных файлов.
Новый туториал по FastAPI показывает путь от пустой папки до рабочего REST API примерно за 5 минут.
Без Docker.
Без долгой настройки базы данных.
Без часов возни с инфраструктурой до первого эндпоинта.
Внутри разбирают
→ как маршруты связывают URL с функциями
→ как Pydantic автоматически проверяет данные
→ как внедрение зависимостей управляет сессиями базы данных
В итоге получается полноценный API с хранением данных, валидацией, обработкой ошибок и интерактивной документацией.
https://youtube.com/watch?v=uOuTlhXDf1Y
👉 @BackendPortal
Шаблон Full Stack FastAPI теперь отдаёт фронтенд на React и TanStack прямо через FastAPI.
В итоге одно приложение, один деплой и один домен.
Без отдельного фронтенд-сервера, лишней настройки CORS и постоянной отладки проблем между двумя частями приложения.
https://github.com/fastapi/full-stack-fastapi-template
👉 @BackendPortal
Если изучаете Kubernetes, стоит посмотреть на этот репозиторий — внутри 24 практические лабораторные работы 😆
Он охватывает
→ Pods, Deployments, ReplicaSets, StatefulSets и DaemonSets
→ развёртывания, откаты и масштабирование на ходу
→ Secrets, ConfigMaps, PV и PVC
→ привязку к узлам, taints и tolerations, RBAC
→ Services, Ingress и Helm
→ настройку кластера через Kubeadm
В каждой лабораторной есть YAML, команды kubectl и полноценное практическое задание.
Выберите одну. Откройте терминал. Начинайте ломать.
Репозиторий — https://github.com/omerbsezer/Fast-Kubernetes
👉 @BackendPortal
Эти заметки — структурированное руководство по собеседованиям по проектированию систем.
Внутри разбираются как базовые подходы к System Design, так и конкретные архитектуры: веб-краулеры, системы уведомлений, платёжные платформы и другие типичные задачи с собеседований.
https://github.com/liquidslr/system-design-notes
👉 @BackendPortal
Когда впервые сталкиваешься с гонками данных и моделью памяти Go, многое выглядит довольно странно.
Например, почему код ниже вообще может не работать?
Официальное описание модели памяти Go довольно большое и сложное, поэтому автор решил объяснить всё намного проще.
И тема оказалась куда интереснее, чем кажется — через неё хорошо видно, как Go на самом деле работает с памятью и горутинами.
https://func25.dev/posts/go-memory-visibility/
👉 @BackendPortal