Адаптируем резюме под ATS-фильтры, подготовим сопроводительное на основе резюме и вакансии, соберём гайд подготовки к собеседованию, найдём контакты HR и нанимающих
Ruby Labs — ведущая технологическая компания, которая создает и управляет инновационными потребительскими продуктами. Мы предлагаем разнообразные возможности в сферах здравоохранения, образования и развлечений. Наши инновационные команды формируют будущее продуктов, ориентированных на потребителя, и мы всегда ищем увлеченных специалистов, чтобы присоединиться к нам. Узнайте больше о нашей истории по ссылке: https://rubylabs.com/about-us/
В Ruby Labs мы ищем старшего инженера по настольным приложениям, который возьмет на себя ответственность за новый кроссплатформенный настольный продукт от первого коммита до выпуска в производство.
Это роль с высокой степенью ответственности и необычайно глубоким системным компонентом. Приложение не является оберткой веб-приложения: оно захватывает системный и микрофонный аудиосигнал в реальном времени, отображает всегда поверх других окон оверлей по всему рабочему пространству пользователя, регистрирует глобальные горячие клавиши и интегрируется с операционной системой на уровне, требующем нативного кода как для macOS, так и для Windows.
Наша архитектура основана на Electron для приложения и слоя пользовательского интерфейса, с нативными модулями и вспомогательными процессами на Swift и C++ там, где это требуется платформой. Вы будете отвечать за эту границу — решать, что должно быть написано на TypeScript, что — в нативном коде, и делать так, чтобы обе части работали как единый надежный продукт.
Вы также будете отвечать за все, что происходит после сборки: подписание кода, нотариальное заверение, права доступа, процесс предоставления разрешений, автообновление и отчетность о сбоях. В этом продукте это не второстепенные задачи; они составляют значительную часть инженерной работы, и ошибки в них могут помешать пользователям запустить приложение.
Вы будете выступать старшим техническим голосом по настольным приложениям в вашей команде, устанавливая инженерные стандарты для платформы.
Полная ответственность за архитектуру Electron — основные, рендерерные и вспомогательные процессы, дизайн межпроцессного взаимодействия (IPC), изоляция контекста, жизненный цикл процессов — и реализация основных функций в согласованные сроки.
Создание прозрачных, безрамочных окон-оверлеев, всегда поверх других окон, которые корректно работают в полноэкранном режиме, на нескольких дисплеях и с разным DPI, а также поддержка глобальных горячих клавиш, иконки в трее и низкой задержки интерфейса при постоянной фоновой нагрузке.
Проектирование чистой платформенной абстракции на TypeScript, чтобы реализации для macOS и Windows оставались изолированными и могли тестироваться независимо, а также написание идиоматичного Swift и C++ в нативном слое.
Поддержание надежности продукта: защитное обращение с нестабильными API платформы, тесты и код-ревью, соблюдение бюджетов по производительности, памяти и энергопотреблению, а также устранение замечаний по безопасности и результатам пентестов в рамках согласованных SLA по серьезности.
Разработка и поддержка нативного слоя: Node addons (N-API / node-addon-api) и вспомогательных процессов вне основного процесса на Swift и C++.
Реализация захвата системного аудио в реальном времени — Core Audio process taps и ScreenCaptureKit на macOS, WASAPI loopback на Windows — включая обработку смены устройств, согласование форматов и плавное восстановление после сбоев на уровне драйверов.
Интеграция с Accessibility API (AXUIElement) на macOS и UI Automation на Windows для надежного чтения контекста приложений.
Ответственность за протокол IPC и жизненный цикл между Electron и нативными помощниками, а также поддержание работоспособности приложения при изменениях платформ Apple и Microsoft.
Ответственность за подписание кода и нотариальное заверение на macOS — защищенный режим выполнения, права доступа, вложенное подписание бинарников, профили провижининга — а также за Authenticode-подпись, репутацию SmartScreen и ложные срабатывания антивирусов на Windows.
Проектирование процесса предоставления разрешений — микрофон, системное аудио, запись экрана, доступность — так, чтобы уровень одобрения оставался высоким, а ошибки можно было исправить.
Создание и поддержка конвейера релизов: CI-сборки по матрице, подписание из CI с сертификатами, защищенными аппаратно, автообновление, поэтапный выпуск и откат.
Ответственность за отчетность о сбоях и производственную телеметрию для настольного клиента и реагирование на полученные данные.
Опыт разработки программного обеспечения не менее 6 лет, включая промышленную разработку на TypeScript/Node.js.
Опыт создания и выпуска Electron-приложений для реальных пользователей не менее 3 лет — не внутренних инструментов или прототипов.
Практический опыт нативной разработки под macOS на Swift и/или Objective-C с использованием AppKit и как минимум одного системного фреймворка, такого как Core Audio, AVFoundation, ScreenCaptureKit или Accessibility API.
Опыт написания нативных Node addons (N-API / node-addon-api) или упаковки и взаимодействия с нативными помощниками вне основного процесса.
Подтвержденный опыт работы с подписанием кода macOS, нотариальным заверением, правами доступа и моделью разрешений TCC — вы отлаживали отклоненную нотариализацию и умеете читать логи.
Рабочие знания платформы Windows: Win32 API, Authenticode-подпись, а также практические аспекты репутации SmartScreen и антивирусов.
Глубокое понимание многопроцессной архитектуры, IPC и отладки проблем, которые воспроизводятся только на машине пользователя.
Опыт работы с аудиопотоками в реальном времени — буферизация, ресемплирование, микширование нескольких источников или потоковая передача в сервисы распознавания речи.
Подписание из CI с аппаратно защищенными сертификатами (Azure Key Vault, DigiCert KeyLocker или аналогичные), а также опыт работы с белыми списками антивирусов или построением репутации SmartScreen для нового продукта.
Инфраструктура автообновления, такая как Squirrel, electron-updater или Sparkle, включая поэтапные релизы.
Отчетность о сбоях и символикация для нативного кода (Crashpad, Sentry или аналогичные).
Опыт выпуска потребительского настольного продукта в значительном масштабе.
Ruby Labs работает в часовом поясе CET (Центральноевропейское время). Кандидаты из любой страны могут подать заявку, если они находятся примерно в пределах ± 4 часов от CET. Это обеспечивает оптимальное сотрудничество и коммуникацию в рабочее время.
Откройте для себя преимущества работы в нашей динамичной команде! Мы предлагаем:
Удаленная работа: Наслаждайтесь свободой работать из любого места и в любое время, поддерживая здоровый баланс между работой и личной жизнью.
Неограниченный оплачиваемый отпуск: Пользуйтесь неограниченным количеством оплачиваемых дней отдыха для восстановления сил и заботы о своем благополучии без подсчета дней.
Оплачиваемые национальные праздники: Отдыхайте и празднуйте национальные праздники с оплачиваемым выходным для расслабления и восстановления.
Компания предоставляет MacBook: Получите высокопроизводительный Apple MacBook, предоставляемый всем сотрудникам, которым он необходим для работы.
Гибкий договор с независимым подрядчиком: Откройте для себя преимущества гибкости, автономии и предпринимательских возможностей. Воспользуйтесь налоговыми преимуществами, возможностями для нетворкинга, снижением обязательств работодателя и свободой работать из любого места. Подробнее здесь: https://docs.google.com/document/d/1nkrN76JlZkbKj9WSOhlT1_mni_CZeDkHdwfIjPXVwvk/preview?tab=t.0#heading=h.ndsdl4wapxtt
Станьте частью нашей быстрорастущей команды и воспользуйтесь отличной возможностью для личного и профессионального роста!
После подачи заявки мы проводим тщательный отбор, который обычно занимает от 3 до 5 дней, но иногда может занять больше времени из-за большого количества заявок. Если мы видим потенциальное соответствие, мы переходим к следующим этапам:
Скрининг с рекрутером (40 минут)
Техническое собеседование (60 минут)
Финальное собеседование (40 минут)
В Ruby Labs мы движемся быстро, ставим высокие цели и ожидаем того же от нашей команды. Мы не здесь, чтобы играть в малое — мы здесь, чтобы строить, расти и побеждать. Это значит, что мы ищем людей амбициозных, целеустремленных и готовых выкладываться на все 100% каждый день.
Это место для тех, кто процветает под давлением, принимает вызовы и видит возможности в каждом препятствии. Если вы стремитесь к достижениям, мотивированы влиянием и хотите расти с темпом своей амбиции, Ruby Labs предлагает платформу для реализации ваших целей.
Здесь усилия вознаграждаются. Мы ценим тех, кто полностью вовлечен и достигает результатов, и создаем пространство для тех, кто хочет большего — больше ответственности, больше роста и больше успеха.
#LI-Remote
Будьте осторожны: если работодатель просит войти через Google, iCloud или Госуслуги, прислать код или пароль, запустить ПО или перевести деньги — это мошенники.
ЖмитеГайд по безопасности