Лучшие практики по работе
с молодыми специалистами

🧑🏼‍💻 Исследование Manifesta Agency и Хабра о том, как компаниям привлекать, нанимать и удерживать молодых специалистов без мифов о капризных зумерах

→ Посмотреть исследование

Даниил Солопов (dan_sw), 25 лет, Россия, ИркутскДаниил Солопов (dan_sw), 25 лет, Россия, Иркутск
V.O.I.D. ProgrammerSoftware EngineerСредний (Middle)
От 200 000 ₽Не ищу работу

Контакты

Войти
Возраст: 25 лет
Опыт работы: 5 лет и 4 месяца
Регистрация: 18.12.2022
Последний визит: 4 дня назад
Гражданство: Россия
Местоположение: Россия, Иркутск
Дополнительно: готов к переезду и к удаленной работе
Знание языков: Русский родной языкАнглийский А2

Навыки

Выберите навык, чтобы посмотреть, какие тесты специалист уже прошел.

C++
Python
C
Cuda
Rust
Cmake
Библиотека стандартных шаблонов
Linux
Windows API
Win32 API
Git
PyTorch
NumPy
MatPlotLib
Pandas
TensorFlow
OpenCV
Компьютерное зрение
Qt
Алгоритмы и структуры данных
ООП
Базы данных
Параллельное программирование
middle
Системное программирование
PostgreSQL

