Product

👷 How we work - Product Team

How we work

Here we aim to document our current processes and give you an insight into what it's like to work in the product team at Opvia.

We take an agile approach to software development and are keen to rapidly iterate and deliver the most impact for our customers.

Our tools

We use primarily Github and Slack to organise our work.

In addition we use Figma for designs, DataDog for RUM and Sentry for alerting. We dog-food our own app as much as possible by writing documentation and tracking company metrics there.

Keeping the number of technologies to a minimum is important to ensure knowledge and history of our decision making is made in one place.

Github

  • All task tracking and management is done through a single GitHub project board with iterations for each sprint.
  • All user stories are broken down into smaller estimated issues that can be addressed one to one with PRs
  • You are strongly encouraged to deliver small PRs for easier reviews, better feedback and faster iterations.
  • CI checks are run through GitHub actions.
  • We also have a deployment spun up for every PR branch for reviewers to easily test new features, or to help demo.
  • Releases are made daily off the back of GitHub tags.

Slack

  • We make effective use of channels and threads to discuss work.
  • We have integrations with our other tools to notify on new releases, build failures, errors.
  • We aim to have all discussions in public channels for the benefit of everyone.

The sprint

We work in 2 week sprints. We have a 5-minute daily standup but otherwise try to have all meetings at the start and end of the week.

Mondays

First Monday: No code. We start each sprint by collecting user feedback and discussing priorities with the Customer Experience team and other parts of the company. We then break down into smaller issues with estimates. For any bigger features or tasks we use this time to draw up designs in figma or write and review RFCs. By the end of the day we have agreed on a clear set of prioritised tasks.

Second Monday: A quick check in to check priorities. Customer requirements change quickly and we're happy to swap in and out tasks when necessary.

We also have a company all hands meeting on this day. We also have lunch and learns when someone has something they want to share.

Tuesday - Thursday

Purely coding / building days. You may have one customer call to join or adhoc smaller meetings for a particular product stream.

Fridays

  • Product show and tell
  • One to ones with your manager
  • Team lunch with the rest of Opvia on the company
  • Product team retro to reflect on our challenges and triumphs and improve our process each week

How we move quickly

  • We've chosen and invested in technologies that help us do our jobs more efficiently. Postgraphile and graphql-codegen generate a large amount of apis, code and types meaning you're writing less boilerplate.
  • Prettier, eslint, pre-commit hooks keep our code clean.
  • We have both unit tests and E2E cypress tests for core features and flows.
  • We have strict typescript rules. No anys. You can swiftly work on any part of the codebase with confidence.
  • Per branch deployments means reviewing code and getting feedback is painless.
  • We release daily to ensure a tight feedback loop and that we're delivering impact for our customers in realtime. When a customer reports a bug or has some small feedback, they are always blown away when it's in the app the next day.
  • We leverage open source as much as possible and try to avoid reinventing the wheel.
  • We use two comprehensive UI kits with theming to provide most of our UI components and will invest in building our own when needed.
  • Alerting setup to quickly catch any regressions or bugs.

Our customers

Developers are strongly encouraged to sit in on at least one customer call a week to hear how the platform is working for them and understand any points first hand. It's important they are in the forefront of our mind when we're building product.

You'll also have the opportunity to visit them. We recently went to Paris to visit a few of their labs.

Our solutions team provide bespoke scripts and automations for work that is not yet built or will never make it to the core product. This eases pressures on what we build ensuring we deliver the best features and solutions to all of our customers. If you are more interested by working closer with specific customers and their data then check out our solutions positions here.

How about you?

Do you like the way we operate? Apply today to join our incredible team and make our process even stronger.

Visit here to see the open engineering roles.