Читаете ли вы блог Хабр Карьеры? Если да — оцените, как мы справляемся. А если нет — расскажите, что читаете для развития карьеры. Пройти опрос (займет 5-7 минут)
Обо мне

Богатый опыт в алгоритмической реализации различных задач, проектирование систем, оптимизация кода, верстка интерфейсов и т.д.

Основные навыки/технологии: JavaScript, Node.JS, Golang, GRPC, JSON, Protocol Buffers, SPA, React.JS, GraphQL, CSS3, SASS, Responsive Web Design, Webpack, ООП/ФП/РП, Linux, Docker, NPM, GitHub, GitLab, WebSocket, SQL, NoSQL, AMQP.

Также имею опыт: Lua, Angular.js, Subversion, PHP, IndexedDB, MySQL, ReasonML, Clojure, Java, Android, React Native, Nginx, OAuth2, IPTV, BGP, TCP/IP, IGMP.

Участие в профессиональных сообществах
Опыт работы
Разработка p2p vpn, видео cdn нового поколения, блокировка цензуры в интернете
R&D Engineer
Сентябрь 2019 — По настоящее время (11 месяцев)
ООО "Рекоммендер"
Краснодар
Tech-lead
Декабрь 2018 — Август 2019 (9 месяцев)

My responsibility was to carry out the entire development process, including:

  • planning the scope of work
  • integration of better solutions
  • training of Juniors
  • key technical decisions

The first project here was the API-gateway called Carbon. Its main purposes are reverse proxying, gRPC routing, request multiplexing, caching, request tracing, access control, etc. This solution consists of two mandatory parts: a proxy-server and a client library providing protocol support. A notable feature is that the proxy routes gRPC requests with NO awareness of proto-schema. This allows you to deploy any number of services behind a gRPC-proxy without rebuilding or even restarting the proxy. All you need is to update routing-configuration in etcd and the proxy automatically applies it on the fly.

The challenge was to adapt the client library to apollo-graphql. The idea was to write a graphql-schema only, the rest of the work is done by the Carbon system. No graphql-server, no resolvers, etc. We succeeded.

Another interesting part of the project was an attribute-based access control over the API-gateway. We implemented it as a plugin for the Carbon proxy-server. The plugin receives instructions (aka bytecode) and executes them on each request. Instructions are generated by the acconf, a CLI program that compiles a human-readable config into executable instructions.

It has much more great features and notable details. I've talked about some in general terms.

Proxy-server is written in Golang, client library and graphql binding are javascript packages written in Typescript. The configuration compilers are written in Golang and Typescript.

I had a small team, so I wrote about 40% of the code myself.

The main project is a large website with backend on microservices and frontend SPA on React.js. We used here: Go, Kafka, gRPC, Minio, GraphQL,, etc. and for webapp: ReactJS, Apollo Stack, Webpack, TypeScript, server-side-rendering on NodeJS.

Программист, проект-менеджер
Май 2016 — Май 2018 (2 года и 1 месяц)

Разработка back-end, front-end, проектирование API, проектирование БД, разработка подходов, подбор технологий, реализация интернет-проекта.

Менеджмент по методологии agile, курирование работы отдела разработки.

P2P платформа для доверительного управления
Software Engineer
Май 2018 — Декабрь 2018 (8 месяцев)

Design, development, and implementation of applications using NodeJS, NoSQL, DigitalOcean cloud environment.

Build internal systems and support business needs.

ООО "Оргтехсервис"
Майкоп
Администратор сети, программист
Август 2011 — Май 2016 (4 года и 10 месяцев)

- Администрирование Linux серверов, сетевого оборудования, программных и аппаратных маршрутизаторов операторского класса.

- Управление тарифами услуг (биллинговая система UTM5), администрирование серверов биллинга.

- Разработка приложений мониторинга и управления сети.

- Написание модулей сайта администрирования (PHP, JS), расширение функционала сайта, написание серверных скриптов.

- Проектирование БД (mysql)

- Настройка, обслуживание оборудования видео стриминга

Высшее образование
Адыгейский государственный университет; АГПИ
Майкоп
Факультет: Математический
Сентябрь 2012—Июнь 2016 (3 года и 9 месяцев)
Специализация: системное программирование