Обо мне

Специализация и профессиональные навыки:
Языки программирования: c, c++ (STL, boost), perl
Есть опыт программирования: c#, js, java (jcop), xml, xsl (xslt)
Разработка: OOP/OOD, Design patterns, Design Planning (UML), GOF, асинхронное высоконагрузочное ПО, мульти-поточное ПО, TDD
Системы контроля версий: svn, git, cvs

Награды, сертификаты, портфолио, проекты:
Сертификат BrainBench "Master C++" 2007, Previsor company.

Профессиональные навыки
LinuxGitTcpJavaC++
Опыт работы
Сентябрь 2013 — по настоящее время
Skype
Senior Development Lead
Москва
Обязанности и достижения

Разработка отказоустойчивой распределенной системы хранения медиа информации с использованием облачных продуктов Microsoft Azure. Ключевые особенности сервиса:• распределенность сервиса по миру - разные дата центры Microsoft разбросанные по миру;• отказоустойчивость - способность сервиса функционировать в условиях периодических отключений рабочих машин, недоступности части сервиса, дата-центра и пр;• низкие задержки при обработке данных;• высокие нагрузки - 30+ Gbit/s;• HTTP Rest API интерфейс;• Авторизация на базе Skype и MSA/live.com систем.Обязанности как лидера команды:• Определение архитектуры сервиса, определение и контроль технических решений;• Управление процессом разработки;• Роль Scrum Master - вскрытие и решение командных проблем;• Обеспечение операционной деятельности команды;• Собеседование и подбор людей;• Интеграция сервиса в эко-систему Microsoft/Skype;Обязанности как разработчика:• Имплементация решений в коде, оптимизация, код ревью;• Стек технологий: Azure cloud services, .NET/C#, VS, WEB API, Owin/KatanaДостижения:• Запуск picture sharing в рамках skype клиента на базе разработанного командой сервиса (http://www.cnet.com/uk/news/skype-adds-photo-sh...) - команда полностью перешла с linux-based решений на windows/.net и под моим руководством за год запустила рабочий сервис вышедший во "всемирную" нагрузку

Август 2011 — Сентябрь 2013
Skype
Senior Software Developer
Москва
Обязанности и достижения

