LiST
list.family
Python TeamLead
Участие в разработке нескольких проектов (один из которых — аутсорс).
Первый проект связан с криптовалютой. Был как middle разработчик, впоследствии вырос до senior уровня. Были реализованы микросервисы:
* Наблюдатели за транзакциями в блокчейнах — поиск транзакций, связанных с кошельками проектов, и отправка этих транзакций в очередь сообщений.
* Transaction-менеджер — сервис, который принимает сообщения от наблюдателей за транзакциями, считает балансы кошельков в блокчейнах, определяет тип транзакции, к какому пользователю внутри системы та или иная транзакция относится, создает реальные транзакции в блокчейне, и отправляет сообщение в очередь о статусах транзакций.
* Сервис уведомлений: отправка СМС, пушей и почты. Сервис сам менеджит у какого пользователя в приоритетах какой способ доставки уведомлений стоит, а если не получилось отправить приоритетным способом, то пытается отправить запасными вариантами (не получилось отправить пуш, попытка отправить СМС или почтой). В дополнение к этому сервису была написана библиотека, которая унифицирует работу с несколькими почтовыми сервисами для отправки почты, СМС и пушей, и определяет через какой сервис лучше и дешевле всего отправить уведомление (например, СМС для US - twilio, а для стран СНГ - smsc, определение какой провайдер лучше - по номеру телефона).
* Сервис нарезки картинок — нарезает и сжимает картинки на размеры поменьше для превьюшек на главной и странице с квартирами.
Разработка библиотек. Одна из библиотек в open-source — NSQ клиент (https://github.com/list-family/ansq). Еще библиотек 5 — внутренние, которые может быть когда-нибудь откроют всему миру =)
Из интересного еще:
- Нашел немного багов, ошибок, недочетов в EOS Hyperion State History, по моим репортам были многие баги исправлены.
- Делал различные скрипты для мониторинга/алертов (prometheus, Telegram, Discord).
- Планировал архитектуры проектов, микросервисов, процессов.
- Проводил код-ревью.
- Выстраивал процессы разработки, CI/CD, люблю на полставке подработать девопсом с:
- Наставничество менее опытных коллег.
========
Второй аутсорс проект был на полгода.
Был в роли тимлида. Выработал в компании адекватный процесс разработки:
Flow задач, Git Flow, написание документации, CI/CD. Набирал команду разработчиков и девопсов (одного) под моим началом. Обучал джуниор разработчиков (из тех, которые были до меня) стеку и best practice в целом. Ставил разработчикам и девопсу задачи, контролировал их выполнение.
Разработка парсеров для определенных больших сайтов (соцсети, форумы). Самое сложное и интересное - продумывание и реализация способов обходов блокировок по количеству запросов с одного IP, по количеству запросов с одного аккаунта, по ограничению количества новых IP на каждый аккаунт и прочее.
В итоге парсинг ссылок ускорился с 10.000 до ~100.000.000 в день. А затраты на сервера и инфраструктуру в целом выросли всего лишь с $50 до $200.
Python 3.8, asyncio, aiohttp, GraphQL, Gino, alembic, NSQ, pytest, PostgreSQL, MongoDB.