Position: Middle Ruby on Rails Developer 🧨
Company: Ciklum
Category: Ruby
Experience required: 3y
English level: intermediate

**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