Здравствуйте, меня зовут Павел Патрин.
Я профессионально занимаюсь разработкой программного обеспечения. Владею навыками постановки, оценки и декомпозиции задач (ведущая роль в разработке) и навыками реализации (непосредственно разработка).
Своими ключевым преимуществами считаю профессиональное отношение к процессу разработки ПО, коммуникабельность с членами команды и менеджерами, настойчивость, самостоятельность.
Мой опыт работы перечислен в разделах ниже.
Опыт работы
с 2020 г. Ведущий инженер в российском подразделении NVIDIA
Учавствую в разработке внутренних продуктов компании Nvidia.
2015 г. – 2020 г. Программист в компании Mail.ru Group
Участвовал в разработке сервисов рекламной платформы 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.7, 3.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/