Я увлеченный разработчик с более чем десятилетним опытом в IT с 2012 года. Был разработчиком, проектным инженером, занимался техническими продажами — и вернулся в разработку, потому что это то, что я люблю. Интересуюсь современными методологиями: Test-Driven Development и Pair Programming.

Разрабатывал на самых разных стеках — от ассемблера и C до Swift. Последнее время занимаюсь full-stack разработкой с React & Vue и node.js & python на различных платформах, в том числе AWS и Cloudflare.

Люблю делиться знаниями и регулярно выступаю на конференциях и митапах. Здесь все мои выступления и материалы.

  • За пределами фреймворков: доклады, повлиявшие на мой подход к разработке

    Программную инженерию часто обсуждают в терминах фреймворков и технологий. Но есть более глубокие вопросы связаны с дизайном, тестированием и архитектурой.

  • Подход к рефакторингу с ИИ

    ИИ уже давно получил широкое распространение в разработке программного обеспечения. Это неплохой инструмент для написания нового кода, но когда дело доходит до рефакторинга, я думаю, что существуешь фундаментальный недостаток…

  • Рискованные Conventional Commits

    Эта статья про небольшую идею, которуая была опробована в open-source проекте: добавление отметки «риск» в обычные коммиты. Всего несколько символов помогают быстро понять, какие коммиты безопасные, какие требуют тестирования, а какие — рискованные. Началось это как эксперимент, но действительно изменило то, как мы думаем о тестировании и релизах.

  • Тестирование GraphQL-схемы

    Я отправляю PR с новым resolver’ом в GraphQL-схему. Коллега говорит, что смерджил и задеплоил. Но когда я пытаюсь обратиться к новому resolver’у, он недоступен, и я не понимаю почему. Смотрю инфраструктурный (IaC) тест — схема изменилась, но моего resolver’а нет. Начинаю сходить с ума и теряю время.

  • Обучение-через-тесты (Test-driven education)

    Недавно в разговоре с одним из моих наставников по fullstack разработке я объяснял, как изучал разные фреймворки и библиотеки. Посмотрев на мой подход, он заметил: «Это выглядит как… Обучение через тесты…».

  • Мучения с именами переменных

    Работая над проектом obsidian-tasks вместе с Clare Macrae, я познакомился с двумя мощными концепциями, которые помогли мне справиться с одной из самых сложных проблем в программировании — именованием переменных.

  • Full-stack разработка через поток данных

    В том, как я разрабатываю фичи для full-stack-приложений, есть паттерн. Уверен, что ничего нового не изобретаю — это скорее описание для себя, чтобы внести ясность, но может быть кому-то тоже пригодится.

  • Автоматизированный и версионированный импорт типов из GraphQL-схемы

    Недавно работая над GraphQL-проектом, у меня была задача: схему (часть Infrastructure-as-Code) нужно было экспортировать в TypeScript для фронтенда и бэкенда.

  • Тестирование реактивности Svelte

    В open-source проекте, который я разрабатываю совместно с Clare Macrae, нам нужно было разработать функционал Svelte-компонента — но сначала требовалось покрыть поведение существующего компонента тестами вида «пользователь сделал это, проверить что компонент повел себя вот так».

  • Культура программирования

    Однажды у меня был разговор про обучение с директором одной школы программирования. Там было одно слово, которое поменяло весь разговор.


Наверх