В сфере IT с 2007 года.
За все время работы в этой индустрии довелось побывать на многих, и очень разных ролях (что описано в моем "опыте работы"). Сейчас позиционирую себя как Backend разработчик, без привязки к какому-либо конкретному языку или технологии.
В свободное от работы время стараюсь принимать участие в различного рода митапах и конференциях.
Руководитель разработки внутреннего HR-tech проекта
Сервис подбора персонала.
Роль в проекте: Backend developer.
По мимо стандартных рутинных задач (фичи, баги, рефакторинг) был спроектирован сервис взаимодействия с инфраструктурой партнеров компании (Integration API). В его основу легли: DDD, CQRS и гексагональная архитектура, а так же конвеерная архитектура (для организации процесса обработки полученых данных).
Сервис подбора персонала.
Роль в проекте: Backend developer.
Занимался разработкой Backend сервисов.
По мимо стандартных рутинных задач (фичи, баги, рефакторинг) был задуман, спроектирован и реализован распределенный файловый сервис, который получил название Kraken (https://github.com/russell-kvashnin/kraken). В основу сервиса легли такие идеи как: работа с файлами посредством Memory mapping (linux kernel mmap syscall) и зеркалированием файлов вместо их бэкапирования.
После суровой корпоративной разработки захотелось больше свободны, и я отправился в "свободное плавание" (Freelance).
После Java не составило особого труда переквалифицироваться на PHP разработку. Тем более что к этому времени в мире PHP появились такие фреймворки как Symfony2 и Doctrine (идеологические последователи Spring и Hibernate в PHP мире), которые я и использую по сей день, и считаю лучшим тулсетом backend разработки на PHP.
Так же интересовался frontend разработкой. Изучил JavaScript(CofeeScript/TypeScript) и сопутствующие инструменты для разработки SPA: Backbone, AngularJS. В некоторых проектах принимал участие на позиции fullstack разработчика.
Учавствовал в разработке таких стартапов как:
OctoBird: https://octobird.com/en/
Рекламная баннерная сеть.
Роль в проекте: PHP Backend developer.
За время участия в проекте был разработан механизм агрегации данных из различных источников (RDB, NoSQL DB) и сохранения его в хранилище. Весь процесс агрегации настраиваем с помощью yaml (источники данных, сам процесс и формулы агрегирования, хранилище). В процессе реализации данной задачи получилось довольно плотно поработать с Symfony Config Component и кодогенерацией.
AwardBird: https://awardbird.com/
Сервис подбора авиабилетов за бонусные мили. Ориентирован на западную аудиторию.
Роль в проекте: PHP Backend developer. Разработка механизма поиска оптимального маршрута (прямого либо составного) основываясь на вводе пользователем кол-ва бонусов (по различным программам авиакомпаний или банков).
В разработке использовались Symfony2+Doctrine, в качестве СУБД - PostgreSQL.
Участие в этом проекте помогло очень хорошо познакомится с PostgreSQL, составлением и оптимизацией сложных запросов (табличные выражения, рекурсивные запросы, json/jsonb)
TurboParser: https://turboparser.ru/
Сервис парсинга сайтов для совместных покупок.
Роль в проекте: PHP Backend developer, backend architect. Разработка серверной архитектуры приложения, рефакторинг legacy кода, портирование его на новую платформу.
В основу приложения легла конвеерная архитектура и ее реализация с помощью: Gearman, Symfony components, Doctrine2, MongoDB, Redis.
Первое знакомство с enterprise разработкой.
Изучение ООП и шаблонов проектирования, аспектно-ориентированного программирования, технологий MVC и ORM совместно с языком Java и СУБД Oracle.
Разработка интранет приложений при помощи таких инструментов как: Spring Framework, Hibernate.
Первое знакомство с документо-ориентированной БД, и всей экосистемой IBM Lotus Notes/Domino. Разработка и сопровождение систем документооборота на этой платформе.
Совместно с разработкой - знакомство с устройством и администрированем *nix операционных систем (FreeBSD, RHEL).
В последствии создание и поддержка отказоустойчивого шлюза на FreeBSD (CARP, Packet filter), Lotus/Domino сервера на RHEL.