A skilled Ruby on Rails developer is needed to expand the software development team for our client. Working on internal software, this individual will build features to help the product grow and grow. The chosen applicant will also get the chance to manage a software development team and work on cutting-edge new applications.
Responsibilities:
1. Design, build, and maintain efficient, reusable, and reliable Ruby code
2. Integration of data storage solutions (may include databases, key-value stores, blob stores, etc.)
3. Integration of user-facing elements developed by front-end developers with server side logic
4. Identify bottlenecks and bugs, and devise solutions to these problems
5. Help maintain code quality, organization and automatization
Required Skills:
6. Experience working with Ruby on Rails (5+ version) and a deep understanding of all of its components.
7. 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.
8. 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, webmock, timecop, simplecov, faker, vcr and so on).
9. Need to understand common ruby patterns (decorator, factory, singleton, observer, iterator, command, chain of responsibility and so on).
10. Active Record (pattern itself, conventions, migrations mechanism, types of associations, scopes, difference between optimistic and pessimistic locking).
11. Object-Oriented Design ( SOLID, GRASP, especially POODR ).
12. PostgreSQL ( MVCC, data types, security, reliability and disaster recovery, concurrency and performance, b-tree, multicolumn, expressions, partial, gist, gin indexing and so on);
13. SQL (without ORM); PL/pgSQL would be a plus
14. Git (without GitKraken, SmartGit, SourceTree).
15. Basic Network Engineering ( TCP/IP, NAT ) and all protocols from layer 7 in depth ( HTTP, HTTPS, SMTP, FTP, SSH, DNS and such).
16. 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).
17. Linux administration skills.
18. Key Values stores ( Redis, Memcached ).
19. Experience with AWS or other cloud services ( Google Cloud, MS Azure, Heroku, Digital Ocean, etc).
20. Experience with Docker
Bonus skills:
21. Experience with orchestration tools, such as Docker Swarm or K8s ;
22. Experience with message queue and streaming systems ( RabbitMQ ).
23. Experience with GraphQL
If you are interested please apply or email