Как вы себя чувствуете в самоизоляции, как адаптируетесь, как работаете, какими привычками обзаводитесь — об этом наш новый опрос. Пройдите его (займёт 10 минут) и в конце узнайте, как дела у других.
Обо мне

Я опытный разработчик и руководитель группы / руководитель проекта, 12 лет работаю в IT и в частности в разработке корпоративных приложений. В моей практике было много проектов с трехуровневой архитектурой, написанных на Java / C # / Python / Ruby на бэкэнд и ReactJS / Angular (и другие клиентские фреймворки, например: Kendo UI, Ext.Js, BackboneJS и т. Д.) на фронэнд. Фронт взаимодействует с сервером с помощью AJAX / Promise.

Основным паттерном, в большинстве случаев, является MVC, который взаимодействует с БД с использованием таких технологий, как: Django, EntityFramework, Hibernate / SpringData (включая методы async / multithread), которые предоставляют клиентской стороне необходимые данные из БД. У меня есть опыт в создании RESTfull API-сервисов и микросервисов, а также опыт работы и развитие SOAP-сервисов.

Так же имею большой опыт в проектирование БД и оптимизации запросов и оптимизации структуры БД.

Работали с такими БД как: MsSql, PostgreSQL, MySql, Oracle из реляционных баз данных и MongoDb, CouchDb, MariaDb, RedisDb из NoSql.

Кроме того, я использовал интеграцию с другими системами, при помощи таких инструментов как: WebSphere, OSB, RabbitMQ.

В своей работе применяю и знаю: OOP, SOLID pricinples, Design Patterns, GRASP pricinples, YAGN, KISS, DRY, PoEAA, Async Patterns, Integration Patterns.

Что касается управленческого опыта, у меня было много команд с участием от 5 до 7 разработчиков, которые были распространены по всей стране (Москва, Екатеринбург, Новосибирск, Сургут).

Я знаю и использую Agile (Scrum / Kanban) для проектов, которые я веду. Для управления задачами я предпочитаю Jira и Confluence. Я предпочитаю выступать в роли играющего тренера, когда я веду проекты, потому что мой опыт всегда помогает команде достичь цели быстрее и лучше.

Когда я работаю, я всегда стараюсь изо всех сил для команды и для проекта и компании. Что касается роли менеджера, моя главная цель - создать качественный процесс разработки, который поможет компании достичь всех намеченных целей

Знание языков и препроцессоров: - C#, C# 6, 7, Java 8, J2EE, Spring, JDBC - VB.NET, VBA - Python, Django - C++ - JS/ES6 - HTML/CSS, HTML5/CSS3 - Oracle PL/SQL, T-SQL, PostgreSQL - Sass/Less - TypeScript - Jade

Работаю со средами разработки и редакторами кода: - MS Visual Studio - MS SQL Server Management Studio - Oracle Developer - pgAdmin - PyCharm - WebStorm - VS Code - Sublime - Atom БД - MS SQL Server - MS Access - Oracle - Postgress - MongoDB

Знание JS фреймворков и библитек - jQuery - Underescore, Lodash - ReactJS (+Flux) - Redux - ImmutableJS - AngularJS (1, 1.5, 2, включая AngularJS-UI-*) - ExpressJS - KoaJS - Kendo UI - Ext.JS - BackboneJS - KnockoutJS - MeteorJS - PhantomJS

Знание css фреймворков - Bootstrap - Font-Awesome - Foundation - Toaster-Grid Знание клиентских пакетных менеджеров: - Npm - Bower

Знание клиентских сборщиков: - Gulp - Webpack - Grunt Знание системам контроля версий - TFS - Git - SVN

Значние систем continuous integration: - TeamCity - Jenkins

Остальные технические знания и умения: 

BackEnd: - .Net Framework 4, 4.5, 4.6 - ASP.NET Web Forms - ASP.NET MVC, ASP.NET MVC 6 - ADO.Net - Windows Forms - WPF - EF (code first, database first, fluent api) - WebApi, SOAP, WCF - REST - DI (Ninject, Autofac, StructureMap) - Regular Expressions - Reflection - ASP.NET AJAX Control Toolkit - LINQ, LINQ2SQL, LINQ2Entities, LINQ2XML, PLINQ - TPL, потокобезопасные коллекции - навык разработки многопоточных приложений (MultiThreading, MultiTasking) - навык написания unit тестов - XSLT-преобразования - Resharper - SignalR - Ext.Net - Automapper, Dapper - RabbitMQ - Async/Await - Spring Data, Hibernate, Spring Security, JDBC

