Open Positions 1
Experience 2 Years
We are looking for an experienced Ruby on Rails Developer to join our small team of developers.
- 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
- Check rollbar issues, fix if important
- Check heroku issues, dump data, check if dump works
- Check queries, improve them
- Update servers
- Update internal libraries to fix a security vulnerability issues
- Experience working with Ruby on Rails (5+ version) and a deep understanding of all of its components.
- Rubym, 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 be able to understand what refinements are and how the alias_method method is different from alias keyword.
- 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).
- Need to understand common ruby patterns (decorator, factory, singleton, observer, iterator, command, 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);
- 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 writing CLI applications would be a plus.
- Use of Vagrant, Docker or other tools for efficient development environments;
- Experience with orchestration tools, such as Docker Swarm or K8s;
- Experience with message queue and streaming systems (RabbitMQ, Kafka).
We are looking for someone to work full time.