Привет, меня зовут Андрей Ковалев. Я разработчик программного обеспечения из Беларуси. 9 лет профессионально занимаюсь программированием. Последние 7 лет преимущественно работаю на иностранных заказчиков. Основной платформой разработки до недавнего времени был .Net, но за всю свою карьеру я писал и на Java, и на Python, и на Ruby, и на PHP, и даже на Adobe Flex с ColdFusion.

Последние 2 года активно использую Python в качестве “рабочей лошадки”. Причину смены основой платформы можно охарактеризовать как “устал от Энтерпрайза и тяжелых инструментов разработки”. Хочу простоты и легкости. Питон для этого отлично подходит. Например, Django после ASP .Net выглядит как невероятно элегантный инструмент разработки, который позволяет просто делать сложные вещи. Его можно сравнить с ASP .Net MVC, но Django просто покоряет простотой использования сторонних приложений.

И хотя, после 7 лет “Энтерпрайза”, у меня есть четкое понимание зачем нужны процессы в разработке ПО, я устал от бюрократии, долгих процедур утверждения изменений (и как противовес прямых писем “we need it ASAP” в обход правил).

Но это не значит, что я за эдакий “cowboy-style development”, отнюдь. Я не представляю свою работу без Системы Управления Версиями (VCS, такие как SVN/Git/Mercurial), без системы управления проектами/задачами (Redmine/Jira), Continuous Integration сервера (TeamCity), частых комитов (не реже чем раз в 2 дня) и многих других доказавших свою ценность практик.

Что считаю своим достижением (по деталям проектов см. резюме):

  • GTRACS – миграция древнего приложения с VB6 на .Net с целью добавления нового функционала. Достижение в том, что вместо, любимого всеми программистами, переписывания приложения с нуля, было решено не выкидывать код исходного приложение, а мигрировать на VB .Net, а уже потом добавлять новый функционал. И это было верное решение. Потому что иначе у нас бы точно ничего не получилось. Потому как, оказалось, что никто не знает как это приложение должно работать (какая документация, какое описание бизнес логики, вы о чем?).

  • BotScanner – вэб приложение, отображающее статистику по посещению сайта пользователями. Огромная база данных (на девелоперском сервере база занимала 170Гб, на продакшен сервере база была в разы больше). Несмотря на большое количество агрегатных запросов (статистика по неделям, из конкретного источника, сгруппированного так-то и так-то), удалось добиться шустрой работы. Очень приятный опыт, а главное все у нас получилось.

  • TMS – совсем недавно пришлось срочно спасать проект и быстро разобрался с новой для меня технологией. Когда единственный человек, который знал структуру проекта и код “внезапно” уволился. Оказалось, что я не только это могу, но мне это даже нравится.

Что я понял за свои 9 лет карьеры:

  • Можно разрабатывать любые проекты на абсолютно любых технологиях. Причем разобраться в чем-то новом для тебя не составляет большого труда, лишь бы концепция этого нового для тебя была бы знакома. Например концепция клиент-сервера остается всегда, не важно что на сервере Ruby, Java или как в моем случае ColdFusion

  • Мои возможности ограничены. Поэтому я предпочитаю простые решения сложным, работающие решения красивым, расширяемым, быстрым. Предпочитаю записывать причины изменений (лучше всего это делать в Redmine/Jira по ссылке в комите в VCS).

  • Всегда есть что-то новое, что тебя может удивить. Поэтому “Учиться, учиться, учиться” и держать руку на пульсе.

  • По мере “вспоминания” буду продолжать этот список.