---
# System prepended metadata

title: CV

---

# CV

## 2016
- **Sharkdevelop** - занимался всем: от фронтенда до автоматизации деплоев и управления инфраструктурой компании (gitlab, jira, landing). [docker, go, node.js, html, css, vanilla js, ansible, linux]
- Бот для покупки и поиска авиабилетов через Telegram (продан Aviasales) [Go, self-written cache engine, linux]
- Бот для поиска и распознавания музыки по открывку в Telegram. Распознавание работало весьма просто. Голосовое прогоняется через FFT, получается спектр, спектр делится на кусочки некоторой длительности (~1с), каждый из них ищется в обратном индексе по песням, составляется топ совпавших кусочков, берем наиболее вероятный в качестве результата. Писал, поддерживал и развивал самостоятельно, на момент продажи MAU - 160к. [go, c, boltdb, self-written storage engine]

## 2017
- **Cassby** - софт для самодельного кассового оборудования, удаленная работа, поддержка и развитие микросервисов. [go, postgresql, mongodb, leveldb]
- **Selectel** - проектирование и реализация сервисов для облачного хранилища, связанных с доставкой контента. [go, rabbitmq, memcached, linux, redis, lots of self-written engine.]
## 2018
- **Selectel** - исследования БД по части оптимизаций. Разработка сервисов и CLI тулинга для хранилища [go, c, cassandra, postgresql, rocksdb, scylladb, ceph]
- Разработка протокола IKEv2 для уже существующего VPN сервера (softetherVPN) на заказ (странный Си). [c, linux]

## 2019
- **Selectel** - все то же самое, до Июня.[go, c, cassandra, postgresql, rocksdb, scylladb, ceph]
- Попытка пересмотреть задачу византийских генералов и спроектировать асинхронный алгоритм соглашения, без необходимости получать $2f+1$ голосов. Алгоритм должен поддерживать реконфигурации, т.е. работать в динамике. В результате преодолеть FLP теорему не удалось, зато разработан новый CRDT. Записку можно найти на гитхабе.
[go, tex, logic]