/блог
Подробные разборы: зачем это нужно, как устроено внутри, где было сложно и что я с этим сделал.
← На главнуюУ 4G-роутера на столе есть SIM-карта и приложение, умеющее слать SMS, но нет документированного API. Разбор: криптованный вход в luci, найденный в прошивке контроллер, который отвечает 404 веб-сессии, и почему в итоге путей отправки три.
WhatsApp шифрует переписку, но остаётся посредником, который видит, кто кому и когда пишет. Разбираю, как выглядит архитектура, где сервер держит только непрозрачные конверты: PQXDH вместо X3DH, почтовые ящики вместо аккаунтов и защита от спама без телефонных номеров.
Чат и голос ломаются по-разному, поэтому в Concord они разведены на управляющий и медийный планы. Плюс детали, на которых спотыкаешься: снежинки, которые не влезают в JSON-число, UDP, который не пройдёт через Traefik, и логин без редиректа.
Два входа в одну систему — MTProto для настоящих клиентов Telegram и REST для встроенного чата. Разбираю, где здесь сложность: порядок сообщений, разделение хранилищ и честный учёт того, что реально реализовано.
Час записи — в документ за пять минут. Прямая загрузка в S3 мимо бэкенда, одна видеокарта под замком на несколько воркеров, поминутный биллинг с резервом и два бренда на одном коде.
Один скомпрометированный контейнер, систематический аудит всего остального парка и шесть архитектурных изменений: OpenBao, изоляция БД, сетевая изоляция, rootless-контейнеры, сканирование уязвимостей и обновление всех образов — включая тот самый уязвимый Next.js.
8+ self-hosted MCP-серверов, два форкнутых CLI-инструмента для ИИ-кодинга с одним захардкоженным эндпоинтом и свой LLM-шлюз под ними — что пришлось перенастроить, чтобы всё это заработало на инфраструктуре без единого вендорского облака.
Зачем тратить вычисления на инференсе в виде токенов? Я собрал latentGPT — рекуррентный reasoner с нуля — чтобы понять, когда итерации в латентном пространстве выигрывают у chain-of-thought и как не дать им коллапсировать.