Skip to content

Instantly share code, notes, and snippets.

@mort
Last active August 5, 2022 20:34
Show Gist options
  • Save mort/8bb6736cbd7686741fa1705178fad65c to your computer and use it in GitHub Desktop.
Save mort/8bb6736cbd7686741fa1705178fad65c to your computer and use it in GitHub Desktop.

About our Rails freelance contractor position

Honest looking for an experienced Rails developer to help our team achieve more velocity in launching our pilot program. We're a full-remote team and this is a fully remote position.

About our vision

Honest has a vision of improving the general quality of conversations between companies and customers by augmenting, not replacing, the skills and expertise of humans. Our product targets teams in the customer support, customer happiness/success and "knowledge workers" spaces and helps them by transforming events (such a customer's message) into actionable information that empowers real human communication.

About the product

Our goal can be simply put as the right information at the right time for employees engaging in conversation with customers.

Users interact with Honest via a browser extension sidebar that embeds itself in "conversation spaces", such a Gmail thread or a Zendesk ticket, and delivers contextual tips, suggestions and useful data based on what's going on in the conversation.

We describe our approach as "Push smart": "listen" for events; "anticipate" what an employee will want to see/do next and deliver that through useful "info cards": the right information at the right time.

About the general architecture

Honest is a "classic" 6 Rails app, a "majestic monolith", with its core views and user flows presented within a browser extension.

One level above the conventional structure of a Rails app lies our own architecture, nicknamed "Snap!". Snap! is designed to build and deploy specific "pathways", modular pipelines that flow through event reception, data gathering from any number or internal/external sources, application of business rules and finally presentation of the relevant results to the user, all within a sub-second time-frame target. Each of the components of a pathway can be built to meet the needs of all, a subset of, or one specific customer.

About our stack

  • Rails 6, Ruby 2.4

  • PostgreSQL & Redis

  • Sidekiq for async jobs

  • Hotwire (Turbo + Stimulus) for the server-side rendered UI layer

  • Slim for HTML templating, PostCSS

  • Minitest

  • Cypress for E2E testing

  • Rubocop

About our tech infrastructure

  • Github

  • Heroku pipelines with staging / prod environments, review apps enabled.

  • Rollbar

  • CircleCI

About our dev workflow

  • Based on Gitflow

  • Topic branches created from main, branch nomenclature from Jira issue.

  • PR against main branch

  • Branches deployed to staging via push before PR review

  • Automatic production deployment after PR approval

About our processes

  • Figma UI designs

  • Jira kanban board for issues

  • Discord for sync comms, with a daily 10-min catch-up

  • Email for async comms

About the tasks

Two options based on experience/qualifications/interests

  • "Feature developer" that works on customer-facing functionality

  • "QA engineer" with a focus on growing and stregthening our test suite, removing obsolete code, improving our CI/CD practices, etc.

About the team

You'll work along with

  • Carmel, UX lead
  • Mónica, UI developer (contractor/part-time)
  • Manuel, Rails developer
  • Carlos, CEO

All of us are experienced digital product makers, with many accumulated years of hard-won knowledge about the highs, the lows, and the hard realities of building a successul product/company. So fear not finding dangerous naivety, unreasonable demands or unrealistic expectations about what can and can't be achieved under specific constraints.

About the position

  • Ideally "full time" (i.e. 40 hr/week) commitment.

  • Generally available at least during core hours (11/17 CET) for async/sync comms (replying to emails, quick chats over Discord, participating on Jisa discussions...) Keep in mind that we're just aiming for Minimum Viable Communications here, while trying to keep distractions to a minimum, acommodate personal circumstances and schedules and priorize focus and personal autonomy.

__

Questions? [email protected]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment