Ruby On Rails Developer

Job Description

Do you like writing mean and clean Ruby code? Come join our team and help us build amazing things. We’re looking for someone with a passion for programming and for writing beautiful code. You will join a team of exceptional developers working in a fast-paced environment to deliver world-class software.

 

Responsibilities:

  • Write clean, maintainable, and efficient code
  • Design robust, scalable and secure features
  • Contribute to all phases of the development lifecycle
  • Follow best practices (test-driven development, continuous integration, SCRUM, refactoring, and code standards)
  • Drive continuous adoption and integration of relevant new technologies into the design

 

Requirements and skills:

  • Should have at least 3 to 4 years of relevant experience.
  • Proven work experience as a Ruby on Rails developer

 

Our Stack:

  • Ruby on Rails
  • PostgreSQL + ActiveRecord
  • Redis
  • Sidekiq
  • RabbitMQ
  • RSpec, FactoryBot
  • Docker

 

About our Application:

 

Architecture:

Our main application is updated with Rails 6 API type that exposes Restful and Graphql endpoints for our front end. We follow Rails MVC application structure of models, views, and controllers.

 

The application is structured in a way that all the logic for handling features is separated into interactor classes (one class per feature). We try to keep SQL queries in ActiveRecord models and business logic in interactor classes. Our controllers contain no business logic; they only parse input data, call an interactor for a given feature, and render results using the proper view class. We aim to keep the controller's layer thin and all the logic in the interactors. We currently have 3 API versions (3 REST versions + 1 GraphQL-based endpoint) still available in production - they differ by having a different format of JSON in responses but reuse the same interactors code.

 

Database:

Our database is Postgresql and ActiveRecord as ORM. In some places, we use custom SQL for handling bulk reads/saves where higher performance is needed.

 

Views:

Our view layer uses a custom in-house library for JSON rendering for REST endpoints and graphql gem for Graphql endpoints. We use Redis as a cache database for JSON rendering and other temporary data.

 

Background Jobs:

In our background jobs, we use the Sidekiq gem with a Redis database. Users can upload files into our system which are stored in S3, with a backup in Glacier. We are currently using Paperclip but probably in the future for Rails 7 we will update it. We use RabbitMq to integrate different parts and other services.

 

Test:

We use RSpec to unit tests with FactoryBot used to generate test data. We aim to fully cover business logic - SQL queries and feature logic with unit tests and then have fewer top to bottom unit tests in RSpec that test the flow of calls while mocking database access.

 

Deployment:

Our deployment is complete automatic you just have to merge your code and then CI/CD runs and informs you about Rubocop violations, tests cases, and other information about the codebase.

Job Summary

  • Published on:2022-05-17 3:11 am
  • Vacancy:1
  • Employment Status:Full Time
  • Experience:3 Years
  • Job Location:Islamabad
  • Gender:No Preference
  • Application Deadline:2026-01-24