Алексей Некипелов

Email: alex@nekipelov.net.
Год рождения: 1983.

Что мне интересно

Основной язык програмирования: rust или C++.
Linux или unix совместимые операционные системы.
Разработка backend части сервисов, высоконагруженных и отказоустойчивых серверов.
Работа с большими данными (но не ML).
Работа вне России и зарплата в стабильной валюте. Удаленно или с релокацией.

Ключевые навыки

Опыт работы

Wildberries

https://www.wildberries.ru/services/o-nas
Team lead, команда разработки на rust
Апрель 2020 - настоящее время

Собрал с нуля команду разработчиков на rust и front-end. Вместе мы сделали следующие вещи:

1. Система видеонаблюдения для десятков тысяч камер. Она потребляет видео поток с камер, пишет архив видео (несколько месяцев, на сколько хватает места на серверах выделенных под хранилище), предоставляя удобную и быструю навигацию по архиву: выбор любого момента времени, скриншоты на timeline, ускоренное воспроизведение, экспорт куска видео для разбора инцидента. Просмотр live трансляций с камер через webrtc. Аутентификация и контроль доступа к камерам и каталогам.

2. Следующим проектом мы делаем объектное хранилище с S3 протоколом для огромного количества статики. Ключевые требования от руководства:

На данный момент хранилище находится на этапе тестового внедрения.

Используемые технологии: rust (почти все компоненты написаны на этом языке), С++ (немного, только часть системы видеонаблюдения работающая непосредственно с видео, rtsp и webrtc), clickhouse, postgresql, rtsp, webrtc.
Платформа: Linux

Mail.Ru Group

https://corp.mail.ru/
Team lead, команда антиспама
Октябрь 2015 - Апрель 2020

Работал над системой агрегации логов действий пользователей (для offline анализа математиками), аналог scribe с дополнительными возможностями. Поток больше 10 Гб логов в минуту.

Работал над системой агрегации статистики поведения пользователей (для использования сервисами в real-time). Система агрегировала и выдавала информацию по действиям каждого пользователя, каждого ip адреса, домена, отправителя и получателя. Миллионы событий каждую минуту.

Работал над ядром системы антиспама. Ядро представляет из себя клиент-серверное приложение, принимающее сообщения от клиентов для анализа на спам/не спам с помощью бизнес логики, написанной командой аналитиков на языке lua. Оно обслуживает проекты Почта, Мой Мир, Mail Агент, ICQ, Юла, поток сообщений в десятки тысяч сообщений в секунду, один только главный сервис работал на нескольких сотнях серверов. Мы анализировали большое количестве информации, например:

Помимо спам/не спам эта система должна была выполнять и продуктовые задачи, например группировка писем (личная переписка, социальные сети, рассылки, заказы), выявление полезной информации из писем для удобства пользователя (номер заказа, или авиа-билета). Детект фактов фишинга. При этом очень строгие временные рамки, допустим на сообщения ICQ 15-30 мсек, на письма не больше 300 мсек в среднем. Иначе будут серьезные технические последствия.

Проделал много работы по оптимизации всех сервисов, повышению стабильности и качества кода, внедрил Continuous Integration. Спроектировал большое количество новых сервисов.

Используемые технологии: C++, memcached, tarantool, redis, mysql, lua, hadoop, hdfs, hypertable, kafka.
Платформа: Linux

ООО "Спутник"

http://corp.sputnik.ru
Team lead, команда разработки сервисов
Декабрь 2013 - Октябрь 2015

Первое время: участие в разработке backend-части множества сервисов (погода, афиша, тв-программа, финансы) для поисковой системы Спутник.

Через 4 месяца: team lead сервисов "Лекарства" (med.sputnik.ru) и "Мой дом" (dom.sputnik.ru).

Через год: team lead проекта считающего алгоритмы ранжирования (например Page Rank) на ссылочном графе (миллиарды вершин, триллионы ребер, кластера из десятков машин) и проекта поисковых виджетов (фильмы, персоны, рецепты, праздники).

Руководство командой программистов, участие в создании процессов деплоя и тестирования. Пропагандирование множества полезных практик: юнит-тестирования, непрерывной интеграции, переход на git, подход pull-request с pre-commit ревью кода и т.д.

Технологии: С++, hadoop, yarn, hdfs, hbase, zookeeper, redis, postgresql, map-reduce
Платформа: Linux

LLC "Vipole"

https://www.vipole.com/en/
Ведущий программист
Март 2012 - Ноябрь 2013

Проектирование и разработка сервера для программы, основной функцией которой является обмен мгновенными сообщениями, видео, аудио звонки (в том числе и на стационарные телефоны) и конференции. От множества других подобных программ эта отличается полным шифрованием на стороне клиента.

Работа в этой компании я сделал:

Технологии: C++, асинхронность, redis, mongodb.
Платформа: Linux.

ООО "ЕМЕ"

http://www.eme.ru, http://www.eme-wms.ru
Team lead
Апрель 2005 - Март 2012

Разработка и проектирование ядра ERP (WMS, CRM) системы EME DB. Система является клиент-серверной распределенной платформой и включает в себя базу данных, HTTP сервер, редактор диалогов, внутренний язык программирования, система SQL-подобных запросов, генератор отчетов. Более подробная информация о системе доступна на сайте http://www.eme-wms.ru/.

2005 - 2006 Участие в различных проектах по автоматизации торговой, риэлторской и рекламной деятельности. Руководитель проекта по организации хранилища документов для крупной строительной компании. Участие в разработке ядра системы.

2006 - 2012 Руководитель команды разработки ядра системы. Поддержка старого кода (3 млн. строк), написание нового. Выполнено большое количество задач: оптимизация многий функций, написание профайлера для ядерного и прикладного кода, система тестирования интерфейса и записи действий пользователя, портирование программы на ОС Linux. Разработка Web приложений как для внутреннего использования, так и для клиентов.