Я увлеченный разработчик с более чем десятилетним опытом в 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-компонента — но сначала требовалось покрыть поведение существующего компонента тестами вида «пользователь сделал это, проверить что компонент повел себя вот так».
-
Культура программирования
Однажды у меня был разговор про обучение с директором одной школы программирования. Там было одно слово, которое поменяло весь разговор.