Обо мне
14 лет в профессии. Анализирую процессы, выявляю проблемы, решаю их с помощью головы и программного обеспечения.
Моё дело
Я работаю как независимый консультант по автоматизации и разработчик программного обеспечения. Я анализирую проблемы и задачи моих клиентов, и если они решаются с помощью автоматизации, я предлагаю и реализую программное решение, которое делает организацию лучше, четче и более управляемой.
У меня есть команда, которая может создавать качественный продукт, я управляю ей как архитектор и тимлид и отвечаю за результаты ее работы.
Такая работа предполагает глубокое погружение в дела клиента, полное доверие и участие в результате. Поэтому я очень тщательно выбираю проекты, и могу себе позволить работать только с теми клиентами, с которыми есть хороший личный контакт, потому что эти отношения имеют тенденцию перерастать в партнерские.
История развития
На факультете Кибернетики в МИФИ я получил начальный импульс к изучению программирования в широком спектре технологий, но специализировался дальше на мире .NET
, начав работу с ним с момента появления этого стека. Прошел вместе с платформой весь её путь, от C#1.0, включая Windows Forms, WPF & Silverlight, и, прежде всего, ASP.NET
от Web Forms до .NET Core
, и далее.
Чтобы не увязнуть в одном мире и одном взгляде, всегда изучал концепции из разных направлений. Познакомился и полюбил функциональное программирование: Haskell
, Scala
, F#
. Сейчас многие аспекты ФП занимают важное место в текущей практике на C#. Популярностью на NUget пользуется моя реализация option type Functional.Maybe.
Фронтэнд давно проснулся и стал давать не менее интересные технологии и подходы. TypeScript
открыл путь для качественного программирования на клиенте. React
и библиотеки управления состоянием, например MobX
, сделали программирование на клиенте не менее красивым и вдохновляющим, как и на сервере.
Главное — в голове
По мере накопления опыта становится ясно, что конкретные технологии второстепенны по отношению к подходам и концепциям. Сначала ты в изучении опираешься на выработанные шаблоны (OOP Principles, Patterns), потом интериоризируешь их в своем сознании как принципы (DRY, SOLID), пока они не переходят в область неосознанной компетенции и не становятся частью твоего повседневнего мышления.
Open source
Functional.Maybe | github | | nuget
20К+ установок. 13 установок в день.
Одна из реализацией типа Maybe<T>
(Option type из мира ФП), качественно интегрированный с экосистемой .net, включая linq query. Богатый набор методов-расширений позволяет писать декларативный код во мноих сценариях.
Это дерево | Превращается в линейную цепочку |
Примеры см. на сайте проекта.
fast-nuget-update | github | | download
Утилита для обновления версий пакетов в большом решении Visual Studio.
Вот такой вызов обновляет все версии ссылок на пакет MyPackage
на версию 1.3.1
во всех *.csproj
файлах в текущей папке:
fast-nuget-update --name MyPackage --version 1.3.1
Это занимает несколько секунд на 100 проектах, в сравнении с получасом в Visual Studio.