Опыт работы

  • ООО ОБ "СОКРАТ"
    Иркутск
    Инженер-программист
    Октябрь 2024 — По настоящее время (1 год и 8 месяцев)

    Разрабатываю производительное серверное приложение на C/C++ (с нуля), предназначенное для обработки больших объёмов статистических данных в режиме реального времени.

    Приложение работает в production-среде на трёх операционных системах: Windows, Ubuntu и Astra Linux, что потребовало полноценную разработку кроссплатформенной архитектуры (и учёта особенностей каждой из ОС). 

    Данное приложение значительно ускорило получение пользователем необходимых данных для принятия решений. Например, в период "за месяц" пользователь получает все необходимые данные за 10-30 секунд, вместо 40-60 минут, при использовании аналогичного решения (legacy desktop-приложения). 

    Ключевые достижения:

    1. Спроектировал и реализовал многопоточную архитектуру обработки бинарных данных, обеспечивающую максимальную пропускную способность и минимальную задержку при обработке больших массивов бинарных данных;
    2. Увеличил пропускную способность пайплайна обработки данных на ~90% и снизил latency за счёт переработки модели конкурентности и батчирования операций;
    3. Разработал кроссплатформенный слой абстракции над системными API (epoll/IOCP, threading), обеспечив единый интерфейс для Linux и Windows;
    4. Интегрировал приложение в существующую экосистему серверных приложений проекта: настроено асинхронное взаимодействие по сети (TCP/UDP,) и передача вычисленной статистики веб-интерфейсу, через цепочки сообщений;
    5. Автоматизировал сборку и развёртывание с помощью CMake (с поддержкой разных toolchain), обеспечив воспроизводимость билдов на разных целевых платформах.

    В рамках проекта сталкивался с не тривиальными проблемами, на основе которых написал статью на Хабре:

    1. Разработка служб для Windows на C++
        Инженер-программист
        Октябрь 2023 — По настоящее время (2 года и 8 месяцев)

        Участвую в разработке и поддержке ключевых модулей веб-приложения с высоконагруженным и динамичным пользовательским интерфейсом. Веб-приложение используется пользователями по всей России и в странах СНГ.

        Проект ориентирован на управление охранно-пожарной системой Приток (полноценная СКУД, управление и настройка оборудования, редактирование планов, администрирование и получение различной статистической информации). 

        Веб-приложение активно взаимодействует с большими массивами данных (например, таблицы с сотнями тысяч или даже миллионами записей), которые необходимо быстро и удобно выводить на экран (динамическая / виртуальная пагинация). 

        Проект нацелен на постепенное предоставление альтернативы уже существующим desktop-приложениям, с более классическим интерфейсом и механиками. В рамках проекта получил опыт переноса уже существующих элементов системы (написанных на Delphi) в веб, с активным использованием библиотек D3.js и Konva.js,для работы с графикой (в частности, разработал полноценный 2D редактор и просмотрщик планов).

        Основные достижения
        :

        1. Реализовал эффективную обработку и отображение больших массивов данных (сотни тысяч записей) с помощью динамической и виртуальной пагинации, что позволило сохранить плавную работу веб-интерфейса. Оптимизировал как обычные таблицы, так и выпадающие списки содержащие большое количество записей. Добавил сложное UI-взаимодействие с виртуальными таблицами и выпадающими списками;
        2. Внедрил нестандартные интерактивные функции, значительно расширившие возможности веб-приложения и повысившие пользовательский опыт;
        3. Разработал комплексные кастомные UI-компоненты с продвинутой и масштабируемой логикой, включая интеграцию с D3.js и Konva.js для работы с 2D-графикой. Внёс значительный вклад в создание внутренней библиотеки UI-компонентов;
        4. Активно участвую в командной разработке: code review, управление ветками в Git (активно внедряю конвенцию коммитов), тесное взаимодействие с backend-разработчиками (в частности параллельно выступаю backend-разработчиком отдельного сервиса обработки статистической информации);
        5. Реализовал полноценный 2D редактор (и просмотрщик) планов прямо в браузере веб-интерфейса на основе Konva.js, заменяя уже существующее legacy desktop-приложение. Активно работаю над интеграцией просмотра созданных планов в Qt (QtWebChannel) и Delphi (Event Listeners) desktop-приложения, а также в другие веб-приложения (через iframe);

        Разработка крупного модуля веб-редактора 2D схем планов на базе Konva.js (обёртка вокруг Canvas API):

        1. Построил архитектуру веб-редактора полностью с 0, оптимизировав узкие места при рендеринге большого количества графических примитивов;
        2. Реализация механизма динамичного создания различных графических примитивов (по аналогии с Libre Office Drawer), их редактирования и удаления;
        3. Внедрил механизмы Copy / Paste и Undo / Redo с кастомным высокопроизводительным ядром (оптимально фиксируются любые изменения на странице с помощью подхода Diff-Patch-Apply, Immer);
        4. Добавил широкие возможности позиционирования относительно контентной области и реализовал удобную навигацию по большому множеству графических примитивов на холсте;
        5. Разработал отдельное Singe HTML Page приложение с помощью React.js / Vite для просмотра планов и поддержал его интеграцию в стороннее веб-приложение (через iframe), desktop-приложение на Qt (через QWebChannel) и Delphi (Event Listeners, объектная интроспекция).

        В рамках проекта сталкивался с не тривиальными проблемами, на основе которых написал статью:

        1. Особенности обработки native events в React.js
      1. Частная практика, работа без зачисления в штат
        Fullstack Engineer
        Июнь 2023 — Март 2024 (10 месяцев)

        Реализовал ряд коммерческих и стартап-проектов "под ключ" - от проектирования архитектуры до развёртывания и поддержки. Работал как с полным циклом разработки (frontend + backend), так и с интеграцией в существующие системы.

        Ключевые проекты:

        1. Платформа видеочата с монетизацией контента
          Разработал full-stack решение для платформы видеочата (аналог Discord) с возможностью покупки тематического контента. Реализовал WebRTC-соединения, обмен сообщениями через Socket.IO, а также клиентскую и серверную логику управления подписками и контентом.
          Технологии
          : JavaScript, TypeScript, Node.js, React, Redux Toolkit, MUI, SCSS, PostgreSQL, Sequelize ORM, WebRTC, Socket.IO;
        2. Маркетплейс дверей с админ-панелью
          Создал веб-приложение для размещения, продажи и покупки дверей, включая полнофункциональную админ-панель и полностью адаптивный интерфейс под все основные экраны мобильных устройств. Отвечал за обе части приложения — от API до пользовательского интерфейса.
          Технологии
          : TypeScript, JavaScript, Node.js, React, Redux Toolkit, MUI, SCSS, PostgreSQL, Sequelize ORM;
        3. Онлайн-дневник на основе внешнего API
          Интегрировал сторонний API для отображения персонализированных данных в веб-интерфейсе дневника. Выполнил доработку серверной части, написанной на Nest.js, и реализовал клиентское приложение с удобной навигацией и визуализацией данных.
          Технологии
          : TypeScript, React, Redux Toolkit, MUI, SCSS, Nest.js (частичная доработка);
        4. Стартап онлайн-презентаций
          Разработал MVP веб-платформы для создания, редактирования и просмотра презентаций прямо в браузере. Реализовал базовую систему хранения, совместного доступа и рендеринга слайдов.
          Технологии
          : JavaScript, Node.js, React, Redux Toolkit, MUI, SCSS, PostgreSQL, Sequelize ORM.

        Ссылка на профиль fl.ru: https://www.fl.ru/users/swdanov/portfolio/

      2. Solar Snow Light
        Иркутск
        Fullstack Engineer
        Февраль 2021 — Сентябрь 2023 (2 года и 8 месяцев)

        В роли Fullstack Engineer успешно завершил реализацию трёх комплексных IT-проектов, охватывающих веб-, мобильную и серверную разработку. 

        Отвечал за архитектурные решения и управление командой разработчиков (состоящую из 4-х человек уровня Junior+).

        Ключевые достижения и компетенции:

        1. Разработка микросервисных систем: проектирование и реализация масштабируемых решений на стеке Go (Gin-Gonic), JavaScript/TypeScript (Node.js, Express.js), с использованием PostgreSQL и REST API (как правило проекты "под ключ");

        2.  Frontend-разработка: создание современных веб-приложений на базе React.js с применением Redux Toolkit, React Router, SCSS и best practices по производительности и UX;

        3. Мобильная разработка: разработка нативных Android-приложений на Kotlin с использованием MVVM-архитектуры; один из проектов опубликован в RuStore;

        4. Интеграция платежных систем: реализация функционала подписок и покупок через API ЮKassa с гибкой системой управления контентом через админку на вебе;

        5. Проект недвижимости: создание MVP-версии площадки для аренды и продажи жилья — от бэкенда (Go + Gin + PostgreSQL) до фронтенда (React + Redux Toolkit).

        В ходе своей работы сталкивался с решением различных интересных задач, о которых написал статьи на Хабре:

        1. Назад в будущее: как поставить на поток документирование и анализ PHP проекта 10-летней давности
        2. Документирование API сервисов с помощью Swagger на примере фреймворков Express.js и Gin
        3. Микросервисная реализация объектно-ориентированных баз данных

      Высшее образование

      • Институт информационных технологий и анализа данных
        Сентябрь 2023 — По настоящее время (2 года и 9 месяцев)
        Институт информационных технологий и анализа данных
        Сентябрь 2019 — Июль 2023 (3 года и 11 месяцев)

        Получил академические знания в области компьютерных наук. Углублённо изучал программирование на языках C++C#, JavaJavaScript и SQL. Разработал на данных языках программирования множество программ различной степени сложности. 

        Во время прохождения практик занимался разработкой приложений на C, Kotlin, JavaScript. Один из проектов вылился в стартап, над которым работал длительное время и благодаря которому получил первую работу в компании и коммерческий опыт разработки.

        В ходе выполнения курсовых работ разработал множество систем, включая систему симуляции поведения частиц (ссылка на GitHub), систему распознавания номеров полувагонов (ссылка на GitHub), систему для работы с объектно-ориентированными базами данных на языке C# (статья на Хабре), мобильный 2D-платформер с помощью библиотеки LibGDX (ссылка на GitHub), систему для работы с файлами на C# (ссылка на GitHub).

        В рамках обучения получил опыт разработки на Java с использованием JavaFX и JDBC (ссылка на GitHub), опыт разработки на C# с использованием MSSQL (ссылка на GitHub), опыт разработки сервера на ASP.NET Core (ссылка на GitHub), опыт работы с языком VBScript (ссылка на GitHub) и самостоятельно выполнил множество лабораторных работ по разным учебным дисциплинам (ссылка на GitHub).

        На 2-ом курсе обучения в ВУЗе принял участие в соревновании WorldSkills по компетенции "Программные решения для бизнеса", в рамках которого требовалось разработать систему для управления заправочной станцией. В ходе решения задания я разработал 3 desktop приложения на C# и .NetFramework, а также серверное приложение с помощью Java и Spring Boot (ссылка на GitHub). После подведения итогов соревнования занял 1-ое место (ссылка на диплом).

        Углублённо изучил курс имитационного моделирования, в ходе которого на практике использовал программу AnyLogic (ссылка на GitHub).

        Изучил курс компьютерной графики, в ходе которого мной были созданы 3D-модели в Blender, запрограммирована графика на JavaScript, и написаны скрипты на Processing (ссылка на GitHub).

        Изучил курс по основам нейронных сетей, в ходе которого мной были разработаны блокноты для решения задач аппроксимации функций 3-го порядка (ссылка на GitHub) и распознавания символов, с разными подходами (ссылка на GitHub).

      Дополнительное образование

      • Stepik

        Санкт-Петербург9746 выпускников
        Нейронные сети и обработка текста
        Сентябрь 2021 — Май 2022 (9 месяцев)

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

        Нейронные сети и компьютерное зрение
        Сентябрь 2021 — Май 2022 (9 месяцев)

        Разработал множество лабораторных работ с нейронными сетями по компьютерному зрению.

      • IT Академия Samsung

        Мобильная разработка
        Сентябрь 2020 — Май 2021 (9 месяцев)

        Изучил особенности разработки мобильных приложений под платформу Android на языке программирования Java. Получил понимание XML-вёрстки мобильных приложений (Constraint Layout, Relative Layout, LinearLayout и др.). Изучил работу с LiveData, получил опыт практического применения паттерна Observer и EventBus. Получил понимание разработки MVVM архитектуры для мобильных приложений. 

        В качестве дипломного проекта разработал игровое мобильное приложение (2D-платформер) с помощью фреймворка LibGDX (ссылка на GitHub).

        Успешно сдал все тестовые задания и контрольные работы, в рамках которых подтвердил на практике изученные материалы.