Skip to content
View centaur-vova's full-sized avatar
🏠
Working from home
🏠
Working from home

Block or report centaur-vova

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
centaur-vova/README.md

Senior Backend Engineer · Go/PHP

Note: текст ниже написан человеком. 25+ лет использую Linux (FreeBSD -> Mandrake -> Ubuntu), терминал — мой бро. Символы «»…₽— настроены для удобного ввода с клавиатуры, и я постоянно их использую при написании человекочитаемых текстов. Я не ИИ, LOL.

О себе и отношении к ИИ

Генеративный ИИ для меня — это всего-лишь Google + Stack Overflow + Smart autocomplete в одном флаконе. По факту это обычный справочник с быстрой индексацией. Помню как в юношестве читал книгу «Экспертные системы в медицине». По сути эта книга (как и многие другие) являлась предвестником ИИ эпохи. Могу с уверенностью сказать, что с конца 80-х не изменилось ровным счётом ни-че-го, кроме скорости обработки и объёма информации.

Машинные коды, алгоритмы и базовые структуры данных появились задолго до моего рождения, и используются по сей день. ИИ — просто развитие того, что уже было. Пока не появился AGI (а я считаю его скорое появление маловероятным), человек будет рулить. Воспринимаю ИИ как банальный справочник, и пользуясь случаем передаю привет всем любителям использовать генеративный ИИ в качестве замещения своей собственной дегенеративной головы.

ИИ в работе: а вот здесь ИИ это просто отвал башки. Он очень сильно экономит время на написание кода. Если раньше мне приходилось гуглить и копипастить куски кода с SOF, то теперь ИИ это делает за меня. Мне уже не приходится держать несколько вкладок с доками в браузере. Ещё один немаловажный момент — с появлением ИИ границы между языками системно-высокого уровня стираются. Таким образом, имея большой практический опыт работы с разными стеками и технологиями, переход между разными ними происходит естественно, так как меняется лишь форма, а не суть. Исключением для меня являются Rust и Asm, где понимание написанного кода без изучения специфики конкретного языка (формы) не представляется возможным (опять привет ИИ-торчкам, которые пишут «свою ОС с нуля» на Rust/Asm).

ИИ и когнитивные искажения: а вот тут ситуация с наблюдаемыми эффектами радикально отличается от использования ИИ в разработке. ИИ — это инструмент, я не устану это повторять. Грустно наблюдать, как люди становятся рабами инструмента — «ИИ-торчками». Сравнение с наркоманами IRL я нахожу абсолютно оправданным — отличается только степень воздействия на физическую сферу.


Теперь о хорошем: синергия с ИИ

Как упоминал ранее, ИИ в разработке даёт колоссальный буст. Да, даже будучи сеньором-помидором, я часто путал, да даже взять порядок аргументов в вызове функции in_array в PHP, так как я фокусировался на цели, а не на ямах на дороге. Появление ИИ закрыло этот последний пробел. Абсолютно любые так называемые «новые» для меня технологии представляют собой лишь видоизменённый вариант того, что я уже многократно решал — меняются только названия и синтаксис.

Мой AI-Assisted проект FX

FX — это оркестратор задач на Go + PHP Swoole + NATS JetStream + Redis.

В связи с тем, что типовые проекты перестали представлять хоть какую-то объективную сложность, я решил поиграть с технологиями на их стыке. На последнем месте работы использовались семафоры. В итоге родился проект, наглядно демонстрирующий суть работы с ко/горутинами в асинхронной среде, с решением типовых для highload проблем в виде race condition, синхронизации, durability и многих других.

Пользуясь случаем скажу о своём первом знакомстве с race condition — это случилось примерно 15 лет назад. Я никак не мог понять, почему значения в PHP сессии перезаписываются. Причина оказалась банальной, но в то время для меня это было совсем неочевидно — сессия открывалась в начале PHP скрипта, а закрывалась в конце выполнения. А так как время выполнения HTTP запроса легко могло составлять секунду и более, то несколько одновременных параллельных Ajax запросов читали и писали в/из сессии как бог на душу положит. Забавно, когда вопрос «что такое race condition» мне задаётся на собеседованиях.

Особенности проекта:

  • Асинхронные воркеры с глобальными (swoole -> go balancer -> cb -> api) и локальными (swoole atomics) семафорами
  • NATS JetStream как персистентная очередь и pub/sub для передачи WS клиентам
  • Go WebSocket-прокси с бинарным протоколом (9 байт на сообщение)
  • Кастомный балансировщик с проверкой здоровья инстансов
  • Распределённые семафоры через Redis + Lua (255 слотов, TTL)
  • OpenTelemetry + Jaeger для распределённого трейсинга

Проект получился интересным — я люблю создавать наглядные демонстрации скрытых процессов. С гордостью отмечу, что в проекте гармонично сочетаются Go подходы в использовании асинхронного взаимодействия в Swoole, например, RuntimeContext.php, трейт Snafubarable.php и многое другое.

Живое демо: fx.trixter.xyz

GitHub: github.com/centaur-vova/fx

Стек: PHP 8.4 (Swoole 6), Go 1.26, NATS, Redis, Docker.


Технический опыт

Область Технологии
Backend PHP 5.x → 8.x, Go, Python
Брокеры NATS, Kafka, RabbitMQ
Базы данных MySQL, PostgreSQL, ClickHouse, Redis
Архитектура Clean Architecture, DDD, Event-Driven
Наблюдаемость OpenTelemetry, Jaeger, кастомные метрики
DevOps Docker, Compose, Systemd, CI/CD

Контакты

Имя Дмитрий Шманатов
Email iam@trixter.xyz
Telegram https://t.me/l3373
Локация Россия, сельская глубинка

Pinned Loading

  1. fx fx Public

    High-load distributed task orchestrator: PHP 8.4 (Swoole 6.2) + Go 1.26 + NATS JetStream + Redis Lua semaphores. Custom 9-byte binary WebSocket, strict memory isolation against leaks, Observability…

    PHP 9 1

  2. excelentor excelentor Public

    Excelentor — PHP library for parsing Excel/CSV into typed objects using PHP 8 attributes and Laravel validation.

    PHP 3

  3. ird-meter ird-meter Public

    If/Row Density (IRD) calculator for PHP projects. Counts if statements per 100 lines of code.

    PHP