- Apache Tomcat, Apache Camel, JBoss Fuse, JBoss AMQ, JBoss EAP - Docker, OpenShift, Kubernetes

- Junit

- JPA, JAX-RS, JAX-WS, JCF 

FrontEnd: - AJAX, Promise - JSON, XML - навык разработки веб приложений с использованием JS фреймворков - NodeJS

Общее: - навык управления группой разработчиков - умение планировать, ставить и распределять задачи, проивзодит оценку турдовых и временных затрат - умение решать поставленные задачи в срок и с требуемым качеством исполнения - умение проводить ревью кода - навык составления ТЗ - навык практического применения методологий: Scrum, Kanban, Waterfall - навыки развертывания, администрирования, конфигурирования Windows Server, IIS, MS SQL Server - понимание принципов ООП, концепций реляционных БД и паттернов проектирования - навык разработки ПО с использованием ООП - навык разработки ПО с использованием паттернов проектирования - умение проектировать и оптимизировать структуру БД, писать сложные запросы, документировать результаты разработки ПО - умение разбираться в чужом коде - знание, желание и умение писать качественный код с комментариями и документацией - стремление улучшать продукт и работу команды - стремление к оптимизации разработки и повышению качества разрабатываемого кода - умение внедрять новые инструменты и подходы Личные качества: - умение работать в команде - лидерство - организаторские способности - способность самостоятельно решать поставленные задачи - коммуникабельность - обучаемость - стремление к самообразованию и самосовершенствованию, к изучению новых технологий и подходов к решению задач - ответственный - пунктуальный

Личные качества: - умение работать в команде - лидерство - организаторские способности - способность самостоятельно решать поставленные задачи - коммуникабельность - обучаемость - стремление к самообразованию и самосовершенствованию, к изучению новых технологий и подходов к решению задач - ответственный - пунктуальный

Опыт работы
Акционерный коммерческий банк
Руководитель направления
Март 2017 — По настоящее время (3 года и 2 месяца)

БИНБАНК

Москва, www.binbank.ru

Руководитель направления

Линейное руководство командой разработки (5 чел., распределенная команда: Сургут, Москва, Новосибирск, Екатеринбург); Постановка задач команде аналитиков; Оценка разработанного ТЗ, техническая консультация при составлении ТЗ аналитиками; Взаимодействие с заказчиком, участие в процессе сбора и уточнения требований; Участие во встречах по соседним проектам в роли технического специалиста, проработка решений, брейн сторминг; Постановка задач команде разработчиков; Оценка трудоемкости работ и планирование сроков их реализации; Контроль за качеством выполнения задач; Приемка и анализ разработанного ПО, ревью кода; Наставничество в решении поставленных задач; Применение Agile (Scrum) в качестве методологии разработки; Организация и проведение Scrum митингов; Планирование спринтов и фаз проекта; Организация показа заказчику, сбор/уточнение пожеланий заказчика после показа; Собеседование/найм сотрудников;

Составление требований к кандидатам для HR отдела; Взаимодействие в HR отделом в части организации поиска, а так же уточнение критериев; Оценка сотрудников, принятие решений в части премирования сотрудников; Решение административных задач отдела (организация рабочего места, выделение требуемых программных ресурсов и разных доступов и т.д.); Выбор технологического стека разработки ПО в отделе, в том числе организация и планирование переноса существующих решений на выбранный технологический стек; Ведение проектов; Составление планов развития отдела и членов коллектива (карта развития); Планирование курсов повышения квалификации для команды; Планирование и заказ технических ресурсов под существующие и будущие решения на будущие года; Контроль работы подрядчиков по проектам в отделе; Организация работы подрядчика в части исполнения поставленных им задач, Участие в статусных встречах с заказчиком; Приемка разработанных подрядчиков решений; Участие в проработке требований от Бизнеса вместе с подрядчиком; Взаимодействие с архитектором и проектным менеджеров заказчика, в части вопросов сроков исполнения задач и технических решений; Составление технической документации, паспорта на разработанное ПО; Диагностика производительности разработанных решений; Передача разработанного ПО на поддержку в отделы АБД, АПО, мониторинга; Выстраивание SLA с отделами поддержки/администрирования/мониторинга; Участие в процессе организации интеграции с существующими решениями на ИР или за ИР (АБС); Участие в процессе анализа/проработки технического решения, в части доработок на стороне АБС; Участие в тестировании ПО; Внедрение разработанного ПО в ПРОД; Первичная оценка/анализ неисправностей, возникающих в ходе эксплуатации и тестирования ПО; Развертывание приложений на тестовых серверах (где это требуется); Взаимодействие с соседними отделами администрирования для получения требуемых доступов (сетевых и др.), ресурсов и пр.; 

