Senior Software Developer (Elixir/ROR)

  • Full-time

Company Description

Stack Avenue is an innovative Software Company who builds and manages awesome software for many organizations including ourselves and in various technologies to serve the needs of multiple industries. We specialize in:  Software Architecture and Design,  Development and Testing,  Deployments and Operations.

Job Description

Your Roles and Responsibilities

  • Design and write with the cutting edge Elixir language to improve the availability, scalability, latency, and efficiency of company’s range of products.

  • Work with the engineering team to explore and create new design/architectures geared towards scale and performance.

  • Participate in code and design reviews to maintain our high development standards.

  • Engage in service capacity and demand planning, software performance analysis, tuning and optimization.

  • Collaborate with product and experience teams to define and prototype feature specifications.

  • Work closely with the infrastructure team in building and scaling back-end services as well as performing root cause analysis investigations.

  • Design, build, analyze and fix large-scale distributed systems.

Qualifications

We are looking for developers with 5+ years of experience of which 1-2 yrs of past work experience with Elixir or Erlang. In terms of Elixir we expect the following:

  • You should be aware of idiomatic programming in Elixir, and should have good awareness of concepts such as pattern matching, recursion, and behaviors.

  • You should be well versed with concurrency and processes in Elixir. 

  • You should be hands on with Genservers, Tasks, Agents, Supervisors, and other OTP concepts in Elixir.

  • Plus points if you have worked with data processing libraries such as Genstage, Flow and Broadway.

  • 5+ years of overall software engineering experience.

  • You should have good experience working with relational and non-relational databases. We use Postgres and Cassandra.

  • Good to have but not mandatory working experience with caching tools such as Redis, Queue mechanism setup with RabbitMQ.

  • Good knowledge of version management with Git.

  • Awareness of TDD. 

  • CI/CD knowledge would be a huge advantage.

  • Will to design and maintain large scale distributed systems.

  • Past experience in building complex applications, either by yourself, or as part of a larger team

  • Desire (obsessive?) for maintainability.

  • Experience of working with cross-functional remote teams in an Agile software development framework.

  • Experience in designing APIs with proper documentation.

  • Ability to write useful and maintainable tests.

  • Good understanding of the common architectural patterns and design principles.

  • Solid understanding of how modern web applications work.

  • (Nice to have) Being an active member of the Elixir community (writing blog posts, giving presentations in meetups, etc).

  • Strong written and verbal communications skills in English to engage a variety of large audiences, internally and externally.

  • Strong analytical and reasoning skills.

  • Bachelor’s Degree or equivalent in any relevant discipline.

Additional Information

Location : Work from home.

Job Type : Full Time