Михаил Турченков Июнь 2018 — по настоящее время ПАО Сбербанк Head of IT Systems Development (Big Data Department) • Создал микросервисы для внутренней системы управления потоками данных, с применением event-sourcing, reactive streams в рамках Kappa-архитектуры. (Scala, Akka Streams, Kafka, Reactive Streams) • Разработал адаптивный Web-GUI к GraphQL-сервисам, в виде Single Page Application, с поддержкой состояния на Flux через Diode. (flex, Scala, scss, React, Bulma, webpack, Diode, GraphQL, SPA, scalajs-react, sbt-web-scalajs, npm, Flux/Redux, Scala.js, sangria) • Доработал обертку для GraphQL scalajs-graphql под внутренние задачи, мигрировал на новую версию scalajs-react. (Scala, GraphQL, scalajs-react, Apollo, Scala.js) • Создал модуль визуализации DAG (направленных ациклических графов) на Scala.js, с собственной type-оберткой для библиотеки dagre и кастомным алгоритмом сглаживания. (Scala, scalajs-react, SVG, dagre, Scala.js) • Автоматизировал сборку rpm пакетов со скриптами systemd для запуска и остановки микросервисов кастомизацией sbt. (Scala, sbt-native-packager, rpm, systemd) Август 2017 — Июнь 2018 Сбербанк-Технологии Руководитель направления по развитию IT-систем • Создал reactive микросервис нотификации, на основе собственной асинхронной обертки для блокирующих вызовов javax-mail и Slick, с покрытием тестами на Greenmail. (Scala, Akka Streams, javax-mail, GreenMail, Slick, Kafka, Reactive Streams) • Создал кодогенератор для быстрого прототипирования на основе архитектурной ER-схемы и встроил его в гибкий пайплайн версионирования и деплоя приложения, с автоматическим созданием документации. (Scala, Graphviz, Slick, sbt, Nexus, Confluence, SQL) • Разработал пакет для типобезопасной ETL-аналитики в экосистеме Hadoop, с REPL интерфейсом. (Angular, Hive, Scala, Impala, Spark, Oozie) • Создал транспилятор Python → Scala для миграции кода финансово-аналитических моделей на Spark, на основе грамматики ANTLR. (Scala, Python, ANTLR4, Spark, Parboiled) Июнь 2016 — Август 2017 Сбербанк-Технологии Senior Scala developer • Работал в направлении BigData warehouse: валидация данных, оптимизация запросов, партиционирование. (Hive, Scala, Impala, Spark, Oozie, CDH) • Проводил разработку, нагрузочное тестирование и тюнинг распределенных алгоритмов для off-heap графового хранилища. (TinkerPop, Dijkstra, Scala, Gremlin, larray, Neo4j, Spark) • Реализовал PageRank для Preguel-подобного графового распределенного движка. (Scala, breeze, Spark) • Создал модуль интерактивной визуализации графовой аналитики для графового распределенного движка. (Scala, Gephi, Akka, Spark, Akka Cluster) Сентябрь 2014 — Июнь 2016 Тритфейс Scala developer • Участвовал в разработке системы сетевого мониторинга. (Angular, Scala, grunt, SNMP, bootstrap, bower) • Создал модуль для визуализации потока событий в реальном времени. (Angular, grunt, WebSocket, npm, bootstrap, vis.js, bower) • Разработал интерпретатор языка для SNMP MIB's OID, с переменными, типами, и числовыми функциями, операциями над OID. (peg, OID, Scala, parboiled, SNMP, MIB) • Написал многопоточные масштабируемые модули системы мониторинга на акторах для Akka Cluster. (Scala, Akka, Akka Cluster) • Рефакторил код на magnet pattern для неинвазивного расширения функционала библиотек. (Scala, magnet pattern) • Практиковал agile, scrum, кастомизация workflow. (Jira, Confluence, agile boards) • Работал с системами виртуализации и контейнерами для развертывания сервисов в различных окружениях. (VMware, Docker, VirtualBox) • Создал неблокирующий scala-интерфейс для NoSQL базы данных, проводил оптимизацию и администрирование. (Scala, NoSQL, MongoDB, Akka, Actors) Январь 2012 — Сентябрь 2014 НИЦ БиоСим Программист-математик • Руководство и проведение R&D проектов в области математического моделирования и машинного обучения. (Matlab, Statistica, CUDA, Python, Mathematica, LaTeX, OpenCV, C++, R, Octave) • ProcessingJS для визуализации работы алгоритмов приоретизации. (ProcessingJS) • Плагины к 3ds Max для интерактивной кастомизации моделей проектирования. (3ds Max, MaxScript) • Применение OpenCV для задач машинного обучения и распознавания капчи. (Python, OpenCV, Matlab, LaTeX) • Реализация параллельных алгоритмов молекулярной динамики на CUDA (быстрый метод мультиполей). (OpenGL, GPU, CUDA, Fast Multipole Method, C++) • Алгоритм оптимальной упаковки на основе системы частиц и измерения химпотенциала (алгоритм имитации отжига). (Java, Swing, simulation annealing) Январь 2012 — Сентябрь 2014 фриланс Программист • Написание web-приложений для автоматизации бизнеса с использованием технологий Java. (JSP, GWT, JPA, Spring, JavaFX, Hibernate) • Web-разработка, оптимизация, создание плагинов к фреймворку Joomla. (Joomla, PHP, JS) Январь 2009 — Январь 2012 НИЯУ МИФИ Аспирант • Выиграл конкурс на грант Федеральной программы "Научные и педагогические кадры инновационной России". Имеется опыт разработки конкурсной, технической и отчетной документации. (Python, Mathematica, LaTeX, 3D visualization, R) • Развернул и поддерживал параллельный вычислительный кластер МИФИ. (SMP, SCALAPACK, LAPACK, OpenSuSE, Linux, BLAS, netboot, MPI, OpenMP, Ganglia, Zabbix, MPICH) • Администрировал серверы локальной сети МИФИ. (Linux, OpenSuSE, Windows Compute Cluster Server) • Разрабатывал многопоточные приложения для распределенных научных вычислений на базе MPI, для визуализации, анализа и публикации, по выигранным грантам и исследовательским проектам кафедры. (FORTRAN, SMP, SCALAPACK, LAPACK, Python, BLAS, MPI, OpenMP, MPICH) Январь 2008 — Январь 2009 фриланс Программист • Разработка баз данных с помощью MS Access, создание приложений на VBA для автоматизации бизнеса. (MySQL, MS Access, VBA) • Разработка, поддержка и продвижение веб-сайтов на стеке LAMP для ряда коммерческих организаций. (Apache, Linux, PHP, MySQL, Wordpress, Joomla)