Технические средства и технологии, используемые в работе: - Java/Java8 - J2SE, J2EE, EJB, JAX-WS, JPA, JSP, Spring, Hibernate, Soap, REST, Tomcat, WIldFly, JBoss EAP, JBoss Fuse, Apache Camel, JBoss AMQ - Design Patterns - Architecture and designing - Docker - Openshift 3.6/Openshift Origin - Jenkins, Gitlab, Artifactory - SoapUI, Hermes - RHEL - IntelliJ, VsCode, git - Outlook, MS Office - MS Project - Jira, Confluence - UML Достижения: - разработан и стандартизирован шаблон для сбора информации при инцидентах в работе ПО; - разработана и внедрен подход (свод правил) при разработке ПО на Java; - разработана и внедрен подход (свод правил) при разработки ПО на JavaScript (в том числе React); - настроена и введена в эксплуатацию инфраструктура/инструменты для организации CI/CD (Jenkins, Artifactory, Gitlab); - разработан и выстроен процесс работы отдела, в части обработки текущих задач на поддержку и развитие существующих систем, а так же в части заявок на разработку нового ПО; - разработан и выстроен процесс работы отдела, в части разработки ПО, по Scrum методологии; - под моим руководством в короткие сроки было реализовано 3 решения (в том числе ПО для реализации требования ЦБ РФ по ФЗ 550-П, а так же БД Террористов ФЗ 115), а так же портировано на новую технологический стек 1 существующее решение; - разработан "калькулятор" для проведения экспресс оценки трудозатрат на разработку ПО;

Реализация масштабных ИТ-проектов федерального и регионального уровня
Инженер-программист
Март 2016 — Март 2017 (1 год и 1 месяц)

Работа в команде; Взаимодействие с командой аналитиков Взаимодействие с командой тестировщиков; Взаимодействие с архитектором, в части вопросов интеграции с подсистемами компании и организации процессов работы разрабатываемого приложения; Взаимодействие с фрилансерами, контроль за выполнением задач фрилансерами и помощь в решении вопросов по задачам; Наставничество, в части реализации задач, качества кода и применяемых технологиях; Непосредственное участие в проектировании архитектуры и разработке back-end и front-end частей приложения; Оценка трудоемкости работ и планирование сроков их реализации; Участие в процессе постановки и распределения задач; Постановка задач фрилансерам; Постановка задач на тестирование для команды тестировщиков; Описание тестовых кейсов; Наставничество в решении смежных задач; Участие в общих собраниях для обсуждения текущего состояния по задачам и будущим планам; Применение Agile/Kanban в качестве методологии по разработке ПО; Анализ и доработка существующего кода; Документирование разработанного кода; Принятие решений в рамках реализации требуемой задачи, принятие архитектурных решений, выбора технологии, способа и подходов реализации; Настройка continuous integration при помощи TeamCity; Написание unit тестов; Написание JS unit тестов; Написание документации на разработанное ПО;

 Создание сервисов для интеграции с системами компании; Разработка вспомогательных общеиспользуемых JS модулей/функционала; Контроль за применением общих принятых правил при разработке в части кода: JS, CSS, HTML, C#;

Проектирование и оптимизация структуры БД (MSSQL); Оптимизация SQL запросов, оптимизация структуры БД; Документирования разработанных компонентов БД; Написание функций, вьюшек, процедур, job'ов, необходимых для работы веб-приложений;   

Технические средства и технологии, используемые в работе: - Kanban - C# 6 - ASP.NET MVC - Kendo UI - HTML/HTML5/CSS/CSS3/JS/ES6 - jQuery - Bootstrap - Ajax, Promise - EF, Migrations - DI(Autofac) - LINQ - T-SQL, MSSQL - AutoMapper - TypeScript - Underscore - Karma, Jasmin - C# unit testing - TeamCity - JSON, XML - WebAPI - MS SQL Server 2012/2014 - LINQ - ADO.Net - Regular Expressions - IIS Система контроля версий: SVN (Tortuise SVN). Баг трекер/База знаний: Jira/Confluence.  

Достижения: - Разработал функционал по автоматизации процесса загрузки объектов в БД (из xml файлов) - Полностью переделал структуру и стили проекта - Внедрил средства по автоматизации написания back-end кода (AutoMapper) - Внедрил подход по организации и написанию кода JS - Внедрил использование прототипирования для уменьшения дублирования и улучшения поддержки JS кода - Внедрил практику по использованию командой JS тестов при помощи Karma и Jasmin - Внедрил подход по организации написания и применению стилей в проекте - Формализовал предложенные подходы в виде рекомендаций при разработке проекта - Разработал сервисы рассылки СМС и E-mail уведомлений

