Обо мне

Ищу работу с переездом в Европу. 

Профессиональные навыки
PHPPythonGolang
Опыт работы
Свой проект
Москва
Программист
Апрель 2019 — По настоящее время (1 год)

Сервис для управления множеством mail аккаунтов.

backend: golang, rest-layer-openapi.

Frontend: vue, vue element admin.

Реализованы стандартные методы CRUD.

Запуск фоновых задач.

Websockets для realtime логов в интерфейсе.

Используемые технологии: smtp, imap, pop, подключение через tls, ssl, plain. Использование прокси socks5, http. cookiejar, генерация pdf файлов, работа с картинками(фильтры, изменения размера, сжатие, наложение текста). GeoLiteDb.

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
Москва
программист
Январь 2018 — Февраль 2018 (2 месяца)

Разработка смартконтракта для ico.

Участие в разработе смартконтракта криптолотереи.

Работа с биткоин и rpc bitcoin кошелька.

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. Строгое следование стандартам симфони при разработке.

Частная практика, работа без зачисления в штат
Программист
Март 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.

XsltPHPPHPPostgreSQL
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).

Онлайн агрегатор молодых талантливых дизайнеров одежды и аксессуаров из Европы
Ведущий программист
Январь 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.

PostgreSQLDjangoRedisSQLPythonPHPSymfonyMongoDBRestFacebook apiVk api
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 месяца)