01Starline Lite
Приложение для работы с автосигнализацией Starline. Показывает статус авто, открывает и закрывает машину. Также для корректной авторизации создано прокси-API на python-flask, так как API сигнализации вместо токена возвращает cookies, не поддерживаемые на устройстве. Написано на Monkey C.
2022 · Garmin, monkey C, rest, watch, flask
02Ad Notify Manager
Новая генерация системы уведомлений о новых объявлениях. Система состоит из трёх частей: веб-интерфейс, модули парсинга, модули уведомления. Веб-интерфейс позволяет конфигурировать настройки парсеров, подписчиков и удобно распределять запросы между модулями парсинга (инстансами). Модули парсинга запускаются на сервере или удалённом устройстве, выполняют получение данных и отправляют на сервер. Получение данных осуществляется несколькими способами: прямым запросом, прокси или QueryCommunicator. Обработка данных (парсинг) использует Selenium и Firefox. Подсистема уведомления рассылает полученные объявления в нужные каналы или подписчикам (например, в Telegram). Такое разделение позволяет менять отдельные модули (например, смена алгоритма парсинга) и расширять систему при появлении новых источников данных.
2022 · python, django-rest selenium, docker, telegram
03QueryCommunicator
Система распределённых запросов позволяет проксировать целевые запросы и выполнять их через удалённые устройства. Провайдер (любое внешнее приложение) делает запрос к серверу Query Communicator (например, HTTP GET) и ожидает выполнения. Сервер создаёт новое событие для нод (удалённых клиентов); клиенты получают команду, выполняют запрос и отправляют сырой ответ серверу. Провайдер получает данные и обрабатывает их. Ноды — простейшие клиенты, написанные на Python и C++17, которые запускаются на роутерах (кросс-компиляция и отсутствие зависимостей), микрокомпьютерах и других встраиваемых устройствах, имеют динамические IP и потребляют минимум ресурсов. Таким образом запросы от провайдеров могут выполняться одновременно через множество сетей, что обеспечивает обход блокировок. Система имеет авторизацию по Bearer-токену с правами и удобную админку на Django.
2021 · python, django, django-rest, docker, docker compose, c++-17
04AvitoBot
Сайт avito.ru является лидером по размещению объявлений в регионах. Для людей, которые часто занимаются покупкой и продажей авто, важно получать актуальную информацию о новых объявлениях. Авито-бот регулярно выполняет парсинг сайта, анализирует новые объявления и присылает уведомления в Telegram новым клиентам. Парсинг сложного контента сайта выполняет Selenium и Firefox. Для обхода блокировок используются прокси-серверы (не очень эффективно), проект QueryCommunicator и запуск локального проекта на Raspberry Pi. В этом случае проект работает с динамическим IP и минимальным количеством запросов (только для клиента).
2018-2021 · python, selenium, telegram, Raspberry pi
05Bitmexbot
Криптобиржи предоставляют отличное API для торговли роботами. Сложность торговли определяет алгоритм. В данном проекте мы не используем алгоритмы торговли: копируем сделки с целевого аккаунта на slave, используя алгоритм репликации стратегии с нужными коэффициентами в зависимости от баланса на счёте. Получая данные через WebSocket с целевого аккаунта, обеспечиваем быструю работу копирования. Пилотный проект был протестирован на крупной бирже.
2020 · python, websocket, rest api, telegram, docker
06OPC Server UA (open source)
Компания ПСС занималась разработкой систем для терминалов самообслуживания. Одной из частей системы является OPC Server. Ядро сервера распространяется в NuGet-пакете, собранном разработчиками open-source проекта. Наша команда занималась разработкой дополнительных модулей: Web API для удобного доступа, сохранение и загрузка узлов в долговременное хранилище, синхронизация изменений, оптимизация производительности, а также запуск на разных ОС и с разными источниками данных. Многие базовые методы были расширены и оптимизированы. При этом сохранялась полная совместимость с оригинальной веткой, и регулярно обновлялось ядро. В результате сервер отлично справлялся с множеством запросов и имел быстрый отклик, а также сохранил первоначальные протоколы доступа. Наш OPC Server использовался во многих продуктовых решениях.
2018-2019 · С#, ASP Core (web api), RabbitMQ
07Склад. ТСД Client\Server
Автоматизация учёта металла на складе включает в себя разработку программного обеспечения для терминала сбора данных. ТСД — это мобильные устройства со встроенным сканером штрихкода. Устройства позволяли исключить ручной ввод данных, моментально получать информацию о единице учёта, проводить инвентаризацию и другие производственные задачи. Клиент для устройства был написан на C# .NET Compact 3.5 и общался с сервером по SOAP. На производстве существует множество помех для устойчивого Wi‑Fi-сигнала, поэтому терминал умел работать в офлайн-режиме. Регулярно обновляя встроенную базу данных (SQLite), в которой хранилось до 100 000 единиц учёта и атрибутов, а также буферизируя операции, работа для пользователя была незаметна даже при пропадании сети. Система была внедрена на крупном металлургическом предприятии.
2016 · C#, WCF, SOAP, Sqlite, Oracle Database
08DataScales
Система сбора информации с весоизмерительных устройств и контроллеров. Сбор информации осуществлялся при подключении к весам медиаконвертера Moxa NPort в разъём RS232 и последующем транслировании данных в сеть TCP/IP, а также при подключении весов в сеть через встроенные Ethernet-разъёмы и последующем реверс-инжиниринге проприетарного протокола. Система анализировала входные сигналы и формировала историю провесок, а также ретранслировала сырые данные для системы отслеживания металла или мониторинга на удалённом компьютере. Программное обеспечение было успешно внедрено на нескольких производствах крупных металлургических компаний.
2014 - 2015 · С++, Oracle Database, Moxa NPort 5150