Должность: Nuuly Senior Software Engineer
Штаб-квартира: Филадельфия, Пенсильвания
Nuuly ищет старшего инженера-программиста (Senior Software Engineer) для присоединения к нашей команде Технологий. Создание высокопроизводительных масштабируемых облачных сред — это сложно. Nuuly знает это на собственном опыте, построив облачную микросервисную платформу с нуля для обеспечения нашего онлайн-клиентского опыта и управления логистикой и обработкой в наших распределительных центрах. Мы ищем старшего инженера с инициативой и опытом, чтобы помочь развить эту платформу в стабильную, масштабируемую и надежную основу для запуска следующей волны инноваций Nuuly.
Вам потребуется опыт проектирования и создания микросервисов, поддерживаемых реляционными и нереляционными базами данных. Уверенное владение инструментами на базе JVM, такими как Kotlin, Spring, и технологии хранения данных с использованием Postgres и других баз данных. Вам также потребуется достаточная способность к проектированию и интеграции сервисов Kubernetes с облачными API-интерфейсами, такими как Google Cloud Platform (GCP), AWS или Azure, с фокусом на развертывание с нулевым временем простоя.
Как старший инженер, вы принесете с собой опыт, выходящий за рамки личного вклада в код: руководство проектированием умеренно сложных функций, налаживание коммуникации между командами, предоставление критически важной обратной связи, координация работы с другими и, при необходимости, наставничество. Вы будете участвовать в реагировании на инциденты и процессах пост-анализа для повышения надежности системы. Вы должны уметь быстро осваивать новые технологии и шаблоны, а также быть готовым обсуждать и спорить о преимуществах и недостатках различных подходов. Прежде всего, вы должны быть готовы и желать решать новые задачи вместе с поддерживающей командой творческих и трудолюбивых профессионалов.
Обязанности:
- Подготовка предложений по архитектуре и участие в обсуждениях и принятии решений по новым функциям и эволюции платформы
- Сотрудничество с командой продукта для проектирования решений для функций заинтересованных сторон и информирования о решениях продукта посредством анализа технической осуществимости
- Наставничество младших инженеров посредством обзора кода, парного программирования и обсуждения дизайна
- Доставка функций, пригодных для развертывания, на всем жизненном цикле: дизайн, кодирование, тестирование, настройка, документирование, развертывание и поддержка
- Вклад в операционные руководства, практики надежности системы и пост-анализ инцидентов в производственной среде
- Обучение и внедрение методологий разработки, а также проактивное выявление возможностей для улучшения кодовой базы, инструментов и процессов
- Сотрудничество с командами QA и Platform Engineering для тестирования кода и обеспечения бесперебойной работы наших интегрированных сред тестирования
- Предоставление технического руководства межфункциональным командам по подходам к интеграции и ограничениям системы для предоставления функций и эволюции нашей архитектуры
Квалификация:
- 5-7 лет опыта разработки программного обеспечения, около 2 лет с обязанностями старшего уровня, такими как принятие на себя ответственности за проекты или их дизайн и координация работы между командами
- Операционное знание одного или нескольких объектно-ориентированных языков программирования на стороне сервера (предпочтительно Java, Kotlin, Scala или другие JVM-языки; также рассматриваются Python, Go, Node/TypeScript)
- Способность уверенно говорить о микросервисной архитектуре, дизайне распределенных систем, потоковой передаче данных, технологиях обмена сообщениями и шаблонах проектирования баз данных
- Опыт и энтузиазм в тестировании, разработке через тестирование (test-driven development) и создании надежных систем
- Умение эффективно использовать AI-инструменты в повседневных задачах разработки, таких как генерация кода, отладка и документирование
- Способность быстро приступить к работе и легко ознакомиться с существующей кодовой базой и инструментарием
- Способность предлагать и представлять решения в обсуждениях технического лидерства и эффективно общаться с межфункциональными командами
- Операционное знание Java, Kotlin, Scala или других JVM-языков (также рассматриваются Python, Go, Node/TypeScript)
- Опыт проектирования, создания и эксплуатации микросервисных архитектур; экспертиза в RESTful API, HTTP-протоколах и шаблонах интеграции сервисов
- Опыт работы с Google Cloud Platform (GCP) или другими крупными облачными провайдерами (AWS, Azure); знание контейнерных технологий (Docker, Kubernetes)
- Практический опыт работы с реляционными базами данных (Postgres, AlloyDB) и понимание моделирования данных, оптимизации запросов и эволюции схемы.
- Понимание шаблонов проектирования распределенных систем, моделей согласованности и компромиссов в микросервисных архитектурах (например, Kafka, Spark, Storm и т. д.)
AI/LLM Proficiency:
- Практический опыт использования больших языковых моделей (ChatGPT, Claude, Cursor, Windsurf, Copilot и т. д.) для рабочих задач
- Понимание prompt engineering и того, как предоставлять эффективный контекст AI-инструментам
- Знакомство со структурированными методами AI-руководства (системные промпты, файлы правил, конфигурации агентов)
- Знание концепций интеграции AI-инструментов (MCP, коннекторы, агентские рабочие процессы)
- Способность выявлять возможности для повышения эффективности за счет использования AI