Лизинговая компания
Программист
Июль 2015 — Март 2016 (9 месяцев)

Работа с внутренними проектами и задачами компании; Взаимодействие с заказчиком; Взаимодействие с аналитиками; Взаимодействие с группой тестирования; Взаимодействие с группой разработчиков БД, а части интеграции данных и создания требуемой структуры БД, а так же по вопросам безопасности и предоставления доступа к данным; Взаимодействие с архитектором компании, в части решения задач по интеграции и настройки взаимодействие систем; Постановка задач себе; Принятие решений в рамках реализации требуемой задачи, принятие архитектурных решений, выбора технологии, способа и подходов реализации; Оценка трудоемкости работ и планирование сроков их реализации; Наставничество в решении смежных задач; Описание интерфейсов для дальнейшей интеграции с системами компании; Создание сервисов для интеграции с системами компании; Разработка ПО в соответствии с ТЗ и требованиями бизнес-процессов компании; Разработка ПО без ТЗ, для решения business-critical задач; Написание unit тестов; Применение Agile/Scrum в качестве методологии по разработке ПО;

Интеграция данных различных систем при помощи RabbitMQ и WebApi сервисов; Анализ и доработка существующего кода; Работа в команде; Настройка continuous integration процессов разработанных систем при помощи TeamCity;

Переведение ПО в тестовую эксплуатацию и в производственную эксплуатацию, с дальнейшим сопровождением и решением вопросов работоспособности ПО; Написание паспорта на систему и инструкции по эксплуатации, а так же регламента для проведения тестирования; 

Проектирование и оптимизация структуры БД (MSSQL/Postgress); Оптимизация SQL запросов, оптимизация структуры БД; Документирования разработанных компонентов БД; Написание функций, вьюшек, процедур, job'ов, необходимых для работы веб-приложений; 

Технические средства и технологии, используемые в работе: - HTML/HTML5/CSS/CSS3/JS/ES6 - AJAX, jQuery, Promise - Bootstrap - C# 6 - TeamCity - AngularJS, KnockoutJS - Automapper - Dapper - EF, DI (StructureMap) - Gulp, webpack - Git, GitLab - NPM, Bower - TypeScript - Jade/Sass/Less - UnderscoreJS - Postgress, T-SQL - JSON, XML - WebAPI - REST - ASP.NET MVC, ASP.NET MVC 6 - MS SQL Server 2005/2008/2012 - LINQ, LINQ to SQL - ADO.Net - Regular Expressions - IIS

Достижения: - Интегрировал 5 подсистем в рамках веб приложения при помощи взаимодействия с WebApi и RabbitMQ - Разработал веб приложение с применением технологий: ASP.NET MVC 6, AngularJS, Gulp, Bower, Npm, Jade, Sass - Разработал вспомогательное ПО (библиотеку) для оптимизации и автоматизации работы с Excel документами

Телекоммуникации и связь
Ведущий инженер-разработчик
Февраль 2015 — Июль 2015 (6 месяцев)

Линейное руководство вверенной группы разработки (2 чел., аналитик и разработчик); Взаимодействие с заказчиком; Взаимодействие с аналитиком, уточнение ТЗ; Постановка задач команде; Оценка трудоемкости работ и планирование сроков их реализации; Контроль за качеством выполнения задач; Приемка и анализ разработанного ПО, ревью кода; Наставничество в решении поставленных задач; Применение Agile/Scrum в качестве методологии по разработке ПО; 

Работа с внутренними проектами и задачами компании; Разработка ПО в соответствии с ТЗ; Разработка ПО без ТЗ, для решения business-critical задач; Анализ и доработка существующего кода; Проектирование и оптимизация структуры БД (MSSQL/Oracle); Оптимизация SQL запросов, оптимизация структуры БД; Документирования разработанных компонентов БД; Написание функций, вьюшек, процедур, job'ов, необходимых для работы веб-приложений; Диагностика производительности разработанных решений; 

Развертывание разработанных веб-приложений на серверах и выполнение настроечных работ IIS; Настройка доступа к системам с применением шифрования (SSL сертификатов); Переведение ПО в тестовую эксплуатацию и в производственную эксплуатацию, с дальнейшим сопровождением и решением вопросов работоспособности ПО; Написание паспорта на систему (ТД) и инструкции по эксплуатации, а так же регламента для проведения тестирования; Создание сценариев тестирования; Внесение изменений в разработанное ПО, изменение и обновление данных; Интеграция данных различных систем на уровне БД; 

