November 11

Senior Ruby Developer + Sidekiq

Remote

Срок привлечения: 3-6 недель (под конкретную задачу)
Старт - ASAP
Формат: Консалтинг с почасовой оплатой
Занятость: частичная, удаленно
З/п: рассматриваем вашу часовую ставку
Контакт: @aka_Buka

Ожидаемый результат: Экспертная оценка текущей реализации, конкретные рекомендации и помощь в их внедрении для создания отказоустойчивой, сбалансированной и производительной системы на базе Sidekiq.

Задача: Консультация и оптимизация Sidekiq в production-окружении

Цель: Провести аудит и оптимизацию текущей конфигурации и кода Sidekiq для повышения надежности, производительности и эффективности обработки фоновых задач в production-среде.

Ключевые задачи:

1. Анализ и оптимизация очередей:
* Проанализировать текущую структуру очередей.
* Предложить оптимальную стратегию разделения задач по очередям (priorities, ресурсоемкость).
* Настроить приоритизацию и обработку очередей.

2. Оптимизация взаимодействия с базой данных:
* Выявить и предложить решения для устранения проблем с блокировками (locks) в БД, возникающих из-за параллельного выполнения джоб.
* Проверить код джоб на предмет корректной работы с соединениями БД.

3. Анализ и рефакторинг кода:
* Провести ревью кода джоб и рабочих процессов (workers) на предмет лучших практик Ruby и Sidekiq.
* Помочь оптимизировать логику джоб для повышения их надежности и скорости выполнения (идентификация и устранение «узких мест»).

4. Конфигурация и настройка Sidekiq (желательно):
* Помочь с тонкой настройкой параметров Sidekiq (например, concurrency, timeout).
* Дать рекомендации по конфигурации Sidekiq в рамках инфраструктуры (например, настройка для Docker, управление памятью).

Требования к специалисту / компетенции:

* Обязательные:
* Глубокий, подтвержденный production-опыт работы с Sidekiq.
* Понимание внутренних механизмов Sidekiq для диагностики сложных проблем.
* Знание и умение применять лучшие практики для оптимизации очередей и повышения общей производительности системы.
* Практический опыт решения проблем с блокировками (locks) в реляционных базах данных (например, PostgreSQL, MySQL) при работе с фоновыми задачами.
* Свободное владение языком Ruby с способностью проводить код-ревью, давать рекомендации по рефакторингу и оптимизации кодовой базы, связанной с джобами.

* Желательные (будет большим плюсом):
* Опыт развертывания и инфраструктурной настройки Sidekiq (настройка серверов, мониторинг, управление процессами).
* Умение работать с инструментами мониторинга Sidekiq (Web UI, Sidekiq Metrics).