December 2016
February 2017
Software Design

ClairVista developed and operates a video chat platform, Live Expert, that is used across a variety of industries and use cases, including healthcare, retail, and online services. As part of this platform, the team developed a set of mobile apps that allow users to engage in a video chat directly from their personal device. Previously, these sessions were consistently initiated by the customer. However a feature commonly requested by both current clients and prospects alike was for their agents to be able to initiate the sessions in certain circumstances (e.g. after a call inadvertently disconnects, to arrange scheduled appointments, etc).

Harrison is a uniquely gifted professional - technically brilliant, diligent, trustworthy, and displays great interpersonal skills.
- Chris Sang, CEO at ClairVista (source)

As is often the case, this was a more challenging request than it appeared on the surface. As the previous Director of Software Development for the company, I had deep knowledge of the internal workings of each component within the Live Expert platform and was asked to assist in the construction of a design and implementation plan for this new feature. I supported the team in evaluating the impact of this functionality across the platform, taking responsibility for the changes required within the existing Xamarin-based mobile applications. This work included a detailed evaluation of push notification providers, including APNS, Firebase, Airship, OneSignal, AWS SNS, and many others, a redesign of call signalling support used within these applications, and the implementation of a prototype to validate and demonstrate the proposed set of changes.

The results of this evaluation and prototype were compiled into a comprehensive design document, outlining the various tradeoffs considered and providing detailed design documentation for this feature. This included an overview of the quality attribute tradeoffs considered, a comprehensive set of design diagrams and associated descriptions, and a detailed implementation plan. With this documentation and insight, the team was able to expedite their work implementing and deploying this functionality for their customers.