[{"data":1,"prerenderedAt":196},["ShallowReactive",2],{"notes-nav-count-ru":3,"home-ru":4,"cases-\u002Fcases\u002Fsd-assist-ru":93},1,{"id":5,"title":6,"body":7,"description":83,"extension":84,"meta":85,"navigation":86,"path":87,"quote":88,"quoteLead":88,"quoteLeadPrefix":89,"seo":90,"showHeroIdeas":86,"stem":91,"__hash__":92},"home_ru\u002Findex.md","devur",{"type":8,"value":9,"toc":76},"minimark",[10,15,19,24,28,33,40,46,52,56,59,62,65,69,72],[11,12],"landing-motivation",{"lead":13,"title":14},"Пять лет назад я пришёл в IT с навязчивым желанием создавать решения,\nкоторые действительно работают и что-то меняют.\n\nИз кода складываются решения, которые делают жизнь легче. Магия.","Код ради реального дела.",[16,17,18],"p",{},"Кратко о подходе и стеке — ниже.",[20,21],"landing-timeline",{":items":22,"title":23},"[{\"year\":2015,\"slogan\":\"Кажется...\",\"text\":\"Компьютер умеет не только в энтертейнмент. Знакомство с HTML, CSS и PHP посредством неловких ковыряний CMS.\"},{\"year\":2016,\"slogan\":\"Первая кровь\",\"text\":\"Вёрстка, контент-менеджмент и даже поделки в графике.\"},{\"year\":\"2017–2019\",\"slogan\":\"Мы ведь рождены для чего-то?\",\"text\":\"Поиски себя и осознание бренности бытия.\"},{\"year\":2019,\"slogan\":\"Делать нужно то, что получается.\",\"text\":\"Жестокий try-hard, к концу года образ мышления достигает порога для инжиниринга.\"},{\"year\":2020,\"slogan\":\"Работа на проектах\",\"text\":\"Первый \\\"продуктовый\\\" опыт. Много сервисов, интеграций и учёбы на ошибках.\"},{\"year\":2021,\"slogan\":\"Фуллтайм в штате\",\"text\":\"На размышления уходит больше времени, чем на код. Больше сервисов, больше интеграций, больше ошибок.\"},{\"year\":2022,\"slogan\":\"Single Responsibility\",\"text\":\"Закрываю backend для продуктов целиком. Много работы над инфраструктурой и архитектурой.\"},{\"year\":2024,\"slogan\":\"Солидный змей\",\"text\":\"Мышление окончательно оформляется в problem-solving. Стек вокруг Laravel понятен.\"},{\"year\":2025,\"slogan\":\"БУНТ!\",\"text\":\"Пора трогать новые технологии. Изучаю NestJS и TypeScript. Есть ощутимая нужда в работе над фронтендом.\"},{\"year\":2026,\"slogan\":\"Швейцарский нож\",\"text\":\"Новые проекты на новом стеке. R&D-проекты в свободное время. Теперь я в определённой степени... да, он самый.\"}]","а вот мой путь",[25,26],"landing-tech-grid",{":items":27},"[{\"name\":\"PHP\",\"icon\":\"simple-icons:php\",\"since\":2020},{\"name\":\"TypeScript\",\"icon\":\"simple-icons:typescript\",\"since\":2025},{\"name\":\"SQL\",\"icon\":\"simple-icons:mysql\",\"since\":2020},{\"name\":\"Laravel\",\"icon\":\"simple-icons:laravel\",\"since\":2020},{\"name\":\"NestJS\",\"icon\":\"simple-icons:nestjs\",\"since\":2025},{\"name\":\"Nuxt\",\"icon\":\"simple-icons:nuxtdotjs\",\"since\":2025},{\"name\":\"PostgreSQL\",\"icon\":\"simple-icons:postgresql\",\"since\":2023},{\"name\":\"MariaDB\",\"icon\":\"simple-icons:mariadb\",\"since\":2020},{\"name\":\"Linux\",\"icon\":\"simple-icons:linux\",\"since\":2019},{\"name\":\"Nginx\",\"icon\":\"simple-icons:nginx\",\"since\":2020},{\"name\":\"Caddy\",\"icon\":\"simple-icons:caddy\",\"since\":2024},{\"name\":\"Git\",\"icon\":\"simple-icons:git\",\"since\":2018},{\"name\":\"tRPC\",\"icon\":\"simple-icons:trpc\",\"since\":2025},{\"name\":\"REST API\",\"icon\":\"mdi:api\",\"since\":2020}]",[29,30,32],"h2",{"id":31},"подход","Подход",[16,34,35,39],{},[36,37,38],"strong",{},"Инженерная чистота."," Это способ не запутаться в собственном коде через полгода. Если систему можно упростить без ущерба для логики — я её упрощаю.",[16,41,42,45],{},[36,43,44],{},"Прямолинейность."," Мне комфортно в небольших командах, где люди сфокусированы на том, чтобы продукт просто работал. Я ценю время и не люблю имитацию бурной деятельности.",[16,47,48,51],{},[36,49,50],{},"Предсказуемость."," Моя задача — построить понятный и масштабируемый бэкенд, который не потребует моего участия 24\u002F7 после запуска.",[29,53,55],{"id":54},"обо-мне","Обо мне",[16,57,58],{},"Я ночной житель. Это не попытка выделиться, а естественный ритм: когда мир затихает, мне проще войти в состояние потока и сфокусироваться на сложной логике.",[16,60,61],{},"Свободное время я часто трачу на свои R&D-проекты. Это моя личная песочница, где я могу позволить себе ошибаться, пробовать «сомнительные» идеи и изучать новые технологии просто потому, что мне это любопытно.",[16,63,64],{},"А когда нужно переключить мозг — ухожу в миры китайского фэнтези. Потому что они системные и логичные. Потому что в голове читателя выстраивается мир, который работает.",[29,66,68],{"id":67},"давайте-пообщаемся","Давайте пообщаемся",[16,70,71],{},"Если вам близок такой подход и нужен человек, который понимает, как строить системы — пишите, обсудим задачи.",[73,74],"landing-contact-strip",{":links":75},"[{\"label\":\"Telegram\",\"href\":\"https:\u002F\u002Ft.me\u002Fgiogio1604\",\"icon\":\"simple-icons:telegram\"}]",{"title":77,"searchDepth":78,"depth":78,"links":79},"",2,[80,81,82],{"id":31,"depth":78,"text":32},{"id":54,"depth":78,"text":55},{"id":67,"depth":78,"text":68},"Backend-разработка, инженерная чистота и продукты, которые работают.","md",{},true,"\u002F",null,"Я буду здесь, если вы пожелаете создать ",{"title":6,"description":83},"index","VjPFAUzfgv-k_Q96c8E_iIL1MzmDs35e0xECsFCRA68",{"id":94,"title":95,"body":96,"cover":88,"date":173,"description":174,"extension":84,"gallery":175,"meta":182,"navigation":86,"path":183,"quote":88,"roles":184,"seo":188,"status":189,"stem":190,"technologies":191,"__hash__":195},"cases_ru\u002Fcases\u002Fsd-assist.md","SD-Assist",{"type":8,"value":97,"toc":169},[98,102,112,116,126,132,142,148,154,160],[29,99,101],{"id":100},"продукт","Продукт.",[16,103,104,111],{},[105,106,110],"a",{"href":107,"rel":108},"https:\u002F\u002Fsd-assist.ru",[109],"nofollow","sd-assist.ru"," — площадка для онлайн-торгов автомобилями. Основная работа велась над серверной частью и реализацией правил аукциона.",[29,113,115],{"id":114},"технические-детали","Технические детали.",[16,117,118,121,122,125],{},[36,119,120],{},"Рантайм."," Использован ",[36,123,124],{},"Laravel Octane (Swoole)",". Приложение изначально проектировалось под работу в воркерах без утечек памяти, что дало преимущество в скорости обработки запросов по сравнению с FPM.",[16,127,128,131],{},[36,129,130],{},"Ставки и время."," Реализовано хранение времени ставок с высокой точностью. Применены воркараунды по транзакциям для обеспечения атомарности при конкурентных ставках.",[16,133,134,137,138,141],{},[36,135,136],{},"Механика торгов."," Логика динамического продления аукциона при ставках незадолго до окончания. Real-time события (обновление цен, таймеров) реализованы через ",[36,139,140],{},"Soketi.js",".",[16,143,144,147],{},[36,145,146],{},"Бизнес-логика."," Процессы описаны через стейт-машину с ветвистыми экшенами и специфичной валидацией. Доступ пользователя к действиям динамически меняется в зависимости от состояния лота.",[16,149,150,153],{},[36,151,152],{},"Поддержка и развитие."," Проект сопровождался более 2 лет. За это время архитектура адаптировалась под новые требования бизнеса и изменения в структуре данных.",[16,155,156,159],{},[36,157,158],{},"Фоновые процессы."," Большое количество слабосвязанных задач для обработки очередей. Интеграции с внешними данными сфокусированы на их встраивании в сложную структуру бизнеса.",[16,161,162,165,166,141],{},[36,163,164],{},"Администрирование."," Операционные сценарии и управление реестрами лотов реализованы в панели на ",[36,167,168],{},"FilamentPHP",{"title":77,"searchDepth":78,"depth":78,"links":170},[171,172],{"id":100,"depth":78,"text":101},{"id":114,"depth":78,"text":115},"2025-11-15","Бэкенд на Laravel Octane (Swoole), real-time торги через Soketi.js\nи бизнес-логика жизненного цикла лотов.",[176,179],{"src":177,"alt":178},"\u002Fmedia\u002Fcases\u002Fsd-assist\u002Fsd-assist-logo.jpg","SD-Assist logo",{"src":180,"alt":181},"\u002Fmedia\u002Fcases\u002Fsd-assist\u002Fpreview.png","Preview",{},"\u002Fcases\u002Fsd-assist",[185,186,187],"API","бэкофис (admin panel)","поддержка (2 года+)",{"title":95,"description":174},"завершено","cases\u002Fsd-assist",[192,193,140,194,168],"Swoole","Laravel Octane","MariaDB","BRo-MQAlHD7IFb71RUPSwwIzlAPCJxTPoz6IaLmhsms",1775151413817]