Привет! Меня зовут Олег. Последние 15 лет я занимаюсь разработкой: писал код, проектировал системы, разбирался с архитектурой и постепенно пришёл к управлению разработкой и развитию инженерных команд.
При этом программистом я изначально становиться не планировал.
В университете я учился на инженера по компьютерным системам и сетям. Программирование было частью обучения, но довольно быстро оказалось, что разбираться в коде мне интереснее, чем в том, чему была посвящена основная специальность.
Я начал самостоятельно копать глубже: изучал технологии, разбирался, как всё устроено, брал первые задачи на фрилансе. Постепенно программирование из увлечения превратилось в профессию.
Первой официальной работой, где я занимался разработкой, было программирование логических контроллеров. Это довольно далеко от того, чем я занимаюсь сегодня: промышленная автоматизация, железо, совсем другой стек и другой подход к разработке.
Позже я перешёл в веб. И вот там началась большая школа разработки.
За следующие годы я успел поработать с огромным количеством проектов, фреймворков и CMS. Переписал тонны legacy-кода, видел системы самого разного качества и регулярно сталкивался с последствиями решений, которые когда-то казались кому-то вполне разумными.
Наверное, именно этот период сильно сформировал мой инженерный взгляд.
Когда много раз видишь одни и те же проблемы в разных проектах, в какой-то момент перестаёшь воспринимать разработку как задачу «написать правильный код». Становится гораздо интереснее понимать, почему система устроена именно так, как решения будут влиять на неё через несколько лет и где проходит граница между хорошей архитектурой и архитектурой ради архитектуры.
Так я постепенно начал всё глубже уходить в проектирование систем и архитектуру.
В какой-то момент я понял ещё одну вещь: в аутсорсе мне становится тесно. Там можно получить невероятно широкий опыт и за несколько лет увидеть десятки разных систем. Но мне хотелось другого — отвечать за продукт достаточно долго, чтобы увидеть последствия собственных технических решений.
Хотелось не просто прийти в проект, решить очередную задачу и уйти дальше, а глубоко разобраться в предметной области, архитектуре и процессах вокруг продукта.
Поэтому я перешёл в продуктовую разработку.
Одним из следующих больших этапов для меня стал VK. Там я работал над VK Mini Apps — платформой, которая позволяет запускать сервисы прямо внутри экосистемы VK.
Работа над платформой сильно отличается от разработки одного приложения. Ты создаёшь не только функциональность для конечного пользователя, но и инструменты и возможности, на которых свои продукты будут строить другие разработчики. Ошибка в архитектурном решении или API начинает влиять уже не на одну команду.
Сейчас я работаю в Т-Банке и развиваю команду чат-интерфейсов платформы клиентского сервиса.
За это время мой фокус снова заметно изменился. Если раньше мне было особенно интересно самому разобраться в сложной технической задаче, то сегодня всё чаще задача состоит в другом: построить систему, процессы и команду так, чтобы сложные задачи стабильно решались не одним сильным инженером, а всей командой.
При этом техническая часть никуда не исчезла. Мне по-прежнему интересны архитектура, базы данных, распределённые системы, производительность и то, как инженерные решения ведут себя не на схеме, а в настоящем продакшене.
Отсюда выросло ещё одно важное для меня направление — преподавание.
Я преподаю разработчикам, читаю курсы и интенсивы, разбираю System Design, PostgreSQL и архитектуру. Мне нравится не столько пересказывать теорию, сколько показывать связь между отдельными концепциями: почему система начинает вести себя определённым образом, откуда появляются проблемы и какие компромиссы стоят за инженерными решениями.
По той же причине я выступаю на конференциях, веду Telegram-канал и YouTube. Это хороший способ систематизировать собственный опыт: если не можешь понятно объяснить какую-то идею другому инженеру, велика вероятность, что сам понимаешь её не настолько хорошо, как тебе кажется.
За годы работы мой взгляд на профессию сильно изменился. Я начинал с желания просто научиться хорошо писать код. Потом хотелось научиться проектировать хорошие системы. Затем стало интересно, как строить команды, которые способны эти системы создавать и развивать.
Сейчас мне интереснее всего именно пересечение этих областей: код, архитектура, инженерные практики, люди и продукт.
А кроме работы есть семья, книги, настольные игры и всё те же конференции — правда, последние уже сложно однозначно отнести к отдыху.