Обо мне

Здравствуйте, меня зовут Павел Патрин.

Я профессионально занимаюсь разработкой программного обеспечения. Владею навыками постановки, оценки и декомпозиции задач (ведущая роль в разработке) и навыками реализации (непосредственно разработка).

Своими ключевым преимуществами считаю профессиональное отношение к процессу разработки ПО, коммуникабельность с членами команды и менеджерами, настойчивость, самостоятельность.

Мой опыт работы перечислен в разделах ниже.

Опыт работы

c 2015 г. Программист в компании Mail.ru

  • Участвую в разработке api рекламной платформы MyTarget.
  • Проектирую, декомпозирую, делегирую и реализую классные фичи.
  • Контролирую работу системы, разрешаю технические проблемы.
  • Борюсь с избыточной сложностью, хрупкостью, связностью компонентов.
  • Делаю систему красивее, чётче, лаконичнее и надежнее!

Технологии: Nginx, Lua, uWSGI, Python 2×3, Django, Tornado, MySQL, Tarantool, Memcached и т.д.

с 2014 г. – 2015 г. Ведущий программист в компании БАРС Груп

Проект “Электронный детский сад”

  • В качестве ведущего разработчика задавал направление разработки облачной системе бухгалтерского учета в детских садиках (несколько раздельных SAAS-решений) (Python + ExtJS).
  • Разработал интеграционное решение (SOAP) для взаимодействия с паралельным SAAS-решением.
  • Разработал библиотеку для интеграции проекта в ЕСИА (saml sso + КриптоПро).
  • Провёл несколько этапов рефакторинга для упрощения системы.
  • Перевёл систему на пакетную дистрибуцию.
  • Зафиксировал процессы разработки в ряде статей в Confluence.

Проект “СМЭВ-прокси”

  • Разработал проект СМЭВ-прокси для доступа в СМЭВ из защищённого контура и подписи запросов / проверки ответов единым СКЗИ. Реализовал поддержку “КриптоПро CSP” Linux, “КриптоПро CSP” Windows, “VipNet” Windows (Windows CryptoApi через ctypes)).
  • Решение что позволяет отказаться от использования нескольких инсталляций платных СКЗИ на каждом сервере в пользу одного сервера а так же не раздавать ключевые пары.

Технологии: Django, Flask, Python 2.7, PostgreSQL, Celery / RabbitMQ, gevent.

2012 г. – 2014 г. Инженер-программист в компании Системы документооборота

  • Участвовал в разработке высоконагруженой системы электронного документооборота.
  • Разработал решение по использованию распределённых хранилищ для хранения документов.

Технологии: PHP-5, Symfony 2, Oracle Database, CentOS.

2010 – 2012 г. г. Ведущий программист в компании Creativa Studio

  • Выполнял и контролировал разработку веб-проектов различной сложности, постановкой задач, администрированием и контролем инфраструктуры.
  • Запустил и поддерживал сетевую инфраструктуру (libvirt-qemu / lvm / apache-nginx-mysql-php).
  • Участвовал во встречах с заказчиками и составлении бизнес-требований.

Технологии: PHP-5, HostCMS, Symfony, MySQL, Ubuntu Server.

2010 – 2011 г. г. Программист в компании WebCraft Studio

  • Выполнял fullstack разработку web-проектов различной сложности.

Технологии: PHP-5, HostCMS, MySQL, Ubuntu Server.

2008 – 2010 г. г. Freelance

Разрабатывал небольшие web-проекты.

Образование

Закончил Вятский государственный гуманитарный университет, 2005-2011 г.

Специальность: “Прикладная математика и информатика”.

Квалификация: “Математик, системный программист”.

Backend разработка

Имею опыт разработки на языке Python (2.x).

В частности, знаю:

  • чем хороша утиная типизация и как её правильно использовать;
  • чем полезна динамическая природа языка;
  • как писать и поддерживать масштабируемые приложения.

Имею практический опыт в большом колличестве python-библиотек, в том числе Django, Flask, Celery и пр.

Так же имею опыт различного уровня реализациии backend-а сервисов на PHP, GoLang, C/C++.

Хранение данных

Знаком с SQL, знаю:

  • базовые аспекты написания эффективных sql-запросов и методов оптимизации sql-запросов;
  • что такое MVCC, ACID, изоляция транзакций;
  • что такое вертикальное и горизонтальное масштабирование;
  • что такое репликация и партиционирование;
  • как работать с PostgreSQL, MySQL, Oracle.

А так же с NoSQL, знаю:

  • что такое документноориентированные базы и базы данных типа ключ – значение;
  • что такое шардинг;
  • CAP и распределенность БД;
  • как работать с Tarantool, Memcache, RabbitMQ, MongoDB.

 Linux

Знаком с основанными на Linux операционными системами как пользователь и как администратор.

Знаю:

  • как определять нагрузку и вести мониторинг состояния;
  • как взаимодействовать с операционной системой, что такое procfs, sysctl и т.п.;
  • как устанавливать и поддерживать систему, собирать пакеты, выполнять provision.

Имею практический опыт с nginx, apache, iptables, lvm, libvirt, bash, puppet, docker.

Frontend разработка

Имею опыт frontend-разработки, в частности:

  • HTML5 & CSS3 (вел небольшой курс);
  • Javascript и TypeScript.

Имею практический опыт разработки с использованием библиотек, в том числе ExtJS, AngularJS, React.

Другие навыки

Знаком с:

  • проектированием ПО, UML, шаблонами проектирования, SOLID;
  • построением распределенных систем (Soap, REST, Message queuing);
  • командной разработкой ПО подходом agile scrum;
  • системами контроля версий Mercurial и Git;
  • подходом к командной разработке через GitHub и продукты Atlassian;
  • CI/CD DevOps.

А так же знаком с C#, Java, С++, C, Perl, Lua и пр.

Мне нравится:

  • писать чистый и тестируемый код;
  • делать простые вещи из сложных;
  • думать и добиваться решения;
  • готовить доклады и делать выступления на интересные темы.

Мои контакты

Email: pavelpatrin@gmail.com
Профиль GitHub: https://github.com/pavelpatrin/