Our primary backend systems are written in Ruby (we use Grape+Sequel instead of Rails), with some newer peripheral microservices developed in TypeScript/Node. Although strong Ruby skills are a requirement for this role, experience or interest in working in TypeScript/Node and other technologies is a big plus.
As a senior Ruby dev, you will:
- Work with a focused team of other talented engineers, designers, and product managers to develop our existing backend systems in a scalable fashion
- Communicate your design through documentations such as flow charts, sequence, entity relationship, GraphQL schema or OpenAPI schema diagrams
- Introduce new ideas, processes, and technologies to help evolve our infrastructure and architecture
- Mentor junior developers through collaboration and code reviews
- Collaborate with the product and business teams to identify new opportunities to develop new features and products
You should be the kind of person who:
- Cares about high-quality, elegant code and architecture
- Develops in an AGILE way without compromising quality
- Thinks deeply and critically about problems, tools, and processes
- Is passionate about building systems that have a positive social impact
- Has a decent sense humor (our dev team has a weird obsession with the Simpsons, sandwiches, and questionable emoji)
You should have:
- 3 years working experience developing in Ruby
- 5 years experience building complex, scalable backend systems
- Experience with distributed systems and microservices (Event driven architecture, CQRS, Domain Driven Design)
- Experience with React or another framework based on unidirectional data flow
- Experience building microservices in Node.js or Deno
- Some experience/knowledge in Typescript
- Experience in designing normalized (3NF) relational SQL databases
- Experience building RESTful and GraphQL APIs at scale
- Experience writing functional tests (unit, integration and system tests)
- Knowledge of best practices such as KISS, YAGNI, DRY and SOLID principles
- Knowledge of OOP and functional paradigms
- A desire to build things for the long-term, with the understanding that the care and attention you put into your work now will pay off later