Компания:** BlancVPN
Тип занятости: FULL_TIME
Что мы создаем
BlancVPN ищет Flutter Engineer | Senior для поддержки разработки клиентского приложения в команде: вместе с разработчиками и владельцами смежных доменов (backend/infra) — от Flutter/Dart до нативного кода для iOS/Android/Windows/Linux, платформенных каналов (Pigeon) и интеграции с сетевыми ядрами, написанными на Go. Цель этой роли — обеспечить стабильность клиента в постоянно меняющейся среде — в том числе во время блокировок, отключений, деградации каналов и обнаружения протоколов — и архитектуру, способную выдержать эти вызовы с помощью инженерных решений.
Что мы ищем
Основные требования
- Свободное владение русским и английским языками (B2+)
- 5+ лет опыта в мобильной разработке, значительная часть из которых была посвящена работе с Flutter и сложными производственными проектами
- Нативная разработка для iOS и Android. Глубокое знание одной платформы: пользовательские модули, платформенные каналы или Pigeon, и системные API. Владение другой платформой для уверенного кодирования и отладки
- Сетевой уровень ниже HTTP-клиента. TCP и UDP, TLS, сокеты, маршрутизация, поведение соединения при отключениях и деградации. Сетевой уровень реализован на нативном коде и ядрах Go, поэтому требуется опыт отладки сетей на этом уровне
- Низкоуровневый опыт, даже минимальный. C или C++, Go, Rust, dart:ffi, cgo, бинарные форматы. Глубокая системная специализация не требуется; нужен опыт решения задач вне Flutter
- Ответственность и проектирование. Сквозная ответственность за функцию: определение проблемы, техническое решение, спецификация, доведение до релиза и отслеживание метрик после релиза. Примеры, когда кандидат спроектировал нетривиальную часть системы. Некоторые функции могут затрагивать смежные области — важно уметь координировать работу с владельцами backend/инфраструктуры, помогать в настройке, воспроизведении и диагностике проблем, а также достигать успешного результата путем сотрудничества
- Отладка и исследование. Способность добраться до корня проблемы, даже если причина лежит в другом слое. Проверка гипотез с помощью прототипов и принятие обоснованных решений при отсутствии готового ответа
- Тестирование. Модульное, виджетное, интеграционное и сквозное тестирование. Понимание того, что покрывать автоматизированными тестами, а что выгоднее тестировать вручную
Желательно
- Знание предметной области: VPN-протоколы (WireGuard, OpenVPN, Xray, Amnezia), обход блокировок и DPI
- Низкоуровневые: бинарные протоколы и пользовательские реализации протоколов по спецификациям; опыт работы в условиях строгих ограничений по памяти (расширения, демоны, встраиваемые системы, движки); разработка в реальном времени с нуля (WebRTC, MQTT, пользовательские протоколы поверх WebSocket)
- Смежные области: разработка серверной части, Go, Python, Linux-узлы, Docker, основы DevOps
- Desktop: сервисы и демоны, повышение привилегий, установка системных компонентов, расширения ОС; сетевые функции на уровне ОС (маршрутизация, DNS, фильтрация трафика); системная интеграция (системный трей Windows, панель меню macOS, автозапуск и фоновая работа), установщики и подписание сборок
- Инфраструктура разработки: понимание того, как настроить внутреннюю клиентскую инфраструктуру, чтобы тестирование и доставка способствовали качеству продукта (автоматизированные запуски, конвейеры релизов, сборки и подписание для всех платформ, каналы обновлений, GitHub Actions, Fastlane, Codemagic)
- Публичный след: собственные пакеты на pub.dev, open source, статьи, низкоуровневые pet-проекты
Что вы будете делать
- Разрабатывать клиентское приложение: функции, архитектуру, производительность и стабильность релизов
- Писать и поддерживать нативный код для iOS, Android, Windows и Linux там, где Flutter не справляется
- Понимать поведение соединения в реальных сетях: отключения, деградация каналов, переключение при сбоях и характеристики операторов
- Управлять функциями от начала до конца: планирование → техническое решение → реализация → релиз → метрики/влияние (в сотрудничестве с командой и заинтересованными сторонами)
- Устранять ошибки до первопричины, в том числе те, что не в Dart (при необходимости в сотрудничестве со смежными инженерами)
- Поддерживать и разрабатывать форки сторонних плагинов и ядер, обеспечивая совместимость и предсказуемое поведение
Что мы предлагаем
- 🌍 Работайте откуда угодно — полностью удаленно (кроме России, Беларуси, Китая, Сирии, Ирана, Йемена, Северной Кореи и некоторых других регионов).
- 🗓️ Гибкая 5-дневная рабочая неделя — начинайте, когда вам удобно; слабо привязано к CET.
- 💻 Полностью оборудованное домашнее рабочее место — все необходимое оборудование за наш счет.
- 🌴 40 гибких оплачиваемых выходных дня + оплачиваемый больничный.
- ❤️ Льготы — VHI, оздоровление, языковые курсы, поддержка психического здоровья и реферальная программа.
Этапы
- 👋 Приветственный звонок
- 🛠️ Технический звонок
- 🤝 Звонок перед предложением