Position: Middle Ruby on Rails Developer for Avo
Company: Ciklum
Experience required: 2y
English level: intermediate

**Description**
On behalf of Ciklum Digital, we are looking for a Middle Ruby on Rails Developer to join our team on a full-time basis.

**About the Project:**
Avo is an under-the-radar, fast-growing startup (post-series A) that is building the future of e-commerce. We build custom, white-labeled online stores where customers can order same-day delivery of anything from fresh groceries & personal care items to electronics and more.

We offer competitive prices, with no delivery fee or minimum order size. We are building the future of e-commerce, and are looking for builders with a passion for innovation, impact & speed to join us.

We are backed by Kleiner Perkins, Y Combinator (YC’ S18), and early Facebook and Uber business development and operations leaders.
We currently operate in New York, Chicago, and Israel and are rapidly expanding.

**Responsibilities**
- Back-end development to meet customer’s business needs and implement components according to modern software development environment (cloud-based platforms, microservice architecture, etc.)
- Taking part in the decision-making process of application architecture design, solution development, architecture and code review
- Develop and review feature design documents and provide inputs/updates to the solution specification
- Design and implement a set of various types of tests (unit, integration, functional, etc)
- Proactive position in solution development, process improvements
- Working in an international distributed team in an Agile environment
- Communicate with PMs, engineers, Architects, QA and other colleagues and stakeholders
- Delivering the product roadmap and plannings
- Following coding standards, software best practices and writing highly testable, automatable and performant code over the whole SDLC

**Requirements**
- Experience in software development for more than 3 years
- Excellent knowledge in Computer Science, Computing Theory:
- Paradigm & Principles (OOP, SOLID, TDD, etc.)
- Database theory (RDBMS)
- Code testing practices
- Algorithms & data structures
- Application design patterns
- Conventions (e.g. REST, RPC)
- Authentication and authorization flows, best practices (e.g. oAuth, JWT)
- Excellent knowledge and experience in Ruby on Rails (more than 2 years)
- Practical commercial experience with:
- REST API development
- Web application frameworks, Testing frameworks, ORM
- RDBMS (PostgreSQL)
- Key-value storages (e.g. Redis, Memcached)
- Messaging systems (e.g. RabbitMQ, Apache Kafka, Active MQ, Google Pub/Sub)
- Version control systems (GIT)
- Continuous Integration tools (e.g. Circle CI)
- Builders
- Experience with:
- Agile software processes and technologies
- Code Review process
- Refactoring process
- Fluent or Upper-Intermediate English

**You can:**
- Perform a broad range of complex technical or professional activities, in a variety of contexts. Investigate, define, and resolve complex issues
- Able to work in distributed cross-functional teams effectively
- Influence customers and team members on the project level
- Plan, schedule, and monitor your own work (and of others where applicable) competently
- Have learning agility (readiness for challenge and being open to change)

**Desirable**
- Understanding of orchestration and containerisation (e.g. Kubernetes, Docker Swarm)
- Knowledge in Deployment patterns
- Practical commercial experience with:
- NoSQL (e.g. MongoDB, CouchDB)
- Experience with Search Engines (e.g. ElasticSearch, Azure Search, Apache Solr)
- Provisioning tools (e.g. Terraform, Ansible)
- Quality tools (e.g. SonarQube)
- Experience with TDD environments (RSpec, Minitest, Capybara, Selenium)
- Experience with web architecture at scale (20krpm and above)
- Experience solving logistical problems with software
- Monitoring, alerting approaches
- Cloud computing platforms
- Integration with 3rd party solutions
- Docker

**What's in it for you**
- Close cooperation with the client
- A constant flow of new projects
- Dynamic and challenging tasks
- Ability to influence project technologies
- Projects from scratch
- Team of professionals: learn from colleagues and gain recognition of your skills
- European management style
- Continuous self-improvement