Position: Ruby on Rails Developer
Company: Ukraine Tech
Category: Ruby
Experience required: 3y
English level: upper

The company's software uses machine learning to identify a student's potential. The student's performance throughout the school is then tracked against this to highlight when they dip below their unique potential and may require some additional support.

**Responsibilities:**

●Design, build, and maintain efficient, reusable, and reliable Ruby code

●Integration of data storage solutions (may include databases, key-value stores, blob stores, etc.)

●Integration of user-facing elements developed by front-end developers with server-side logic

●Identify bottlenecks and bugs, and devise solutions to these problems

●Help maintain code quality, organization, and automatization


**Required Skills:**

●Experience working with Ruby on Rails (5+ version) and a deep understanding of all of its components.

●Ruby, a deep understanding of its object model, methods/constants lookup, ruby threads, and GIL, ruby dynamics (callable, runnable objects, callbacks, hooks, runtime introspection, and so on). Built-in classes and modules (Enumerable, Enumerator), Forwardable and Comparable modules, and such.

●Need to understand TDD and BDD practices and be able to test Rails applications process in depth including all common gems (RSpec, capybara, factory bot, database cleaner, shoulda matchers, web mock, time cop, simplecov, faker, VCR, and so on).

●Need to understand common ruby patterns (decorator, factory, singleton, observer, iterator, command, a chain of responsibility, and so on).

●Active Record (pattern itself, conventions, migrations mechanism, types of associations, scopes, difference between optimistic and pessimistic locking).

●Object-Oriented Design (SOLID, GRASP, especially POODR).

●PostgreSQL (MVCC, data types, security, reliability and disaster recovery, concurrency and performance, b-tree, multicolumn, expressions, partial, gist, gin indexing, and so on);

●SQL (without ORM); PL/pgSQL would be a plus

●Git (without GitKraken, SmartGit, SourceTree).

●Basic Network Engineering (TCP/IP, NAT) and all protocols from layer 7 in depth (HTTP, HTTPS, SMTP, FTP, SSH, DNS, and such).

●Security (sessions mechanism, cross-site request forgery, cross-site scripting, session hijacking, difference between SQL Injection and CSS Injection, feature policy and content security policy HTTP headers).

●Linux administration skills.

●Key Values stores (Redis, Memcached).

●Experience with AWS or other cloud services (Google Cloud, MS Azure, Heroku, Digital Ocean, etc).

●Experience with Docker


**We offer:**

●Fully remote work;

●Flexible working hours;

●Interesting and challenging tasks, rapid career growth;

●Paid leave and sick leave + holidays;

●Work in a well-organized professional team and fun environment at the same time.