pivolanpivolan

Игорь Печеникин

программист · Бэкенд · Старший (Senior)
От 3500 $ · Не ищу работу
Возраст: 33 года
Опыт работы: 10 лет
Регистрация: 26.11.2015
Последний визит: 2 дня назад
Профессиональные навыки: PHP · Python · Golang
Войдите, чтобы посмотреть контакты пользователя

Обо мне

кипр

Опыт работы

  • Реклама и телефония
    Москва
    Ведущий разработчик
    Март 2019 — По настоящее время (1 год и 11 месяцев)

    Система управления email рассылками для внутреннего использования

    1. Дашбоард для менеджеров для управления коммерческими рассылками.
    2. Возможность подключать разные почтовые сервисы.
    3. Cвоя трекинговая система
    4. Система управления доменами и сертификатами ssl.
    5. Автоматическая установка смтп серверов с присоединеним доменов и получением сертификатов.
    6. Тонкая настройка заголовков писем в том числе служебных подписей dkim.
    7. Возможность использования коммерческих аккаунтов без включенных smtp, imap служб.
    8. Возможность подписаться и отписаться от разного рода рассылок и предложений.
    9. Редиректы для трекинга интересов.

    Общение между сервисами с помощью rest api.

    Используемые технологии:

    frontend: vue+nuxt

    backend: golang + restful(rs layer)

    websockets - интерактивное наблюдение за процессом рассылки, установкой серверов, обновление логов.

    letsencrypt(acme library) - быстрое подключение новых серверов с редиректами и трекингом, получение и обновление сертификатов.

    mongodb - хранение логов, конфигов, отладочной информации.

    postgres - хранение баз пользователей, подписки, отписки, аккаунты. Основная бд.

    redis - побочное использование для неважного общения между сервисами передача данных с помощью pub/sub, хранение некоторых настроек.

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

    imap - возможность администрировать свои корпоративные аккаунты, разные корпоративные аккаунты для разных стран получателей. Проверка служебных писем, жалоб, ответов клиентов.

    dkim, dmark, spf - генерация и автоматическая настройка серверов новых клиентов. Возможно использовать свои сервера, но с нашими получаем лучшую обратную связь и настройки.

    chromedp, selenium - тесты своей защиты от ботов. Разеделение трекинга пользователей и ботов имитирующих простых пользователей. Тестирование предотвращения фрода.

    clickhouse - сбор статистики по кликам и открытиям писем. До анализа и разбора данных не добрались.

  • UniArb
    Москва
    Ведущий программист
    Март 2018 — Март 2019 (1 год и 1 месяц)

    Разработка ПО для автоматической торговли на бирже криптовалют. Арбитраж, hst. 
    Используемый язык: golang.
    Основная цель: максимально быстро делать расчеты и обновлять данные для расчетов, успевать покупать быстрее других.
    Используемые инструменты: websockets, easyjson, gogoprototype, redis, mysql, map.sync, lock, telegram bot api, lz4, msgp, mongodb, postgres.
    Работа с внешними апи, реверс инжиниринг не документированных апи, эмуляция запросов web, подключение к недокументированным сокетам.
    Используемые биржи: livecoin, coinexchange, kukoin, yobit, hitbtc, cryptopia, ccex, wex, cex.
    Частичное покрытие тестами, множество benchmarks.
    Достижения:

    1. Оборот компании 7млн долларов в месяц.
    2. Реализация разных стратегий торговли:
      1. Динамический арбитраж, торговля между парами, поиск лучшего пути по графу.
      2. Статический арбитраж, предварительное выставление ордеров для дальнейшей перепродажи.
      3. Межбиржевой арбитраж, динамический и статический, Выставление больших ордеров по конкретным парам.
      4. Защита от троллинга, детекция поддельных сигналов, защита от слива средств.
    3. Запредельная оптимизация по скорости обработки данных и расчет графа на сигналы. 700нс при поиске по 2000 пар. Изначальный алгоритм работал 20мкс.
    4. Автоматический мониторинг и администрирование с помощью телеграм бота: Проверка балансов, создание ордеров, создание задач на разные стратегии, установка лимитов, полная остановка, обновление cookie, и многое другое.
    5. По телеграмм боту:
      1. Реализованы интерфесы с кнопками
      2. Интерактивное общение
      3. Команды с параметрами
      4. Постоянный мониторинг
    6. Сбор статистики и анализ с помощью mongodb composer.
    7. Использование более 1000 проксей для быстрейшего получения данных.
    8. Вебсокеты, json, gogoprotobuf. На разных биржах по разному.
    9. Поиск ближайших серверов.
    10. Простые интерфейсы для скорейшего подключения новых бирж.
    11. Беглый анализ новых бирж для выявления возможности арбитража.
    12. Chromedp, для работы с chrome --headless, автоматическое тестирование проверка данных. Параллельный запуск и обработка более 50 instances.

  • smartlottery(uniarbi)
    Москва
    программист
    Январь 2018 — Февраль 2018 (2 месяца)

    В рамках кампании велась разработка своего контракта для проведения ICO

    Контракт ICO:

    Были выпущены токены для продажи.
    Использовалось 3 этапа продажи, с разными ценами.
    Прописаны правила
    :
    Передачи токенов между участниками
    Лимиты продажи
    Блокировка основных средств на счетах по истечению времени.

    SmartLottery:

    Криптолотерея по образу столото.

    Возможность приобрести билет за эфир

    Ежедневное проведение лотереи расчет выигрышей на стороне эфир контракта.

    Выплата с помощью правил контракта без использования ручной или серверной обработки операции.

    Прописанные правила в контракте эфира:

    1. Покупка,
    2. выбор цифр,
    3. регистрация билета,
    4. расчет выигрыша,
    5. сбор денег в супер приз,
    6. распределения выигрыша между участниками(победителями)
    7. Выплата приза.
  • Appgrowth
    Сан-Франциско и район залива
    Ведущий программист
    Март 2016 — Январь 2018 (1 год и 11 месяцев)

    Разработка и поддержка административной панели для рекламного агрегатора dsp. 
    Разработка - backend, руководство и формирование задач - frontend.
    Используемые технологии:
    backend: python3, django, postgresql, aerospike, mongodb, redis, rabbitmq, verticadb, clickhouse db. 
    frontend: angular. 

    Достижения: По приходу в проект, покрытие 100% кода тестами. Интеграция с google ad sense api. Интеграция с платежной системой по картам visa. Расширение функционала. Четкая постановка задач, с детальным описанием требований и деталей, контроль за исполнением. Внедрение ci, jenkins. Руководство командой из трех человек. Четкое соблюдение требований проект менеджера, соблюдение сроков и релизов.

    1. agile/scrum, недельные спринты
    2. Полное разделение backend/frontend. Разные репозитории.
    3. Настройка автоматического деплоя, тесты.
    4. В кратчайшие сроки покрытие всех методов endpoints тестами.
    5. Оптимизация запросов в VerticaDB, создание проекций на таблицы.
    6. Фоновые задачи для обработки больших запросов и кэширование их в mongodb.
    7. Вывод статистики, решение проблемы пагинации при условии распределения данных в нескольких источниках: postgresql + verticaDB.
    8. Отладка и дебаг трафика с google ads api. Анализ данных с помощью mongodb composer.
    9. Работа с шаблонами рекламы, подготовка данных для работы с типами рекламы(creatives): interstitial, video, banner, native.
    10. Реализация 4х версий протокола VAST.
    11. Изоляция storage, для хранения данных в разных местах в зависимости от окружения.
    12. Максимальное упрощение поднятия проекта локально, Специальные заглушки для большинства сервисов. Возможность развернуть проект за пару минут после клонирования из репозитория.
    13. Работа с adx, внедрение апи, получение данных об одобрении креатива напрямую с adx. Google adx api.
    14. Работа с разными версия mraid креатива.
    15. Интеграция с рекламными площадками: adx, chartboost, envisionx, smartb, fyber, appodealx.
    16. Жесткая кастомизация апи, права доступа, изменение формата данных, динамические поля, Разные наборы данных в зависимости от прав доступа.
    17. Реализация истории изменений на django active records. Ни один из пакетов django не отвечал нашим требованиям, либо они не могли правильно сериализовать данные, либо не могли рекурсивную проверку разницы данных с учетом связанных таблиц. В общем реализована история изменений, было не просто.
    18. Хэширование изображений, защита от дублирования изображений.
    19. Формирование конфига для биддера в формате json, передача его разными способами. Полное покрытие тестами этого момента, 100% не только кода но и логики. Т.к. сломанный конфиг ронял систему. Ни одной поломки конфига за мою работу не было.
    20. Миграции фикстуры, все как обычно, для быстрого поднятия окружения.
    21. Интеграция работы с golang скриптами, очереди задач, отложенные задачи, параллельное выполнение.
    22. Очень хитрые запросы в verticadb, параллельный запрос в 4 потока на 4 таблицы, и объединение данных на стороне приложения. Необходимая мера из-за ограничений запросов в вертику + объедение с данными из postgres. Использование threads.
    23. Отладка трафика RTB, слушание каналов в kafka, для дальнейшей интеграции.
    24. Отладка креативов на своих устройствах android ipad. Подделка сертификатов и перехват трафика https для отладки креативов.
  • Exprating
    Москва
    Ведущий программист
    Март 2016 — Январь 2017 (11 месяцев)

    Разработка портала отзывов и обзоров от экспертов на товары.
    Создание проекта с нуля.
    Symfony3, 80% покрытие кода тестами. Внедрение непрерывной интеграции. Настройка jenkins. 
    Настройка sphinx. Строгое следование стандартам симфони при разработке.

  • Частная практика, работа без зачисления в штат
    Москва · От 1000 до 5000 сотрудников
    Программист
    Март 2015 — Январь 2016 (11 месяцев)

    Реализация чата с использование комбинации шифрования AES + RSA.
    Возможность переписываться между участниками через сервер, без возможности админам прочитать переписку собеседников.
    1. Стандартная регистрация авторизация.
    2. Создание приватного и публичного ключа на основе секретного слова.
    3. Сохранение публичного ключа на сервере.
    4. Создание комнат для общения.
    5. Обмен aes ключами между участниками, через взаимное шифрование публичными ключами.
    6. Шифровка, расшифровка сообщений на стороне клиента.
    7. Возможность работы в сети ТОР. Генерация красивого домена onion.
    8. Статистика посещений, сохранение в отдельную базу данных.
    При захвате базы злоумышленниками, данные не возможно прочитать без приватных ключей пользователей.
    Используемые технологии: symfony2, postgres, sqlite3, tor, cryptico(js).

  • InfoSkidka
    Москва
    Программист
    Март 2015 — Январь 2016 (11 месяцев)

    Участие в разработке портала информации.
    1. Работа с шаблонами xsl.
    2. Создание xsl шаблонов.
    3. Передача переменных в шаблоны.
    4. Обработка тегов, использование логики представления xsl.
    5. Работа с циклами, выборка(choice), переменными, условиями.
    6. Генерация xml с помощью xsl.

  • citymetrix
    Москва
    Ведущий программист
    Январь 2015 — Май 2015 (5 месяцев)

    1. Регистрация, авторизация
    2. Импорт школ с внешнего api
    3. restful api для ios приложения.
    4. Авторизация, регистрация через соц сети facebook, vk в restful api.
    5. Просмотр, редактирование профиля.
    6. Работа с изображениями, upload картинки профиля, обработка изображения.
    7. Возврат нужных данных, использование фильтров в запросах. Добавление не стандартных фильтров. 
    8. Углубленная работа с сериализаторами данных, выполнение требований по усложнённому набору данных. 
    9. Редактирования сущностей через api, сохранение вложенных сущностей через один запрос. Редактирование нескольких сущностей через один запрос.
    10. Использование прав доступа для возможности просматривать, редактировать записи.
    11. Написание своих адаптеров и провайдеров для работы с соцсетями.
    12. Статьи, новости, школы.
    13. Главная страница, плиточная система. Группировка по столбцам и выбор размера плашек. Настройка через админку.
    14. Push уведомления для ios. Настройка работы, установка сертификатов. Отправка по событиям и по крону.
    15. Email уведомления, обратная связь.
    16. Статистика посещаемости. Использование отдельной базы для хранения статистики.
    17. Система вложенных комментариев.
    18. Использование тегов для статей. Возможность голосования.
    18. Настройка vps сервера. Бэкапы.
    Используемые технологии: Django 1.8, postgres, sqlite3.

  • ООО "Когнитив"
    Москва
    программист
    Май 2013 — Январь 2015 (1 год и 9 месяцев)

    Разработка торговой площадки для проведения электронных аукционов, интеграция с ООС (общероссийский официальный сайт (Государственные закупки))
    Используемые технологии: Zend framework, postgresql, extjs, xml.

    Основная специализации - работа с ООС.
    1. Изменение форм extjs, добавление валидаторов, изменение полей, использование условий для показа/скрытия дополнительных полей на форме. Динамически формы.
    2. Создание системы отправки закупок на ООС. Формирование xml для извещений (более 10 типов извещений). 
    3. Модульная сборка xml для извещений. Фабрика для получения необходимого набора объектов. Интерфейсы для модулей xml. 
    4. Обработчики входящих xml с ООС. Интерфейс обработчика. Парсинг xml, выбор необходимого обработчика.
    5. Тесты для обработчиков. 
    6. Так же реализовано формирование xml для протоколов. Использование фабрики. Сборка нужного объекта из мелких классов, отвечающий за свой кусок генерации xml. Решение проблемы с генерацией более 20 типов протоколов, с большим количеством пересекающихся кусков xml.
    7. Работа со схемами xsd.
    8. Создание своей схемы XSD. Проектирование api и формата xml для работы с внешним апи. Использование своей схемы xsd для требований к другой команде разработчиков, для возможности импорт закупок из внешней системы.
    9. Модуль импорта закупок. Проверка xml по xsd схеме.
    10. Использование xsl для преобразования xml.
    11. Работа с отчетами, генерация docx, excel с помощью stimulsoft. Настройка отчетов через интерфейс и напрямую через файл настроек xml.
    12. Анализ данных. Поиск багов, оптимизация. 
    13. Решение проблем с конкурирующими запросами на ООС.
    14. Работа с тех.поддержкой ООС.
    15. Разбиение больших файлов на несколько отдельных при отправке.
    16. Написание анализатора данных на django 1.9. Формирование xml с помощью jinja шаблонизатора.
    17. Актуализация формата отправляемых/получаемых данных, в соответствии с обновлением ООСа. Обновление версий.
    18. Работа с ООС по ФЗ-44 и ФЗ-223. Использование криптопрокси. Использование протоколов AS2 и HTTPS.
    19. Выяснение подробностей по ошибкам возвращаемых ООС. Выяснение правил отправки xml: ограничения на размер файлов, правила отправки изменений/отмены/нового извщеений. Выяснение общего сценария обработки xml и работы в личном кабинете ООС.
    20. Обработка План-Графиков(2 типа), извещений(12 типов) о проведении электронных аукционов, протоколов(~20), заключение контрактов(~8), исполнение контрактов(~5).

  • Онлайн агрегатор молодых талантливых дизайнеров одежды и аксессуаров из Европы
    Москва · От 10 до 100 сотрудников
    Ведущий программист
    Январь 2013 — Январь 2014 (1 год и 1 месяц)

    Разработка приложения для поиска связей между агенствами и фотомоделями.
    Стандартный функционал: 
    1. Авторизация через соцсети (facebook, twitter, ...)
    2. Редактирование профиля.
    3. Работа с картинками. Изменение размера картинок, предварительнная генерация иконок. Асинхронные задачи.
    4. Поиск, фильтры, полнотекстовый поиск.
    5. Автогенерируемая документация для api.
    6. Реализован RESTFUL api.
    7. Углубленная работа с сериализацией данных, использование не стандартных решений из-за особых требований к формату отдаваемых данных.
    8. Функционал фолловеров.
    9. Почтовые рассылки, уведомления. Push уведомления для ios через urbanairship.
    10. Функциональные тесты, юнит тесты.
    11. Фикстуры, миграции, тесты миграций. Автоматическая проверка бэкапов.
    12. Автоматическая сборка проектов с помощью jenkins.
    13. Prod, dev, test сервера, настройка актуализация, мониторинг.
    Используемые технологии: symfony 2.4, mysql

    Разработка приложения для кадрового агенства.
    1. Регистрация, авторизация. Регистрация по приглашениям.
    2. Создание редактирование удаление компаний.
    3. Уведомления на почту при наступлении различных действий.
    4. Создание вакансий, подбор кандидатов, назначение собеседующих, назначение собеседований.
    5. Система оценок и отзывов по окончанию собеседования.
    6. Система уведомлений о предстоящих и завершенных собеседованиях.
    7. Система уведомлений на почту, по событиям и по крону.
    8. Настройка уведомлений.
    9. Работа с изображениями. Заполнение профиля.
    10. Реализация dashboard с отображением актуальной информации. По предстоящим интервью, созданным вакансиям, компаниям, кандидатам и участникам.
    11. Система acl для контроля прав доступа.
    Используемые технологии: python3, django 1.7, mysql

    Разработка rest api для гороскопа:
    1. rest api
    2. Импорт данных с внешнего источника. Парсинг html с помощью beautifulsoap.
    3. стандартный crud для показа информации по знакам зодиака.
    4. Простейший механизм для показа рекламы и баннеров в соответствии с контекстом предсказания по знаку зодиака.
    5. Админка.
    Backend разработка для iphone приложения.
    Используемые технологии: django 1.7, sqlite3.

  • Clothia
    Нью-Йорк
    Ведущий программист
    Январь 2012 — Январь 2014 (2 года и 1 месяц)

    Участие в команде разработчиков в разработке стартапа Clothia. 
    3 программиста, 2 backend, 1 frontend. Через полгода стал ведущим разработчиком. Полное разделение backend и frontend обязанностей.
    Используемые технологии: php, symfony 1.4, git, mysql(innoDB), memcached, rabbitMQ, sphinx, oauth, google api, facebook api, twitter api, xhproof, pinba, amazonS3, Rackspace files.
    Написание api v2 для айпад приложения, использование oauth для авторизации.
    Внедрение phpunit тестирования. Покрытие функциональными тестами api.
    Парсер сайтов с использованием PHPQuery, для сбора названий и цен товаров.
    Импорт контактов с помощью google api и facebook api. 
    Использование twitter api и facebook api, для отправки сообщений на стены пользователей через сервер.
    Активность пользователей с группировкой. http://www.clothia.com/pivolan/activity 
    Поддержка и настройка серверов. Mysql (percona), настройка реплики. Настройка и установка окружения. Использование и настройка балансировщика нагрузки, распределение php обработки на несколько серверов. Асинхронные задачи. 
    Установка и настройка распределенной файловой системы glusterfs для хранения файлов.
    Оптимизация запросов mysql.
    Мониторинг активности серверов.
    Работа в SAAS, использование amazon и rackspace хостингов.
    использование php forks для распараллеливания обработки данных.

  • ООО High Technology Center
    Ижевск
    Программист
    Январь 2011 — Январь 2012 (1 год и 1 месяц)

    Участие в команде разработчиков в разработке стартапа - Социальной сети по интересам.
    используемые технологии: php, hbase, svn, memcached, elastics, zendFramework, amazonS3.
    Разработка функционала контроля доступа при обработке событий.
    Внедрение phpunit тестирования.
    Разработка архитектуры универсального хранилища файлов(статики). 
    подключение amazon store для хранения фотографий и статики на amazon.
    Рефактор кода просмотра фотогалереи.
    Участие в команде разработчиков в разработке стартапа. - Социальная сеть по мероприятиям.
    Используемые технологии: php, symfony2, git, mongodb, doctrineMongo, elastics, phpunit, twig, amazonS3.
    web админка для hbase 
    видео альбомы и парсинг видео с внешних ресурсов.
    Функционал мероприятий.
    Регистрация через социальные сети facebook, vkontakte, mailru, twitter.
    Разрабтока системы кэширования запросов в БД. memcache + hbase. Основной функционал.
    разработка базового ядра для системы рейтингов и репутации.
    Фильтры поиска на главной странице сообщений в зависимости от интересов и рейтинга. (elastics)
    Авто репостинг сообщения в социальные сети (javascript api) vkontakte, mail.ru, twitter, facebook.
    Функционал привязки уже существующего аккаунта к внешним социальным сетям mailru, vk, fb, tw.
    Разработка функционала рассылки новостей. Отложенная запись, планировщик задач. Проектирование архитекуры БД под задачу.
    Разработка функционала импорта мероприятий из внешних источников. Парсинг других сайтов (phpQuery).
    Общий механизм создания новостей. Отображение, обновление, создание, удаление.
    Разработка функционала друзей. (Пригласить, отколнить, бан...)

Высшее образование

  • ИжГТУ им. М.Т. Калашникова

    Ижевский государственный технический университет имени М.Т. Калашникова
    Современные технологии и автомобили
    Ноябрь 2007 — Февраль 2012 (4 года и 3 месяца)