Контакты

Андрей Кушнир

Почта
me на этом домене
Fediverse
@orhideous@twilight.garden
Matrix
@orhideous:twilight.garden
Telegram
orhideous
Телефон
+380671387767

Что умею

  • создавать и доставлять продукты для нужд бизнеса и клиентов;
  • понимать контекст бизнеса, его доменную модель и охватывать взглядом общую картину;
  • быстро учиться, читать документацию для фреймворков/API/сторонних сервисов/etc;
  • оформлять мысли в виде удобных заметок и технической документации;
  • оценивать «за» и «против» для принятия наиболее рационального решения;
  • из разрозненных кусочков информации собирать когерентную картину по работе сервиса или процессов в целом;
  • отстаивать свое мнение в дискуссии, подкрепляя его аргументами, а не эмоциями.
  • тестировать свой, а при необходимости и чужой код;

Умения

Что знаю, что делал и с чем работал

Python

  • хорошо знаю язык и экосистему вокруг него, включая фреймворки (Pylons, Django, Flask, aiohttp, FastAPI) и распространенные библиотеки;
  • работал с асинхронным кодом;
  • для критичных к скорости вычислений интегрировал расширения на С/Сython;
  • разбираюсь в ORM, знаю их недостатки и преимущества (создавал поддержку диалекта для ClickHouse)
  • мигрировал и рефакторил большие кодовые базы;
  • выделял микросервисы из монолитов.

Scala

  • использовал язык и как «better Java», и как «worse Haskell"»;
  • понимаю концепты функционального программирования и использую их на практике;
  • имею опыт работы с экосистемой cats, чуть меньше — ZIO;
  • профилировал и оптимизировал GC в частности и JVM в целом под различные типы нагрузки;
  • знаком с системами на акторах (Akka, чуть меньше — Lagom)

БД и инфраструктура

  • работал с реляционными (MySQL, PostgreSQL, SQLite), нереляционными (MongoDB, ES), и специализированными (ClickHouse, DuckDB, TimescaleDB) базами;
  • интегрировал поисковые движки, Manticore и ElasticSearch;
  • знаком с key-value базами и спецификой их применения;
  • имею большой опыт работы с Kubernetes: от развертываний на bare metal (в т.ч. с Helm) до работы в облачных средах, например, GCP;
  • знаком с современными инструментами для мониторинга (Grafana/ELK/Graylog/Kibana), включая их внедрение.

Big Data

  • хорошо знаком с Apache стеком (Hadoop, HDFS, Hive, Spark,…) для создания data warehouse;
  • разрабатывал и поддерживал in-house версии Apache Spark;
  • знаю, как создавать и отлаживать ETL-процессы с использованием AirFlow.

Разное

  • умею разбираться в современном фронтенде и JS (хоть и не очень-то и люблю этого делать);
  • долгая работа с self-hosted решениями дала умение системного администрирования, что часто мне пригождается;
  • знаю и использую в хобби-проектах ряд других языков: JS/TS, Java, Rust, PHP, немного Go, C++/Qt, C#.

Личные качества

  • Прагматик, увлеченный понравившимся делом;
  • Люблю узнавать новое, учиться и применять полученные знания на практике;
  • Имею хорошую фантазию и память, умею понятно рассказать и объяснить другим свои идеи.

Что хочу делать

  • разрабатывать и внедрять эффективные, этические решения, улучшающие жизнь людей;
  • писать эффективный и чистый код, а не “на вчера”;
  • работать в компании коллег, более умных и опытных, чем я.

Что НЕ люблю

  • бодишопы;
  • неадекватный менеджмент;
  • глупость.

История работы

2021-2022: Проект парковок

Обязанности

Поддержка внутреннего монолита на основе Akka и Akka-Persistence. Создание микросервиса закрытых парковок.

Интеграция с платёжными системами.

Использованные технологии

  • Java, Scala
  • Akka, Play, Tapir
  • GCE, k8s

2020-2021: Tranzzo

Обязанности

Создание архитектуры внутреннего Data Lake, оптимизация ETL-процессов.

Использованные технологии

  • Scala
  • http4s, Play, ZIO, cats, KillBill
  • Google Dataproc, Google Composer

2014-2020: EVO

2020 — финтех

Обязанности

Написание и поддержка интеграций с банками для KillBill и внутреннего платёжного шлюза.

Использованные технологии

  • Scala, Java
  • http4s, sttp, Play, ZIO, cats, Akka, Lagom (немного)
  • KillBill, Google Cloud Engine

2017-2020 — аналитика

Обязанности

Построение архитектуры внутренней системы обработки аналитики пользователей, разработка инструментов, библиотек (twilight, sparkle, cogwheel, glimmer) и документации по покрытию компонентов, проведению A/B-тестов.

Написание и поддержка инструментов для трекинга (Clerk), тренинги и обучение для других команд.

Поддержка внутреннего форка Apache Spark, развертывание и частично администрирование Hadoop-кластера. Унификация всех ETL-процессов на единой платформе (AirFlow), доработка её под нужды компании.

Использованные технологии

  • Scala, Java, Python/Rust (немного)
  • http4s, cats, Spark API, sbt
  • Vagga, Lithos, Apache Spark, YARN, HDFS, Kafka, AirFlow, Jupyter Notebook

2014-2017 — бекенд

Обязанности

Разработка продуктового каталога, оптимизация скорости загрузки страниц. Создание компонентов для новых продуктов (bigl.ua). Внутреннее тестирование своего решения для контейнеризации (vagga/lithos).

Обучение интернов (ментор в EVO Summer Python Lab).

Использованные технологии

  • Python, JS
  • aiohttp, Pylons (свой форк), GraphQL, rx.js
  • Docker, PostgreSQL, MySQL, Kafka, ElasticSearch, Redis, webpack

2014: PlasticJam

Обязанности

Проектирование и разработка системы отслеживания заказов, оптимизация бекенда. Внедрение CI/CD для разворачивания и тестирования проекта, рефакторинг монолита.

Разработка архитектуры сбора метрик пользователей, реализация её на Scala для большей производительности.

Использованные технологии

  • Scala, Python
  • Play, Flask, React.js
  • Mercurial, Docker, Redis (Cluster), AWS

2013: Yandex

Обязанности

Интеграция helpdesk с внутренними сервисами Яндекса.

Использованные технологии

  • Python, JS
  • Django
  • Git, REST, Ansible

2011-2012: Национальный Авиационный Университет

Обязанности

Поддержка lib.nau.edu.ua, администрирование библиотечного сегмента сети, серверов и связанных с ними сервисов. Доработка бекенда и классификатора для каталога библиотеки, ускорение поиска книг.

Использованные технологии

  • JavaEE
  • Tomcat

Сторонние проекты

  • MC4EP: Игровой сервер Minecraft
  • ponyFiction: Библиотека фанфиков
  • …ряд внутренних библиотек, которые тут перечислять долго.