Senior Software Architect / Team Lead (Haskell, C++, C#, Python)
- Программирование, Разработка
- Инженер
- Тестирование
Занятость: частичная занятость, проектная работа, полная занятость
График работы: гибкий график, полный день, удаленная работа
Опыт работы 13 лет
Новосибирск, graninas.com
Информационные технологии, системная интеграция, интернет... Показать еще
• Inactive languages: C++ (C++11, C++14, C++17), Python, C#
• Technologies: FP, OOP; SQL, NoSQL, Qt, QML, XML, JSON, Boost, STL, .NET, WPF, WCF, NHibernate, Node.JS, RabbitMQ, SOLID, GRASP, RESTful, Regex
• DBs: PostgreSQL, MySQL, Redis, RocksDB, MS SQL Server, SQLite
• Multithreading & Concurrency, Software Transactional Memory, concurrent domain models, concurrent data types, coroutines / async (including async monads), FRP, Actor models
• Specialization: Software Design and Architecture, Functional Design and Architecture, DSLs, testing, desktop, databases, research, data classification.
• FP Design and Architecture: Monads, Applicatives, Functors, Free Monads, Comonads, Final Tagless, ReaderT Pattern, Effect Systems, Service Handle Pattern, eDSLs, external DSLs (parsers & translators), Combinatorial eDSLs, Type-Level Design, Advanced Type Systems, Persistent Data Types etc.
• Testing: functional requirements testing (unit, functional, integration, acceptance, etc), non-functional requirements testing (performance, space/memory consumption, load etc), testing vision & automation, fuzzy testing, property-based testing
Personal:
• Researcher, writer, speaker, OSS contributor
• Author of the "Functional Design and Architecture" book
• Speaker of many Russian conferences and meetups: C++ Russia, FPure, FPConf, C++ Siberia, Dev2Dev, DevDay, LambdaNsk etc.
• Leader of "LambdaNsk" - Novosibirsk functional programmers community
Новосибирск, 2gis.ru
Информационные технологии, системная интеграция, интернет... Показать еще
- Разработка систем поиска по справочнику и геоданным
- Тестирование поискового движка
- Исследования алгоритмов ранжирования результатов поиска
- Командное и межкомандное взаимодействие
- Сбор и уточнение требований
Новосибирск, www.kaspersky.ru
Информационные технологии, системная интеграция, интернет... Показать еще
- Исследования в области защиты данных (DLP)
- Разработка алгоритмов и компонентов DLP
- Разработка внутренних инструментов
- Разработка прототипов
- Разработка правил классификации документов
- Проектирование, разработка архитектуры компонентов
- Тестирование, профайлинг, улучшение существующего ПО
Новосибирск, github.com/graninas
Информационные технологии, системная интеграция, интернет... Показать еще
STM для C++:
https://github.com/graninas/cpp_stm_free
STM для Haskell:
https://github.com/graninas/stm-free
Статья на Хабре:
https://habr.com/post/350628/
Доклад на C++ Russia 2018:
Слайды: https://docs.google.com/presentation/d/1_znOLZDKruKRNLA58TDlnXYQjTg9sXNJHPOLHfDTjeU/edit?usp=sharing
Библиотеки построены на основе Free-монады и имеют очень простую имплементацию (сравнительно с другими библиотеками).
► Кейнот-доклад "Настоящее и будущее ФП в С++", C++ Siberia 2019.
► Andromeda - большой проект, сопровождающий книгу "Functional Design and Architecture". Andromeda - проект на Haskell, использующий функциональные подходы к дизайну и архитектуре ПО. Andromeda - это SCADA-система для управления космическими кораблями.
Книга: https://www.reddit.com/r/haskell/comments/6ck72h/functional_design_and_architecture/
Код: https://github.com/graninas/Andromeda
► Amber - мини-игра, демонстрирующая дизайн и архитектуру в функционально-декларативном стиле на С++. По результатам этого исследования я сделал доклад "Функционально-декларативный дизайн на С++11" в ноябре 2014 на конференции C++ User Group Novosibirsk.
Код: https://github.com/graninas/Amber
Доклад: https://youtu.be/tc8w8MbJQNs?t=2h36m19s
► cpp_lenses - микробиблиотека линз на С++. Сделал доклад по библиотеке на C++ Siberia в августе 2015. Доклад называется "Функциональный микроскоп: Линзы в С++".
Код: https://github.com/graninas/cpp_lenses
Доклад: http://goo.gl/ay5MiG
► CMLife - Функциональная Игра "Жизнь" на комонадах на С++. Исследование и результаты были представлены в виде доклада на C++ Russia 2016 в Санкт-Петербурге.
Код: https://github.com/graninas/CMLife
Доклад: http://goo.gl/WrPbAJ
► "Вы не понимаете ФП" - доклад на DevDay@2GIS (декабрь 2017) о мифах в функциональном программировании.
Доклад: https://youtu.be/jSkYvNqQWqs
Слайды: https://www.slideshare.net/alexandrgranin/you-dont-understand-fp
► The Amoeba World - исследовательский проект (игрушка) на Haskell, направленный на создание статей о дизайне и архитектуре в функциональном программировании.
Код: https://github.com/graninas/The-Amoeba-World
Статья "Архитектура и дизайн в ФП": https://goo.gl/2fD24m
► QsT SQL Tools – ORM-библиотека, написанная на Qt C++, облегчающая программирование приложений баз данных.
► TextAnalyser – большая выпускная квалификационная исследовательская работа, программа для анализа текстов. Состоит из двух частей: распознавание авторства текста и карта благозвучия. Были придуманы и использованы уникальные алгоритмы. Был создан DSL-язык RRL (Resounding Rules Language). Использовались конечные автоматы, - концепции ООП, шаблоны проектирования, тонкости языка С++. Использовался OpenGL. Работа победила в конкурсе дипломных работ и получила несколько наград на внутривузовских и международных конференциях.
Код: https://sourceforge.net/projects/textanalyzerv04/
-----------------------------------------------------------------------
Статьи на Хабре (https://habrahabr.ru/users/graninas/topics/):
1. «Дизайн и архитектура в ФП» – цикл статей о дизайне и архитектуре ПО в приложении к функциональному программированию.
2. «Haskell Quest Tutorial» – подробное руководство по Haskell, написано очень простым и понятным языком.
3. «Haskell в реальном мире» – статья о программе NgnTrafficParser и о применении Haskell в производстве.
4. «Haskell – Дизайн», «Haskell – Эстетика» – две красивые статьи о визуализации Haskell-кода.
5. «Еще одно руководство по монадам» – перевод с английского серии статей «Yet Another Monad Tutorial».
- Администрирование телеком-систем для фиксированной телефонной связи и VoIP (NGN)
- Сетевая инфраструктура
- Сопровождение мультимедиа систем
Ключевые навыки
Обо мне
Научная фантастика, классическая музыка, игра на пианино, Lego Techinc, написание ИТ-стихов, написание фантастических произведений, велосипеды, путешествия
Высшее образование
Знание языков
Русский — Родной
Английский — C1 — Продвинутый
Повышение квалификации, курсы
Гражданство, время в пути до работы
Гражданство: Россия
Разрешение на работу: Россия
Желательное время в пути до работы: Не имеет значения