Remo

Remo is a unique conferencing application which allows users to meet in a virtual space. Meetings can be retreats, team building exercises, professional panels, or just simply a virtual office space for remote teams. It is able to handle events up to a thousand users in a single space.

Tools used

  • React
  • GraphQL
  • Node.js
  • Typescript
  • Postgres / MongoDB

Role

At Remo I worked in a variety of roles. I was assigned front-end, back-end, and some dev ops tasks.


Shuffle

The shuffle feature of Remo places each user at a different table. It's a well used feature for mixers.

I rewrote the feature to be up to 20 times faster than our previous implementation. I also added the ability for users to choose how many users per table the algorithm would favor.

Shuffling users in an assortment of tables of varying sizes is an np-hard problem. The solution took the implementation of a greedy algorithm that used the heuristic of the desired amount of users per table. By adding a single user to a table in steps that yielded the best assortment it would find a close to optimum solution.

Audio / Video

I migrated all of our video components to a new provider. Along with the video migration I rewrote the existing UI layer that rendered all video components. This migration reduced the amount of code of audio and video related components by a third and reduced the cost of our AV provider by half.

I also wrote the React layer for the background blur and background image replacement for videos.

Mobile performance

I worked on the the layout of Remo to ensure that key components were responsive. I removed mobile specific components and made their desktop counterparts responsive. I made fluid layouts with grid and used feature detection to remove components based on browser support. Opting to make responsive components essentially allowed us to maintain one version of a feature rather than two.

Core UI

I wrote core front-end components that were used all across the app. These components were all unit and snapshot tested and documented in Storybook.