[{"data":1,"prerenderedAt":160},["ShallowReactive",2],{"about-ru":3,"skills":106},{"id":4,"title":5,"body":6,"description":98,"extension":99,"meta":100,"navigation":101,"path":102,"seo":103,"stem":104,"__hash__":105},"about\u002Fru\u002Fabout.md","Обо мне",{"type":7,"value":8,"toc":90},"minimark",[9,14,18,21,25,28,36,39,67,71,74,77,80,84,87],[10,11,13],"h2",{"id":12},"как-я-думаю-об-инженерии","Как я думаю об инженерии",[15,16,17],"p",{},"Я не строю «фичи» — я строю системы. Разница важна. Фича живёт до следующего спринта. Система живёт годами и продолжает работать, когда автора уже нет в компании.",[15,19,20],{},"Это означает: прежде чем писать код, я задаю неудобные вопросы. Почему именно так? Что произойдёт при нагрузке × 10? Кто будет это поддерживать через три года? Правильный дизайн на раннем этапе стоит дешевле, чем рефакторинг в продакшне.",[10,22,24],{"id":23},"что-я-делаю","Что я делаю",[15,26,27],{},"Более пяти лет разрабатываю бэкенд-системы на PHP и Laravel — от API для мобильных приложений до высоконагруженных веб-сервисов.",[15,29,30,31,35],{},"Сейчас в ",[32,33,34],"strong",{},"one.pix"," занимаюсь бэкендом и архитектурой API. В работе — сложная бизнес-логика, очереди, интеграции (включая Netsuite), Docker-окружения, CI\u002FCD и администрирование Linux-серверов.",[15,37,38],{},"Специализируюсь на:",[40,41,42,49,55,61],"ul",{},[43,44,45,48],"li",{},[32,46,47],{},"Архитектуре бэкенда"," — проектирование REST API, сложная бизнес-логика, интеграции",[43,50,51,54],{},[32,52,53],{},"Производительности"," — оптимизация запросов, кэширование, очереди, рефакторинг legacy",[43,56,57,60],{},[32,58,59],{},"Инфраструктуре"," — Docker, CI\u002FCD, Nginx, AWS, Linux",[43,62,63,66],{},[32,64,65],{},"Фронтенде"," — периодически закрываю задачи на Vue.js",[10,68,70],{"id":69},"как-я-подхожу-к-задачам","Как я подхожу к задачам",[15,72,73],{},"Сначала понимаю, потом пишу. Большинство технических проблем — это на самом деле проблемы с пониманием домена или требований. Я трачу время на то, чтобы разобраться в сути, а не прыгать к решению.",[15,75,76],{},"Я предпочитаю скучный, предсказуемый код интересному. Clever code — это технический долг с отложенным платежом. Простое решение, которое легко читать, дебажить и расширять — лучший выбор почти всегда.",[15,78,79],{},"Тесты — это не опция. Код без тестов — это код, в котором нельзя быть уверенным. Я пишу тесты не для галочки, а чтобы иметь уверенность при изменениях.",[10,81,83],{"id":82},"что-меня-мотивирует","Что меня мотивирует",[15,85,86],{},"Сложные задачи с высоким давлением на correctness. Системы, где ошибка стоит дорого — платёжные процессинги, логистика, финансовые расчёты. Там нет места для «должно работать» — только для «работает».",[15,88,89],{},"Мне нравится работать в командах, где код-ревью — это обмен знаниями, а не формальность. Где junior задаёт вопрос «почему?» и получает нормальный ответ, а не «так принято».",{"title":91,"searchDepth":92,"depth":92,"links":93},"",2,[94,95,96,97],{"id":12,"depth":92,"text":13},{"id":23,"depth":92,"text":24},{"id":69,"depth":92,"text":70},{"id":82,"depth":92,"text":83},"Инженерный подход, опыт и то, что меня мотивирует.","md",{},true,"\u002Fru\u002Fabout",{"title":5,"description":98},"ru\u002Fabout","NM46PQrHrkesKDYXC00KEcNnHoZzHFgett4oklldhoA",{"id":107,"extension":108,"groups":109,"meta":157,"stem":158,"__hash__":159},"skills\u002Fconfig\u002Fskills.json","json",[110,120,126,136,148,152],{"key":111,"items":112},"backend",[113,114,115,116,117,118,119],"PHP","Laravel","REST API","Redis","Queues","WebSockets","Swagger",{"key":121,"items":122},"databases",[123,124,125,116],"MySQL","PostgreSQL","MongoDB",{"key":127,"items":128},"infrastructure",[129,130,131,132,133,134,135],"Docker","Docker Compose","Linux","Nginx","Apache","CI\u002FCD","AWS",{"key":137,"items":138},"frontend",[139,140,141,142,143,144,145,146,147],"Vue.js","JavaScript","jQuery","Ajax","HTML5","CSS3","SCSS","Bootstrap","Tailwind CSS",{"key":149,"items":150},"testing",[151],"Cypress",{"key":153,"items":154},"tools",[155,156],"Git","PhpStorm",{},"config\u002Fskills","1mR0arhGYKHqqn_qRmaT8gabXIxt2y3eQcyi3tF1ano",1783366806052]