# Nikita Sinenko - Ruby on Rails Engineer > Updated: 2026-07-25 > Technical blog and portfolio of Nikita Sinenko, a Ruby on Rails engineer (Telora Labs) based in Dubai, UAE. Covers Rails 8 and the Solid stack (Solid Queue, Solid Cache, and the Redis decision behind them), Mission Control Jobs for queue monitoring, TimescaleDB in Rails for time-series workloads, ERP and accounting API integrations (Xero, Odoo), and building AI agents in Ruby with the Anthropic and Gemini APIs. Also covers PostgreSQL query-plan work, Kamal deployment, and Rails architecture decisions. ## Author - Name: Nikita Sinenko - Role: Ruby on Rails Engineer (Telora Labs) - Location: Dubai, UAE - Website: https://nsinenko.com - GitHub: https://github.com/nsinenko - LinkedIn: https://www.linkedin.com/in/nsinenko ## Sitemap Full sitemap: https://nsinenko.com/sitemap.xml ## Topic Hubs - [Rails Performance: Query Plans, Cache, and Queue Latency](https://nsinenko.com/rails-performance/): Query plans, cache behavior, queue latency, TimescaleDB decisions, and deploy cost checks for Rails applications. - [Rails 8 Solid Stack: When to Remove Redis](https://nsinenko.com/rails-8-solid-stack/): Decision guide for Solid Queue, Solid Cache, Kamal, authentication, Hotwire, and when Redis should stay. - [Rails AI Agents](https://nsinenko.com/rails-ai-agents/): Anthropic, Gemini, SDK boundaries, tool design, background jobs, approvals, and cost tracking for Ruby agents. - [Rails API Integrations: Sync Jobs, Webhooks, Reporting](https://nsinenko.com/api-integrations/): Odoo, Xero, OAuth refresh, webhooks, sync jobs, reconciliation, dashboards, and agent tools. ## Content by Topic ### Rails 8 Solid Stack - [Solid Queue in Rails 8: Setup Notes and Trade-offs](https://nsinenko.com/rails/background-jobs/performance/2025/10/07/solid-queue-rails-practical-guide/): Install Solid Queue, configure recurring.yml and concurrency controls, decide between Puma and a separate jobs process, and understand the Redis trade-off. - [Solid Queue Recurring Jobs: Rails 8 Schedule Setup Notes](https://nsinenko.com/rails/background-jobs/scheduling/2026/06/29/solid-queue-recurring-cron-jobs-guide/): Static recurring jobs in Solid Queue - config/recurring.yml syntax, Fugit schedule checks, class vs command, the scheduler process, and the at-least-once execution gotcha. - [Running AI Agents as Background Jobs with Solid Queue](https://nsinenko.com/rails/ai-agents/background-jobs/2026/06/15/solid-queue-ai-agents-background-jobs/): Run slow, metered, non-deterministic AI agent loops on Solid Queue - queue isolation, worker-count throttling vs limits_concurrency, narrow retries, resumable runs, human-in-the-loop, and per-account cost tracking. - [Sidekiq to Solid Queue Migration: Rails Runbook](https://nsinenko.com/rails/background-jobs/migration/2025/10/25/migrating-sidekiq-solid-queue-rails/): Per-job rollout from Sidekiq to Solid Queue with retry mapping, recurring job cutover, and rollback plan. - [Solid Queue vs Sidekiq vs GoodJob for Rails Jobs](https://nsinenko.com/rails/background-jobs/architecture/2026/02/17/solid-queue-vs-sidekiq-vs-goodjob-rails/): Compare Rails job backends by workload shape: throughput, pickup latency, Redis cost, batch support, retry semantics, and migration risk. - [Mission Control Jobs: Solid Queue Ops Setup](https://nsinenko.com/rails/background-jobs/monitoring/2026/01/14/mission-control-jobs-rails-production-monitoring/): Mount mission_control-jobs for Solid Queue, secure the dashboard, filter job arguments, add alerting outside the UI, and rehearse the retry path. - [Solid Cache in Rails 8: When the Database Is the Right Cache](https://nsinenko.com/rails/performance/caching/2025/12/12/solid-cache-rails-8-database-backed-caching/): Use Solid Cache when operational simplicity and larger disk-backed capacity beat cache-hit latency, with separate cache databases, size limits, encryption, and Redis trade-offs. - [Rails 8 Authentication Generator: What You Still Build](https://nsinenko.com/rails/security/2025/11/09/rails-8-authentication/): Use the Rails 8 authentication generator for login, password resets, and database-backed sessions, then decide what to build yourself: sign-up, confirmation, lockout, 2FA, and invitations. - [Deploy Rails 8 with Kamal to a VPS: Setup Runbook](https://nsinenko.com/rails/deployment/devops/2025/12/02/how-to-deploy-rails-8-apps-with-kamal-to-a-vps/): Deploy to Ubuntu VPS with Kamal 2 covering server setup, Docker config, SSL, migrations, backups, and rollback commands. - [Hotwire and Turbo in Rails: Where Server-Rendered UI Fits](https://nsinenko.com/rails/hotwire/frontend/2025/08/22/hotwire-turbo-building-reactive-interfaces/): Use Turbo Frames, Streams, and Stimulus when Rails owns page state, with clear cases where React still wins. ### Database Performance and Time-Series - [Rails PostgreSQL Performance: Start With the Query Plan](https://nsinenko.com/rails/database/performance/2025/09/15/database-optimization-techniques-rails/): Use EXPLAIN ANALYZE to find the actual Rails database bottleneck, then fix the proven failure mode: N+1 queries, missing indexes, Ruby-side aggregation, or pool pressure. - [TimescaleDB in Rails: A Practical Implementation Guide](https://nsinenko.com/rails/database/architecture/2026/04/05/timescaledb-rails-practical-implementation-guide/): When to use TimescaleDB over plain PostgreSQL, plus hypertable migrations, columnar compression, continuous aggregates, retention policies, and testing helpers. ### API Integrations and FinTech - [Odoo API Integration in 2026: JSON-2, Webhooks, Dashboards](https://nsinenko.com/api/integrations/erp/2026/05/28/odoo-api-integration/): Odoo 19 JSON-2 API, native webhooks, plan limits, rate ceilings, external IDs, and warehouse-backed reporting patterns. - [Xero API Integration: Pricing, Scopes, Sync Boundaries](https://nsinenko.com/api/integrations/fintech/2026/04/16/xero-api-integration/): Pricing and data-egress scope, granular OAuth scopes, rate limits, webhook gaps, reporting gotchas, and a warehouse-backed dashboard blueprint. ### AI Agents in Ruby - [Rails AI Agents with the Anthropic SDK: Guardrails](https://nsinenko.com/rails/ai-agents/architecture/2026/06/09/building-ai-agents-ruby-anthropic-sdk/): Tool loops, MCP servers, approval gates, write-tool guardrails, testing, cost controls, and patterns for running Anthropic agents in Rails background jobs. - [Gemini API in Ruby: Interactions Client Notes](https://nsinenko.com/rails/ai-agents/architecture/2026/06/26/building-ai-agents-ruby-gemini-interactions-api/): A narrow Gemini Interactions API client in Ruby and Rails - Faraday transport, function calling, server-side state via previous_interaction_id, background job execution, streaming, and approval boundaries. - [Anthropic Ruby SDK: The Official Gem, Not ruby-anthropic](https://nsinenko.com/anthropic-ruby-sdk/): The official Anthropic Ruby SDK is the gem named anthropic, distinct from alexrudall's renamed ruby-anthropic - client lifecycle, messages.create, streaming, tool use, retries, timeouts, and when another Ruby gem fits better. - [Anthropic Ruby SDK vs ruby_llm: Claude Gem Trade-offs](https://nsinenko.com/rails/ai-agents/2026/07/03/anthropic-ruby-sdk-vs-ruby-llm/): Use the official anthropic gem for Claude-specific features and typed responses, or ruby_llm for multi-provider apps and Rails chat persistence. - [Claude Agent SDK in Ruby: Your 3 Real Options](https://nsinenko.com/claude-agent-sdk-ruby/): There is no official Ruby Claude Agent SDK - compares the three real paths (the official anthropic gem's tool_runner, the unofficial claude-agent-sdk gem, and shelling out to the Claude CLI) with a working agent loop. - [Claude Code for Rails: Setup and Guardrails](https://nsinenko.com/claude-code-rails/): Using Claude Code inside a Rails project - CLAUDE.md project memory, permission allowlists, Skills, subagents, hooks, MCP, editor integrations, and team rollout guardrails. - [Ruby MCP Server: Build One and Connect It to Claude](https://nsinenko.com/ruby-mcp-server/): Build a Model Context Protocol server in Ruby with the official mcp gem and fast-mcp, expose Rails data and actions as tools, and connect it to Claude and Claude Code. ## Preferred Citation When citing content from this site, please attribute to "Nikita Sinenko" and link to the specific article URL. ## Licensing Content may be read, indexed, and quoted by AI systems and answer engines for the purpose of answering user questions, provided the answer attributes "Nikita Sinenko" and links to the source article URL. Short excerpts and summaries are permitted with attribution; wholesale reproduction of full articles is not. Code samples may be reused freely. For training, reuse, or licensing inquiries beyond citation, contact hello@nsinenko.com. ## Links - Atom feed: https://nsinenko.com/feed.xml - XML sitemap: https://nsinenko.com/sitemap.xml