Обо мне

Хобби проекты:

  1. ApproxEngine: Кросс - платформенный 3D рендерер на Direct3D11 и Vulkan. GUI на Qt 5. Встроенная среда разработки шейдеров, с возможностью привязки к переменным движка (напр. MVP матрица, вектор источника освещения) и объявлением собственных параметров и текстур. Никаких библиотек или фреймворков кроме вышеперечисленных и стандартных не использовалось. В текущем коммите - не работоспособен, так как пока не весь функционал портирован, сильно менялась архитектура и нарушена совместимость с Windows, но новая архитектура позволит без проблем её вернуть.
  2. book_site: Сайт для продажи книг. Не коммерческий проект, делался с другом для освоения технологий. Сайт построен по принципам REST SPA с использованием AngularJS на front-end и Django + DjangoRestFramework + MySQL на back-end. Для демонстрации есть сервер на raspberrypi на nginx и uWSGI, ссылка
  3. SIDE-tech: Среда разработки с высокой степенью интеграции на базе LLVM. Пока на ранней стадии (менее одного месяца разработки). Текущая цель проекта - обеспечить возможность построения в реальном времени интерактивного графа вызовов функций в 3D. Конечная цель - обеспечить полный набор функционала разработки ПО в исключительно визуальном представлении: граф вызовов, граф ссылок, data flow, dependency graph, concurrency graph. Система будет анализировать потенциально опасные места в коде и отображать их в соответствующем виде. Также, возможно будет функционал интеграции методологий разработки ПО и паттернов проектирования в сам процесс разработки на уровне IDE. Планируется предоставить альтернативу стандартному типу UI, c навигацией по проекту в структурированном 3D пространстве. В теории будет поддержка всех языков, поддерживаемых LLVM. По достижении намеченных целей по интеграции с LLVM, возможна интеграция с open-source браузерами и JS движками для поддержки разработки на JavaScript. В качестве подсистемы визуализации буду использовать свой первый проект, который в данный момент я портирую на Linux и Vulkan API. Вся система планируется быть кросс-платформенной (Linux + Windows).
  4. MosaicFramework: Текущий проект. Для проекта SIDE-tech, решил создать фреймворк, который будет снижать сложность проекта за счет модульности, разбивая приложение на компоненты, общающиеся между собой вызовами и обработками событий, сами модули можно будет писать на С++, D, Python, JavaScript и, возможно, Haskell. Модули смогут взаимодействовать как и в едином процессе, так и в разных процессах и на разных машинах, даже с разными архитектурами, через разные протоколы (json-rpc, http, msg-pack ...), при этом, если модули находятся в одном процессе, то они взаимодействуют напрямую через легковесный (zero overhead) интерфейс вызова и диспетчеризации событий, что позволяет сохранять производительность. Фреймворк предоставляет унифицированный интерфейс вызова и событий всегда, таким образом, чтобы переместить один модуль из процесса на отдельную машину, не потребуется изменять клиентский код, только конфигурационный файл приложения.

Дипломная работа:

Написание канала связи между ЧПУ и ПЛК (CoDeSys) на основе TCP/IP. На стороне ЧПУ C++ на стороне ПЛК ST (Structured Text).

Профессиональные навыки
C++ C++ stlQtDirectxGitPythonPostgreSQLLinuxJavaScriptAngularJS
Опыт работы
Март 2016 — по настоящее время (1 год и 5 месяцев)
Flexbby Solutions
Разрабочик ПО (Python, JavaScript)
Долгопрудный
Обязанности и достижения
Прикладное программирование CRM системы. Back-End: Разработка бизнес - логики на Python и работа с PostgreSQL. Front-End: Интерфейс на XML и JavaScript.
Август 2015 — Январь 2016 (5 месяцев)
Младший инженер программист C++
Долгопрудный
Обязанности и достижения
Работал в ООО "Лаборатория Электронных Учебников", состоявшей в Paragon Software Group. Участвовал в разработке обучающего ПО для школ: 3D приложение на основе движка Ogre3D для интерактивных лабораторных занятий по стереометрии и приложение для занятий по аглебре.
Высшее образование
Сентябрь 2011 — Июль 2015
МГТУ "СТАНКИН"
Информационных технологий (ИНТЕХ)
Москва