Не «сделал фичу», а: в чём была причина, каким кодом решено, чем подтверждено. Каждый кейс ниже — отдельный разбор с воспроизведением проблемы и проверкой результата.
| Кейс | Проблема | Чем подтверждено |
|---|---|---|
| Сверка данных как контрольный гейт | Проверка выгрузки CRM возвращала «сошлось» на данных, где у пяти сделок сумма была завышена в десять раз | Намеренно повреждённый набор: старая проверка — код 0, новая ловит все семь классов дефектов. 257 тестов |
| Инфраструктура тестов и превью iOS | Два сбоя в тестовой и превью-инфраструктуре проекта | Разбор причин и починка |
| Экспорт презентации в PDF | Нумерация и градиентный текст ломались на 7 слайдах из 18 | Диагностика конкретных слайдов, воспроизведение |
| Монтаж ресторанного рилса | Разбор процесса: идея → съёмка → монтаж | Технологии и решения на каждом этапе |
vsezpif-ios · SwiftUI, Swift Charts, @Observable |
Витрина по фондам недвижимости (ЗПИФ). Офлайн-демо на реальном снимке данных MOEX |
| vsezpif-android · Jetpack Compose, Material 3 | Тот же продукт на Kotlin: графики на Canvas, та же модель данных |
Причина, а не симптом. В кейсе со сверкой поверхностный ответ был бы «добавить проверок». Настоящая причина — сравнение количеств строк принципиально не способно поймать порчу значений.
Проверка измерением, а не на глаз. Прежде чем брать модель диаризации для разделения голосов в записи звонка, я измерил разность каналов: настоящее стерео дало −24 дБ, продублированное моно — −91 дБ. Модель не понадобилась.
Границы проговариваю честно. В каждом кейсе есть раздел о том, что проверено на реальных данных, а что только на заглушках, и чего не хватает.
Стек: Python · PostgreSQL · FastAPI · Swift / SwiftUI · Kotlin / Compose · Docker · pytest