Программист с более чем 25 летним стажем работы.
Начиналось все как увлечение компьютерами.
В школе программировал на Basic для Zx-Spectrum и БК0001. Было очень интересно как это получается что ты пишешь программу а машина ее выполняет. Универ в основном был связан с цифровой техникой, процессорами - много С, Ассемблер, Паскаль (и Delphi) что бы быстро что то проверить и показать.
После универа были личные проект связанные с микропроцессорными системами, сейчас это называется фриланс, тогда это было просто на заказ.
В одной из фирм, где я работал я решил автоматизировать рутинную работу связанную с документооборотом. Выбрал Java - оказалось все удобно, правда пришлось все изучать самому, но за 1 год смог в одиночку сделать систему - весь отдел ей пользовался и все работало.
После этого ушел в “аутсорсинговую” компанию делать большие enterprise-системы федерального уровня. Работал уже в команде. Системы в основном интеграционные, обмен данными, хранение и обработка. Прошел путь от рядового разработчика до руководителя команды (team lead). Работал в основном с гос. заказчиками, это сложно нервно, но и задачи были интересные. Руководил разными командами от 5 до 15 человек.
После этого ушел в архитекторы - 5 последних лет проектирую высоконагруженные сложные системы.
Но мне все равно больше всего нравится именно программирование, а не менеджерские задачи.
Имею большой опыт построения и вывода в прод высоконагруженных систем. Есть опыт проектирования систем BigData.
Придерживаюсь прагматичного подхода к дизайну кода, считаю что система должна быть:
- как можно проще со стороны кода,
- максимально документирована,
- максимальное покрытие unit и интеграционными тестами,
- минимальное использование сторонних библиотеки зависимостей,
- минимальный over-design.
следование этим принципам позволяет создавать ПО с легкой поддержкой и сопровождением, тем самым обеспечивать высокое качество кода. Так же обеспечивается легкое встраивание новых людей в проект, без затрат на обучение каким-либо узкоспециализированым фичам.