Job Openings Ruby on Rails Developer

About the job Ruby on Rails Developer

Our company provides a virtual health management platform, primarily focused on weight loss clinics and remote patient monitoring. A branded web-based dashboard is provided for providers/nurses/doctors/administrators, and a branded iOS and Android mobile is provided to patients. Along with a series of Bluetooth-connected devices (body fat scale, blood pressure cuff, etc), patients track information in the mobile app and interact with its various features (food logging, measurement tracking, messaging, scheduling, content and forms, video conferencing, etc) and providers are able to manage this information from the web dashboard.

We are implementing an eCommerce platform based on Spree. Our clients sell a mix of goods and/or services to their patients, and our e-commerce platform will allow an integrated way for the clinics to accept payment for those items. We are utilizing a multi-tenant setup that will allow our various clients to present a custom-branded storefront from which to sell products and services. Payments will be processed through Stripe Connect, which will allow our company to capture a fixed fee/percentage of the sale, and send the remaining funds to the client. Most of the implementations of Spree in the platform are anticipated to be through either the Storefront API or the Spree administrative backend.

We currently have a production and test Spree environment and are working actively with a couple of clinics in anticipation of releasing an MVP eCommerce solution.


  • Significant experience with Ruby on Rails
  • Experience with Spree or another self-hosted eCommerce platform
  • Experience with Stripe or another payment gateway, and ideally Stripe Connect
  • Experience with or knowledge of multi-tenant systems

Routine Tasks

  • Serve as the owner, key resource, and expert for the CoachCare Spree e-commerce system. The technology team will depend on your skill and experience to recommend, design, plan, and create thorough and stable eCommerce solutions.
  • Manage the codebase of production and test Spree stores
  • Manage platform updates
  • Create customizations as needed, particularly around multi-tenant needs
  • Support existing frontend and backend development teams with any Spree questions or expertise

Upcoming Projects

  • Integrations with Magento
    We have an existing client that needs to do a one-way integration from Spree to their Magento e-commerce platform. The work here supports the creation of users and already-purchased products and their statuses, not the workflow's shopping, cart, or payment components.
  • Multi-Tenant
    Enhance spree to support a store admin role, which will expose content only associated with the accounts associated with store(s). This includes: orders, users, products, settings, email/branding customizations, and potentially API endpoint adjustments and webhook adjustments
  • Avatax Tax Calculation
    We will automatically calculate and charge a tax per Spree store using the officially-support Avalara Spree extension.
  • Reporting
    Build out and create necessary internal and external reports using data from Spree and possibly the CoachCare platform.
  • Stripe and Bespoke Integrations as Needed
    Create customizations to support Stripe and (as needed) ad hoc integration requests.
  • Subscriptions/Recurring Charges
    Enhance Spree to support subscription or recurring charges. This is likely to be built on top of Stripe subscription functionality
  • Storefront
    Manage and support the use of a Spree storefront, likely the Next.js storefront

Work Environment

The team is a distributed and small organization. Our staff range between European and Pacific time zones, however most activity and interactions tend to occur between 8:30 am ET - 11:30 am ET. Slack is used as the primary means of communication. The technical team uses Github and a standard CI pipeline to review and approve pull requests. This is for a long-term/indefinite role and includes vacation and sick time.