Oracle
Principal Software Development Engineer
Автоматический пересказ вакансии на русском. Полный текст на языке оригинала и форма отклика — на сайте работодателя.
Principal Software Engineer в Oracle для проектирования и эксплуатации базовых систем глобально распределённого объектного хранилища. Роль senior individual contributor: решение сложных задач распределённых систем и формирование технического направления платформы.
Задачи
- Проектировать и реализовывать ядро инфраструктуры объектного хранилища: метаданные, размещение данных, репликация, управление жизненным циклом, обеспечение долговечности
- Руководить проектированием распределённых систем с высокой доступностью, консистентностью, производительностью и простотой эксплуатации
- Повышать надёжность сервиса через изоляцию отказов, автоматическое восстановление, проектирование disaster recovery, планирование мощностей
- Определять техническую стратегию для сложных кросс-командных инициатив и влиять на архитектуру за пределами своей команды
- Расследовать и устранять сложные production-инциденты, предотвращая их повторение
- Создавать инструменты, автоматизацию и observability для упрощения эксплуатации и диагностики сервиса
- Совместно с командами безопасности и комплаенса внедрять secure-by-design практики в инфраструктуру хранения
- Задавать инженерные стандарты через design review, технический менторство и понятную письменную коммуникацию
Требования
- Сильный опыт разработки на Java или аналогичном языке, включая проектирование, разработку, тестирование, отладку и поддержку production-сервисов
- Глубокое понимание принципов ООП: абстракция, инкапсуляция, наследование, полиморфизм, композиция и применение паттернов проектирования
- Опыт проектирования чистых расширяемых API и сервисных интерфейсов с акцентом на поддерживаемость, тестируемость и обратную совместимость
- Опыт проектирования и построения распределённых систем, работающих на нескольких хостах, зонах доступности или регионах
- Знание концепций распределённых систем: репликация, консистентность, консенсус, partition tolerance, leader election, идемпотентность, retries, обработка отказов, eventual consistency
- Опыт проектирования систем с высокой доступностью, масштабируемостью, отказоустойчивостью и долговечностью данных
- Опыт конкурентного и многопоточного программирования, анализа производительности, управления памятью и диагностики узких мест по latency/throughput в Java-сервисах
- Владение практиками unit, integration и end-to-end тестирования, включая тесты для сценариев отказов и граничных случаев распределённых систем
- Опыт работы с observability: метрики, логирование, трейсинг, алертинг и production-отладка
- Умение писать понятные технические design-документы, оценивать архитектурные компромиссы и вести design review сложных сервисов
- Сильные навыки коллаборации и опыт работы с командами engineering, security, networking и operations
- Подтверждённая способность менторить инженеров, повышать инженерные стандарты и обеспечивать техническое лидерство без прямого управления людьми
Условия
- Позиция с работой onsite в Nashville, TN
- Предоставляется помощь с релокацией
- Годовая зарплата от $114,600 до $234,600
- Возможны бонусы, equity и compensation deferral
- Медицинская, стоматологическая и офтальмологическая страховка
- Страхование жизни и AD&D, дополнительное страхование жизни
- Гибкие счета для здравоохранения и ухода за зависимыми
- Предоплаченные транспортные и парковочные льготы
- План 401(k) с участием компании
- Оплачиваемый отпуск и 11 оплачиваемых праздничных дней
- Оплачиваемый больничный: 72 часа с даты найма
- Оплачиваемый родительский отпуск и помощь при усыновлении
- Employee Stock Purchase Plan
- Финансовое планирование и групповая юридическая помощь
- Добровольные льготы: авто, домовладельческое и страхование питомцев
Навыки
- Java
- Distributed systems
- Object storage
- RESTful APIs
- Concurrency
- Multithreading
- Observability
- Metrics
- Logging
- Tracing
- Alerting
- Replication
- Consensus
- Erasure coding
- Message queues
- Event-driven architecture
- Cloud infrastructure
- Containers
- CI/CD
- Authentication
- Authorization
- Encryption