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

For a foreign employer: https://github.com/5aboteur/resume

*  *  *

Сам не похвалишь — никто не похвалит!

Достаточно ответственен и самостоятелен, быстро адаптируюсь к новым технологиям. Имею разношёрстный опыт работы, попробовал себя в gamedev, в embedded-разработке, сейчас погружён в web (тут и планирую остаться). Дружелюбный, легко иду на контакт, всегда рад помочь и поделиться знаниями (того же жду и от других людей).

Back-end

  • Kotlin / Java 8 — написание простых (и не очень) web-приложений на Spring-Boot с нуля; поддержка готовых решений, построенных на микросервисной архитектуре.
  • JUnit 5 / MockK — люблю писать тесты, но времени на них не дают.
  • Async (Spring WebFlux, Kotlin Coroutines) — in progress ...
  • Python — Telegram-боты, интеграция с GitLab, parsers, web crawlers, всё как полагается. Плюсом к этому дважды поддерживал ужаснонаписанные сервисы, нарушающие все принципы разработки ПО (должен же был этим кто-то заниматься).
  • Работа с базами данных различного типа: реляционные — PostgreSQL, встраиваемые — SQLite, столбцовые — ClickHouse; NoSQL — ArangoDB.

Front-end

  • Базовое владение HTML / CSS, пример вёрстки и дЕзайна можно посмотреть на моём сайте-визитке.
  • JavaScript / TypeScript — coming soon ...

System

  • Системное и сетевое программирование на языке C, работа с сокетами, файловой системой, драйверами, вот это вот всё (в прошлом).
  • Имею базовое представление об архитектуре процессоров, знаю что такое кэш, и как он устроен, и понимаю в каких случаях ArrayList может оказаться выгоднее чем LinkedList (и наоборот).
  • Основы многопоточного и асинхронного программирования (mutexes, semaphores, events), когда-то даже притрагивался к lock-free структурам данных и транзакционной памяти.
  • В своё время досконально разбирался в основных протоколах TCP / IP стэка.
  • Linux shell, scripts etc.

Infrastructure

  • Упаковываю в docker.
  • Пушу в git.
  • Отправляю в k8s.
  • Ну а дальше в этой ситуации я просто наше, это самое, я уже, здесь мои полномочия всё, окончены.

TODO

Активнее изучать английский язык. Детальнее углубиться в объекто-ориентированный дизайн, прокачаться в проектировании архитектуры высоконагруженных систем. Познать дзен профилирования и оптимизации приложений, пощупать внутренности JVM — работа с памятью, устройство GC и т.д. (тяжело не залезть сюда, когда ты бывший системщик) Более тщательно изучать английский язык. Попробовать себя в  JavaScript / TypeScript, если понравится, то вырасти в Full-Stack разработчика, впоследствии в TL. Узнать подробнее про штуки типа AWS, GCP, продолжать развивать навыки системного и сетевого администрирования. В общем, планов много, времени как всегда... да, и чуть не забыл — максимально подробно изучать английский язык.

З.ы.

Хочу отметить, что всё вышеперечисленное не хранится в моём личном кэше в голове постоянно. Я обычный человек, могу что-то забыть, упустить из виду, неправильно понять. Если я работал с технологией "Х" — это не значит, что я досконально её знаю. Если я работал с технологиями "Х" и "Y" — это не значит, что я знаю их на одном уровне. На третью технологию додумайте сами.

*  *  *

Привет всем дочитавшим! ( ͡° ͜ʖ ͡°)

Профессиональные навыки
Участие в профессиональных сообществах
Опыт работы
Системный проектировщик
Февраль 2020 — Июль 2020 (6 месяцев)

Проект

Участие в разработке Anti Money Laundering системы, предназначенной для прогнозирования поведения клиентов и выявления сомнительных операций для банков. Система построена на микросервисной архитектуре и предполагает работу с большими данными под высокой нагрузкой.

Достижения:

— участие в проектировании нового функционала продукта;
— проведение обучений, командировочная активность, опыт удалённой работы.

Системный программист
Август 2019 — Февраль 2020 (7 месяцев)

Достижения:
— добавление функционала и исправлений в сервисы и библиотеки системы, написанных на разных языках программирования (Java, Kotlin, Python);
— интеграция механизма миграции/конвертации данных для ArangoDB;
— реализация загрузки данных из файлов формата .xml, .xlsx в ArangoDB;
— формирование конфигурационных файлов для онлайн-мониторина в банках (Газпром, Уралсиб, Руснар, Веста, Таврический);
— ревью кода и тестов, рефакторинг;
— вклад в локальную Wiki.

Разработка и производство телекоммуникационного оборудования
Инженер-программист
Январь 2019 — Август 2019 (8 месяцев)

Проект

Работа с программной частью маршрутизаторов серии ME5K (добавление нового функционала, решение оптимизационных задач, поиск и исправление проблем, рефакторинг кода).

Достижения:
— разработка сервиса, предназначенного для инсталляции маршрутов в ОС посредством netlink-сокетов;
— установка маршрутов на backup-плате для обеспечения отказоустойчивости системы;
— написание shell-скриптов и программных утилит для проверки целостности основной файловой системы посредством initramfs;
— усовершенствование сервиса для мониторинга занятости ресурсов системы, написанного на Python.


Помимо прочего, в данной компании были получены навыки по ведению отчётности о проделанной работе.

Сибирский государственный университет телекоммуникаций и информатики
Ассистент преподавателя
Февраль 2018 — Июнь 2018 (5 месяцев)

Вид деятельности

Педагогическая практика по получению профессиональных умений и опыта профессиональной деятельности (дисциплина "операционные системы").

Основные обязанности:
— обучить студентов младших курсов основам работы в среде Linux;
— научить писать простые shell-скрипты;
— дать базовое представление об архитектуре ядра Linux.


В процессе работы детально изучил анатомию ядра Linux (device drivers, IPC, I/O devices, memory management, networking, VFS, etc.).

Friday's Games
Новосибирск
Младший разработчик C++
Октябрь 2017 — Декабрь 2017 (3 месяца)

Проект

Участие в разработке проекта Farmscapes. Во время стажировки в данной компании я получил первый опыт работы в команде, изучил основы программирования на C++ и базовые принципы ООП.

Достижения:
— переработка игрового окна и добавление в него нового функционала;
— добавление новых возможностей в редактор карт.

C++C++ stlSVNCmakeJira
Высшее образование
Сибирский государственный университет телекоммуникаций и информатики
Новосибирск
Факультет: Информатики и вычислительной техники (ИВТ)
Сентябрь 2012—Июнь 2018 (5 лет и 9 месяцев)