# Оценка: Компания не указана (анонимная вакансия через Runello-бот) — Fullstack разработчик Android/iOS (Kotlin Multiplatform) **Дата:** 2026-07-07 **Архетип:** Mobile Developer — ближе всего к архетипу «Mobile Developer (Flutter)» из `modes/_profile.md`, но фактический стек вакансии — нативный Kotlin Multiplatform + SwiftUI, а не Flutter/Dart. Это НЕ прямое совпадение ни с одним из трёх целевых архетипов кандидата (Frontend Vue.js / Mobile Flutter / Fullstack Vue+Node). **Балл:** 1.8/5 **Legitimacy:** Proceed with Caution **URL:** https://t.me/s/runello_rus_mobileappdevelopment/3170 **PDF:** not generated (порог 3.0 не достигнут) **Verification:** unconfirmed (WebFetch-only, без Playwright — превью Telegram-канала, дата публикации не извлекается) --- ## A) Резюме роли | Параметр | Значение | |---|---| | Архетип | Mobile Developer — нативный Kotlin Multiplatform (Android/iOS), не Flutter | | Domain | mobile | | Function | build | | Seniority | Не указан в посте (стек предполагает минимум Middle) | | Формат работы | Удалённо, глобально (`#remote #global`) | | Размер команды | Не указан | | Оформление | Не указано — компания скрыта, отклик только через Runello-бот | | TL;DR | Мобильная fullstack-роль (Android+iOS) на нативном стеке Kotlin Multiplatform + Jetpack Compose + SwiftUI + Ktor + Kodein — принципиально другой технологический стек, чем Flutter/Dart у кандидата. | **Vibe команды:** недостаточно данных в JD для оценки — текст поста содержит только хэштеги `#mobile #android #remote #global`, никаких сигналов об ownership, автономии, менторстве или гибкости. Стоит уточнить на собеседовании, если кандидат решит откликнуться. **Важное замечание по компании:** пост из Telegram-канала «Mobile App Development Job Offers» — это канал-агрегатор бота Runello (подтверждено WebSearch: Runello — легитимный AI-агрегатор вакансий, ежедневно парсит тысячи вакансий и подбирает под профиль, не требует регистрации/личных данных для просмотра). Реальный работодатель в самом посте **не назван** — это стандартный паттерн анонимизации агрегатора: имя компании раскрывается только после отклика через бота. Название канала («Mobile App Development Job Offers — Telegram») — это НЕ работодатель, это сам канал, как и было указано в задаче. ## B) Совпадение с CV Прочитан `cv.md`. Требования JD против точных строк CV: | Требование JD | Совпадение в CV | Комментарий | |---|---|---| | Android + iOS mobile разработка | ✅ частично — «Флаттер-разработчик... Начала как Flutter-разработчик»; «Здесь Аптека» (Flutter, Android/iOS); «Здесь Сотрудник» и «Здесь Чат» — портирование Android → iOS (Flutter) | Опыт мобильной разработки под обе платформы РЕАЛЬНЫЙ, но через Flutter/Dart, а не нативный Kotlin/Swift | | Kotlin, Kotlin Multiplatform (KMP) | ❌ отсутствует | Ни Kotlin, ни KMP не упомянуты в CV ни разу. Dart и Kotlin — разные языки с разным синтаксисом и экосистемой; знание одного не даёт рабочего знания другого | | Jetpack Compose (нативный Android UI) | ❌ отсутствует | В CV — Flutter Widgets (свой UI-движок), не Jetpack Compose. Концептуально оба декларативны (как и Vue 3 Composition API кандидата), но синтаксис и API — разные | | SwiftUI (нативный iOS UI) | ❌ отсутствует | Работа с iOS у кандидата — «Собрала iOS-сборки и отправила приложения на проверку в App Store» — это операционная часть релиза Flutter-приложения, не написание SwiftUI-кода | | Ktor (Kotlin backend/networking) | ❌ отсутствует | CV указывает Node.js/Express/MongoDB на «ознакомительном уровне» — не Ktor и не Kotlin-backend | | Kodein (DI-фреймворк для Kotlin) | ⚠️ смежный опыт | CV: «Service Locator (DI)» во Flutter-стеке — тот же паттерн (Dependency Injection), но другая реализация/язык | | Kotlin Serialization | ❌ отсутствует | Не упоминается | | Clean Architecture (подразумевается для KMP-проектов такого масштаба) | ✅ прямое совпадение | CV: «чистая архитектура (Clean Architecture)» — явно указано в разделе Mobile | | REST API / WebSocket интеграции | ✅ совпадение | CV: «REST API, WebSocket/WSS», внедрила WebSocket в РМК | ### Пробелы и стратегия закрытия 1. **Kotlin / Kotlin Multiplatform — hard blocker.** Это ядро вакансии, и в CV нет ни одной строки про Kotlin. Смежный опыт (Dart/Flutter) даёт общее понимание мобильной разработки, но НЕ даёт рабочего знания синтаксиса Kotlin, KMP-модулей (`expect`/`actual`), Gradle-мультиплатформенной сборки. Закрыть за счёт «может продемонстрировать смежный опыт» — нет, честно нельзя выдавать Flutter-опыт за готовность к Kotlin-проекту. 2. **Jetpack Compose / SwiftUI — hard blocker для нативной части.** Аналогично: декларативный UI-паттерн знаком (Vue 3 Composition API, Flutter Widgets), но конкретные фреймворки — нет. Портфолио-проект, закрывающий пробел, отсутствует (согласно `modes/_profile.md`, у кандидата пока нет публичного портфолио). 3. **Ktor / Kotlin Serialization — nice-to-have относительно основного блокера**, но тоже отсутствуют полностью. 4. **Конкретный план закрытия:** Единственная честная фраза для сопроводительного — подчеркнуть опыт релиза мобильных приложений на две платформы (Firebase push-токены Android/iOS, отправка в App Store, DI и Clean Architecture как паттерны, а не как конкретные Kotlin-инструменты), и явно обозначить готовность переучиваться на Kotlin/Swift. Это НЕ быстрый прыжок — реалистично требует нескольких месяцев практики, а не одного «быстрого проекта» или заученной фразы для интервью. **Вывод по Block B:** переносимые навыки (архитектурные паттерны, релиз-процесс, DI, REST/WebSocket) есть, но основной технологический стек вакансии (Kotlin Multiplatform, Jetpack Compose, SwiftUI, Ktor) у кандидата отсутствует полностью. Это не Flutter-вакансия — путать кросс-платформенность Flutter с нативной Kotlin Multiplatform было бы искажением фактов. ## C) Уровень и стратегия 1. **Уровень в JD:** не указан явно, но набор технологий (KMP + Compose + SwiftUI + Ktor + DI-фреймворк) обычно предполагает Middle/Middle+ по нативному мобильному стеку. **Естественный уровень кандидата для этого архетипа:** по Kotlin/KMP — фактически Junior/начинающий (нулевой коммерческий опыт с языком), несмотря на Middle-уровень в Flutter/Vue. 2. **План «продать senior без обмана»:** здесь неприменим — нельзя продавать Middle+ уровень по стеку, которого нет в опыте. Честная позиция: «мобильный разработчик с опытом релиза production-приложений на Android+iOS (Flutter), сильными архитектурными паттернами (Clean Architecture, DI) и готовностью перейти на Kotlin Multiplatform» — то есть позиционирование как «смежный найм», не «готова прямо сейчас». 3. **План «если понизят уровень»:** принять junior/стартовый грейд по Kotlin-треку разумно, если компания даёт реальный план роста и компенсация не ниже минимума кандидата (100 000 ₽/мес на руки). Договориться о пересмотре через 3-6 месяцев адаптации к стеку, а не сразу требовать Middle-условия за незнакомый язык. ## D) Компенсация и спрос Зарплата и оформление в самом посте **не указаны** — компания анонимна, условия раскрываются только после отклика через Runello-бот. Ниже — только общий рыночный контекст (WebSearch, 2026): | Показатель | Значение | Источник | |---|---|---| | Медиана зарплаты мобильного разработчика в РФ | ~320 000 ₽ на руки | [ENIGMA AI](https://enigmai.ru/salary/mobile-development/) | | Middle Android Developer (медиана) | ~270 000 ₽; диапазон 160 000–290 000 ₽ | [checkroi.ru](https://checkroi.ru/blog/zarplata-android-razrabotchika/) | | Премия за навык Kotlin Multiplatform | +15-20% к вилке Middle; до +25% при KMP + нативный UI | [ENIGMA AI](https://enigmai.ru/salary/mobile-development/mobile-salary-2026/) | | Формат | Удалённая работа доминирует, компании открыты к найму из регионов | [ENIGMA AI](https://enigmai.ru/salary/mobile-development/) | **Специфика РФ:** gross/net не указаны в посте — уточнить обязательно при отклике (`net ≈ gross × 0.87` как ориентир). Оформление (ТК РФ / ГПХ / самозанятость) неизвестно. **Оценка по компенсации:** приведённые цифры рынка для Middle Kotlin-разработчиков теоретически перекрывают минимум кандидата (100 000 ₽/мес на руки), но так как это медианы для опытных Kotlin-специалистов, а кандидат вошла бы в эту роль без опыта в Kotlin — реалистичный оффер скорее будет ближе к junior-вилке или ниже медианы. Балл по этой оси — нейтральный из-за отсутствия конкретных данных по самой вакансии. ## E) План персонализации **Рекомендация: не адаптировать CV под эту вакансию.** Стек кандидата (Flutter/Dart, Vue 3) фундаментально отличается от требуемого (Kotlin Multiplatform, Jetpack Compose, SwiftUI, Ktor). Любая адаптация summary/буллетов под эту JD потребовала бы переформулировок, создающих ложное впечатление о владении Kotlin — это прямо запрещено правилом «Keywords get reformulated, never fabricated» (`CLAUDE.md`). Если кандидат всё же решит откликнуться (например, из интереса к переходу в Kotlin-стек), единственное уместное изменение — явно указать в сопроводительном письме готовность к обучению и перечислить переносимые паттерны (Clean Architecture, DI, релиз на две платформы), не выдавая их за экспертизу в конкретных Kotlin-инструментах. ## F) План собеседований Так как оффер не соответствует стеку кандидата, банк историй здесь ограничен переносимыми паттернами, а не Kotlin-специфичными кейсами: | # | Требование JD | История STAR+R | S | T | A | R | Reflection | |---|---|---|---|---|---|---|---| | 1 | Опыт релиза на Android + iOS | Портирование «Здесь Сотрудник» и «Здесь Чат» с Android на iOS | Оба приложения были только под Android | Нужно было адаптировать под iOS и выпустить в App Store | Перепривязала Firebase push-токены на обе платформы, собрала iOS-билды, спроектировала app-иконки, отправила на проверку в App Store | Оба приложения успешно прошли ревью и стали доступны на iOS | Узнала специфику App Store review и различия в push-инфраструктуре iOS/Android — процесс релиза похож на то, что требуется в KMP-проекте, даже без Kotlin | | 2 | Clean Architecture / DI | Service Locator (DI) + Clean Architecture во Flutter-приложении «Здесь Аптека» | Приложение росло, нужна была поддерживаемая структура кода | Спроектировала слои по Clean Architecture, внедрила DI через Service Locator | Код стал проще тестировать и расширять новым разработчикам | Поняла ценность архитектурных границ независимо от конкретного языка — тот же принцип применим к Kodein в Kotlin | | 3 | REST API / real-time коммуникация | Внедрение WebSocket-оповещений в РМК | Не было видимости, сколько аптек онлайн в реальном времени | Нужно было решение с минимальной задержкой | Внедрила WSS-оповещения с отметкой прочтения | Впервые видно статус ~1200 аптек в реальном времени | Реал-тайм коммуникация через WebSocket переносится на любой стек, включая Ktor | | 4 | Быстрое обучение новому стеку | Переход из ИБ-образования в frontend/Flutter разработку без профильного опыта | Не было бэкграунда в коммерческой разработке | Прошла профильный курс, взяла на себя Flutter-проект | Стала штатным разработчиком, ведёт 3 продукта одновременно | Показывает способность быстро закрывать технологические пробелы — прямой аргумент для перехода на Kotlin | **Рекомендуемый кейс:** портирование Android → iOS приложений — единственная история, максимально близкая к теме вакансии (кросс-платформенный релиз), хотя и без Kotlin. **Вопросы-ловушки:** - *«У вас есть опыт с Kotlin/Kotlin Multiplatform?»* → честный ответ: нет коммерческого опыта, но есть опыт кросс-платформенной мобильной разработки (Flutter) и архитектурных паттернов (Clean Architecture, DI), которые переносятся на новый стек; готова инвестировать время в обучение. - *«Почему решили сменить стек с Flutter на нативный Kotlin?»* → не отвечать шаблонно про «интересные технологии» — дать конкретную причину (если решит откликнуться), иначе этот вопрос обнажит слабую мотивацию. ## G) Легитимность публикации (Posting Legitimacy) **Tier: Proceed with Caution** | Сигнал | Оценка | |---|---| | Качество описания | Текст обрезан («интегра…») в Telegram-превью, но конкретный список технологий (Kotlin, KMP, Jetpack Compose, Ktor, Kodein, Kotlin Serialization) выглядит как реальная выдержка из JD, не как спам-шаблон. Terse-формат — типичная особенность Telegram-превью, а не сигнал подделки. | | Компания | Не названа — стандартная анонимизация агрегатора Runello (подтверждено WebSearch: легитимный AI job-matching бот, не требует регистрации/личных данных для просмотра вакансий). Отсутствие имени компании само по себе не является red flag для этого канала, но не позволяет проверить репутацию работодателя напрямую. | | Repost-проверка | По `data/scan-history.tsv` — вакансия встречается один раз (строка с этим URL, `first_seen: 2026-07-07`), признаков повторной публикации нет. | | Рыночный контекст роли | Роль (KMP + Android/iOS, remote) соответствует активному и реальному сегменту рынка — есть конкретные зарплатные данные по KMP-специалистам в РФ (см. Block D), что говорит в пользу реальности такого найма в принципе. | | Свежесть | Не подтверждена — дата публикации поста не извлекается из WebFetch-превью, Playwright недоступен в этом режиме. | **Итог:** нет признаков мошенничества или фейковой вакансии, но отсутствие названия компании и невозможность проверить свежесть/детали без перехода в бота — по правилу «default to Proceed with Caution при недостаточных сигналах» присваиваем именно этот tier, не «High Confidence». --- ## Итоговая рекомендация **Балл 1.8/5 — значительно ниже порога 4.0/5 (AGENTS.md/CLAUDE.md).** Настоятельно рекомендуется **не откликаться**. Основная причина — не компенсация и не локация (удалённо, без конфликта с политикой кандидата), а фундаментальное несовпадение технологического стека: вакансия требует нативной Kotlin Multiplatform + SwiftUI разработки, а профиль кандидата — Flutter/Dart + Vue 3. Кросс-платформенная модель Flutter — это смежный, но иной навык, чем нативная Android/iOS разработка на Kotlin/Swift; система не должна (и не будет) представлять эти навыки как эквивалентные. Если кандидат заинтересована в переходе в нативный Kotlin-стек как в стратегическое направление карьеры — это отдельное решение, не отражённое в текущем CV/`modes/_profile.md`, и его стоит явно обсудить и зафиксировать в `config/profile.yml`/`modes/_profile.md`, прежде чем система начнёт продвигать такие вакансии выше. --- ## Извлечённые ключевые слова (ATS) Kotlin, Kotlin Multiplatform, KMP, Android, iOS, Jetpack Compose, SwiftUI, Ktor, Kodein, Kotlin Serialization, Fullstack, мобильная разработка, cross-platform, дизайн-система, пользовательский интерфейс, remote, global, мобильное приложение, native mobile development, DI (Dependency Injection), Clean Architecture