**This position will ideally be contract to hire after 6 months.**
- 3+ years of backend development experience on production apps
- Experience with integrating with third party APIs and Webhooks.
- A strong knowledge of Ruby on Rails
- A solid understanding of object-oriented programming and design
- Relational database skills — we use PostgreSQL views, triggers, and functions
- Familiarity with MVC, API & data mocking, ORM, and RESTful APIs
Nice to Have
- Full stack development experience with React and Next.js.
- Experience with Elasticsearch and Datadog.
- Knowledge of JSON-API
- Familiarity with DevOps tools and cloud infrastructure management
About the Role
We are seeking a senior backend developer with a Ruby background to join our team as we solve exciting new problems in the outdoor space. In this role, you’ll be working to evolve and maintain our API, data processing pipelines, and other backend systems. This position will report to the Lead Backend Developer.
We’re looking for people who...
- Are great communicators — Effective communication is key to how we work. We value patience and empathy in our product planning, support, and day-to-day relations.
- Work well both collaboratively and independently — We come together to pair on tricky problems and architecture, then dive deep on individual tasks.
- Are ready to learn and share knowledge — Everyone comes to our company with their own set of skills and experiences. Cross-training, code review, mentorship, and curiosity all help us build better products.
- Work well both collaboratively and independently — We come together to pair on tricky problems and architecture, then dive deep on individual tasks.
Key Responsibilities
- Work closely with our web and mobile developers on the implementation of new product features
- Collaborate on API design and architecture decisions
- Diagnose and troubleshoot backend issues in production
- Maintain integrations with external services, such as Stripe, Iterable, Amplitude, Mapbox, and our campground partners
- Update and maintain existing API functionality
- Ensure the best possible performance, quality, and responsiveness of the solution
- Identify bottlenecks and bugs, and devise solutions to these problems
- Maintain code quality, organization, and automatization.