Гранин Александр Сергеевич

Мужчина, 33 года, родился 30 июля 1986

Новосибирск, готов к переезду, готов к редким командировкам

+7 (953) 890-41-28
 Личный сотовый
 — предпочитаемый способ связи
 graninas

Senior Software Architect / Team Lead (Haskell, C++, C#, Python)

Информационные технологии, интернет, телеком
  • Программирование, Разработка
  • Инженер
  • Тестирование

Занятость: частичная занятость, проектная работа, полная занятость

График работы: гибкий график, полный день, удаленная работа

Опыт работы 13 лет

Июнь 2017по настоящее время
2 года 7 месяцев
Independent consultant

Новосибирск,

Информационные технологии, системная интеграция, интернет... Показать еще

Senior Software Architect, Team Lead, Senior Functional Developer
• Active languages: Haskell, PureScript
• 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
Апрель 2016Июнь 2017
1 год 3 месяца

Новосибирск,

Информационные технологии, системная интеграция, интернет... Показать еще

Ведущий разработчик C++, Python
Технологии: C++, XML, STL, Boost, Python

- Разработка систем поиска по справочнику и геоданным
- Тестирование поискового движка
- Исследования алгоритмов ранжирования результатов поиска
- Командное и межкомандное взаимодействие
- Сбор и уточнение требований
Май 2012Апрель 2016
4 года
Лаборатория Касперского

Новосибирск,

Информационные технологии, системная интеграция, интернет... Показать еще

Разработчик / Developer C++, C#
Технологии: C++, XML, STL, Boost, C#, WPF, .NET

- Исследования в области защиты данных (DLP)
- Разработка алгоритмов и компонентов DLP
- Разработка внутренних инструментов
- Разработка прототипов
- Разработка правил классификации документов
- Проектирование, разработка архитектуры компонентов
- Тестирование, профайлинг, улучшение существующего ПО
Январь 2009Январь 2013
4 года 1 месяц
Программирование как смысл жизни

Новосибирск,

Информационные технологии, системная интеграция, интернет... Показать еще

Разработчик, исследователь
► Библиотеки STM (Software Transactional Memory) для Haskell и C++. Полностью оригинальная разработка.

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».
Январь 2008Январь 2012
4 года 1 месяц
Локтелеком
Разработчик
- Создание и сопровождение телком-систем
- Администрирование телеком-систем для фиксированной телефонной связи и VoIP (NGN)
Январь 2007Январь 2009
2 года 1 месяц
ЗабГУ
Разработчик
- Разработка внутренних систем (C++ Builder, Delphi, Qt C++)
- Сетевая инфраструктура
- Сопровождение мультимедиа систем

Ключевые навыки

Git
C#
Разработка ПО
C++
WPF
Qt
C/C++
SQL
.NET Framework
ООП
Unit Testing
Design Patterns
Технический перевод
LINQ
Научные исследования
Software Development
Haskell
Функциональное программирование
Boost
Software Architecture
Тестирование
Python
Agile Project Management
Функциональное тестирование
Domain Specific Languages
Linux
Базы данных

Обо мне

Интересуют:

Научная фантастика, классическая музыка, игра на пианино, Lego Techinc, написание ИТ-стихов, написание фантастических произведений, велосипеды, путешествия

Высшее образование

2009
Читинский государственный университет
Экономики и информатики, Инженер-программист

Знание языков

РусскийРодной

АнглийскийC1 — Продвинутый

Повышение квалификации, курсы

2010
Система управления вызовами SI3000 (SI2000v6) в сетях NGN (CS, SMG, AGW) - управление, администрирование и техническое обслуживание
ИскраУралТЕЛ, Екатеринбург, Сертификат № E00804

Гражданство, время в пути до работы

Гражданство: Россия

Разрешение на работу: Россия

Желательное время в пути до работы: Не имеет значения