Контакти

Андрій Кушнір

Пошта
me на цьому домені
Fediverse
@orhideous@twilight.garden
Matrix
@orhideous:twilight.garden
Telegram
orhideous
Телефон
+380671387767

Що вмію

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

Вміння

Що знаю, що робив та з чим працював

Python

  • гарно знаю мову та екосистеми навколо неї, включаючи фреймворки (Pylons, Django, Flask, aiohttp, FastAPI) та розповсюджені бібліотеки;
  • працював з асинхронним кодом;
  • для критичних до швидкості обчислень інтегрував розширення на С/cython;
  • розбираюсь в 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: Бібліотека фанфіків
  • …низка внутрішніх бібліотек, які тут перераховувати довго.