Технические средства и технологии, используемые в работе: - Scrum - HTML/HTML5/CSS/CSS3/JS - Ext.Net - ASP.NET Web Forms - ASP.NET MVC - jQuery - Entity Framework (code first, database first) - .Net Framework 4 и 4.5 - C# - LINQ, LINQ to SQL - MSSQL - ADO.Net - Regular Expressions - Oracle - IIS, Windows Server 2003/2008 - SSL  

Достижения: - Разработал и успешно внедрил в эксплуатацию приложение по контролю за отключением клиентов, которые нарушали правила компании - Разработал и успешно внедрил в эксплуатацию приложения для учета работ субподрядчиков компании - Разработал архитектуру и разработал приложение - реестр архивных документов. Приложение было призвано заменить стороннее приложение, которое было куплено компанией и которое не удовлетворяло требованиям по функционалу - Успешно разработал, развернул, протестировал и внедрил более 6 приложений - Успешно управлял командой из 2-х человек

Начальник бюро отдела сетевых решений статистических задач
Апрель 2009 — Февраль 2015 (5 лет и 11 месяцев)

Линейное руководство вверенного бюро (6 чел.); Взаимодействие с командой аналитиков; Взаимодействие с заказчиком; Постановка задач разработчикам; Оценка трудоемкости работ и планирование сроков их реализации; Контроль за качеством выполнения задач; Приемка и анализ разработанного ПО, ревью кода; Наставничество в решении поставленных задач; Применение Waterfall в качестве методологии разработки;

Анализ и ревью исходного кода стороннего ПО; Анализ и доработка существующего кода; Проектирование и оптимизация структуры БД; Оптимизация SQL запросов, оптимизация структуры БД; Документирования разработанных компонентов БД SQL; Участие в разработке ТЗ; Составление технической документации на разработанное ПО; Диагностика производительности разработанных решений; Разработка и проектирование дополнительного (вспомогательного) ПО; Разработка и оптимизация требуемых компонентов систем в соответствие с ТЗ;

Участие в тестировании ПО; Участие во внедрении, тестовой эксплуатации и поддержке разработанного ПО; Устранение неисправностей, возникающих в ходе эксплуатации и тестирования ПО; Развертывание веб приложений на IIS; Настройка среды выполнения приложения (на IIS); Настройка виртуальных машин, установка и настройка серверного ПО; Настройка БД в части стратегий бэкапирования;

  Технические средства и технологии, используемые в работе: - HTML/CSS/JS - jQuery - .Net Framework 4 и 4.5 - Ajax Control Toolkit - ASP.NET WebForms - MSSQL 2005/2008 - LINQ - ADO.Net - Regular Expressions - SQL Profiler - TFS - C#/VB.NET - Visual Studio - IIS, Windows Server 2003/2008 - VmWare - Waterfall - собственные разработанные ПО

 Достижения: - Разработал архитектуру БД и функционал по автоматизации загрузки данных в БД (из xml документов) - Разработал архитектуру БД и функционал по интерпретации формул (являются частью данных загружаемых XML файлов). В рамках этой задачи так же был разработан парсер формул контроль целостности данных. - Разработал архитектуру и функционал по агрегации/вычислению и выгрузке статистических данных, отчетов (логика на уровне БД SQL) - Успешно провел нагрузочное тестирование и участвовал в процессе внедрения приложения - Успешно руководил группой из 6-ти разработчиков

Высшее образование
Московский Авиационный Институт (Национальный исследовательский университет)
Москва
Факультет: Учебный центр компьютерных технологий
Ноябрь 2012—Декабрь 2012 (1 месяц)

Курсы повышения квалификации

Программирование на C++ Московский авиационный институт (НИУ) Центр повышения квалификации и переподготовки (ЦПК РиС)

Факультет: Учебный центр компьютерных технологий
Март 2010—Апрель 2010 (1 месяц)

Курсы повышения квалификации

Администрирование сетей на базе Microsoft Windows Московский авиационный институт (ГТУ), факультет повышения квалификации

Факультет: Системы управления, информатики и электроэнергетики
Сентябрь 2009—Март 2015 (5 лет и 6 месяцев)

Системы управления, информатика и электроэнергетика, Системы управления летательными аппаратами

Учебный Центр «Специалист» при МГТУ им. Н.Э.Баумана
Москва
Март 2011—Апрель 2011 (1 месяц)

Курсы повышения квалификации

M6231 Поддержка баз данных в Microsoft SQL Server 2008 Центр компьютерного обучения "Специалист" при МГТУ им. Баумана