We're looking for Senior Backend Engineers to join our platform team, we're preferring candidates who've worked with large Ruby on Rails codebases before. Our engineering team is remote and distributed across a few countries.
Who we're looking for
We want someone to help us build new features and maintain our current system as well as help us build with designing and implementing communication strategies across different services.
The ideal candidate is someone who has:
(We don't expect you to have experience with all of these)
- Worked remotely with lots of asynchronous communication before and is a good writer
- Worked on a large Rails codebase
- Worked on product-oriented software at scale
- Has experience with MySQL
- Has experience with cloud services (e.g. Amazon S3, Amazon SQS, and other tools)
- Worked on scaling background jobs (we use Sidekiq)
A big plus is for candidates who've worked with a large Rails codebase and dealt with problems that arise from experimenting and change that have accumulated over the years until the product and business requirements became clear.
We're open to candidates who have experience with other languages and frameworks but preference will be given to ones who've tackled these problems for Ruby on Rails.
What You'll Be Doing
The majority of your time will be spent on adding features and fixing bugs, as well as documenting issues and sharing your opinions on how we can improve our platform, or on how to better design a feature. We're heavily asynchronous and use we expect you to write a lot whether in wikis, issues, Slack, and so on.
- Working on bug fixes and helping design new features in a simple and clean manner, both for our REST APIs that are consumed by our mobile apps (iOS, and Android) and for ERB views for our backoffice/admin panel.
- Architecting a framework to facilitate communication across our different services (e.g. Business Portal, Payouts)
- Helping us achieve zero-downtime MySQL migrations
- Optimizing background workers to operate on smaller datasets
- Adding unit and integration tests and helping us follow Behavior-Driven Development (we mainly use RSpec)
- Work with product, UX teams, and mobile engineering teams to help fine-tune features and ensure we're delivering great value to our users
- Talking with fellow teammates from the engineering and product teams (mainly asynchronously via Slack, and occasionally synchronously via Slack/Zoom) to understand our business needs and our current code/database structures and occasionally assisting the Platform Refactoring team so they can produce code that works for you.
This team is in charge of working on the APIs that serve our mobile apps and integrations.
This team is responsible for building and maintaining internal tools to support our operations, customer support, and accounting staff to do their jobs.
This team is responsible for the whole payment process from collecting money from customers to sending payouts to couriers.
Our Hiring Process (~1 month)
- After we receive your application, we'll send you a short questionnaire that shouldn't take more than an hour to complete.
- We'll have a quick call for you to get to know us and us to get to know you (~45 minutes).
- We'll do a pair programming session which involves reviewing a pull request on a small Rails application (1.5 hours).
Pair Programming Session Details
We'd like for you to review the pull request we'll send you and add feedback as you would for any pull request. You'll have access to the pull request a few days before the session and you can leave your feedback as comments. Make sure to cover any case where you'd say to yourself "I wouldn't do it this way".
We'll review your comments during the session and pair program with you taking the role of the driver and apply your feedback. Make sure you can run the code before the session.