Обязанности как разработчика:• Разработка распределенной отказоустойчивой системы хранения, транскодирования и раздачи медиа-контента пользователей на базе bare machine - сбор требований, проработка архитектуры, проработка решений на уровне кода, оптимизация производительности, код ревью и пр;• Определение процесса разработки• Стек технологий: linux, c/c++, java nio, pythonОбязанности как Scrum Master:• Создание благоприятной атмосферы внутри команды, повышение работоспобосности, внедрение agile-методик, обеспечение стабильного проффесионального роста команды в целом и разработчиков по отдельности, вскрытие и решение внутренних и внешних командных конфликтов и проблем;Достижения:• Запуск на весь мир video messaging в рамках skype клиента на базе разработанного командой сервиса (http://www.skype.com/en/features/video-messaging)

Август 2010 — Август 2011
Mail.Ru
Программист-разработчик в команде "Поиск"
Москва
Обязанности и достижения

Основные обязанности:• Развитие распределенного web-crawler - сервиса для перебора и сохранения страниц Интернета в базе компании. Общий размер URI базы - порядка 6 млрд;• Стек технологий - linux, с++, libev, java, hadoop/hbase.Личные достижения:• Повысил утилизацию серверов и скорость перебора URL в несколько раз, доведя входящий в один сервер трафик до стабильных 700 Мбит\с при физическом ограничении канала в 1 Гбит\с;• Разработал для внутренних нужд команды фреймворк для быстрого создания мультипотоковых C++ сервисов на основе кастомизированного libev;• Заложил основу следующего поколения внутренних сервисов команды - единая распределенная система хранения на основе Hadoop/HBase, контролируемый процессинг документов на основе map/reduce задач и прочее;

Июль 2009 — Август 2011
программист C/C++
Москва
Обязанности и достижения

Обязанности:
- бизнес логика сервиса фото@mail.ru
- демон сбора статистики
- веб-краулер проекта поиск@mail.ru

Июль 2009 — Август 2010
Mail.Ru
Программист-разработчик в команде "Фото/Видео"
Москва
Обязанности и достижения

Основные обязанности:• Поддержка новых возможностей web-портала в фронтенд сервисе;• Развитие внутренней инфраструктуры, отвечающей за распределенное хранение медиа-контента пользователей - увеличение стабильности, уменьшение задержек связанных с основными операциями с контентом, поддержка новых API;• Стек технологий - linux/epoll, C/С++, gcc, gdb, valgrind.Личные достижения:• Разработал внутреннюю систему кэширования наиболее запрашиваемых частей видео-роликов;• Разработал сервис мониторинга внутренних компонентов портала.

Июнь 2005 — Июнь 2009
ООО "Транзакционные системы"
руководитель группы разработки программного обеспечения
Москва
Обязанности и достижения

Основные обязанности: • разработка мультиплатформенного программного обеспечения для POS-терминалов;• управление группой разработчиков: постановка задач, оценка трудоемкости, рецензирование кода (“code review”);Личные достижения:• принимаю участие в качестве архитектора/программиста в разработке нового поколения ПО для POS с ОС Linux.• разработал для Linux новую библиотеку для embeded устройств с графическими примитивами, системой распространения и обслуживания графических событий;• портировал часть библиотек boost, FTP-сервер (vsftpd), библиотеку для работы c XML(tinyxml) и многое другое под uclibcpp/Linux;• разработал кросс платформенный программный модуль унифицированного управления коммуникациями POS-терминала;• разработал модуль аутентификации для развертывания системы лицензирования ПО на основе SIM-карт и симметричного шифрования;• Принимал участие в разработке сервера для удаленного доступа к функциям POS-терминала (.NET Windows XP/ .NET CF Windows Mobile).

Июнь 2005 — Июль 2009
Транзакционные Системы
руководитель группы разработки
Москва
Обязанности и достижения

Обязанности:
- Управление командой (3-5 человек) - постановка задач, оценка трудоемкости, рецензирование кода “code review”
- Прохождение сертификаций ПО в компаниях производителях хостов
- Разработка с начального этапа ПО для первого российского POS терминала "Ярус" (Linux)
- Разработка ПО для POS терминалов Hypercom

Достижения:
- разработал для Linux новую библиотеку с графическими примитивами, системой распространения и обслуживания графических событий
- разработал модуль аутентификации для развертывания системы лицензирования ПО на основе SIM-карт и симетричного шифрования
- разработал мини-библиотеку C++ классов для управления Linux потоками, сокетами, очередями событий
- разработал программный модуль унифицированного управления коммуникациями терминала (Dial-up, TCP/IP, GSM, PPP, GPRS, RS232)
- Принимал участие в разработке сервера для интеграции с кассовыми системами (.NET Windows XP/ .NET CF Windows Mobile)

Октябрь 2003 — Июнь 2005
Транзакционные системы
программист C/C++
Москва
Обязанности и достижения

Обязанности:
- разработка ПО для POS терминалов HyperCom
- поддержка embedded устройства для маршрутизации данных из телефонной модемной сети в TCP/IP

Октябрь 2003 — Июнь 2005
ООО "Транзакционные системы"
программист-разработчик
Москва
Обязанности и достижения

Основные обязанности:• Развитие программного обеспечения для POS-терминалов;• Развитие embedded устройства для маршрутизации данных из телефонной модемной сети в TCP/IP;

Высшее образование
Январь 2002 — Январь 2004
Национальный исследовательский университет «МИЭТ»
Иностранных языков (ИНЯЗ)
Москва
Специализация и достижения

гос. диплом переводчика английского языка

Январь 1999 — Январь 2004
Национальный исследовательский университет «МИЭТ»
Микроприборов и технической кибернетики (МП и ТК)
Москва