Software Developer

Working on AI avatars and main Chrome extension.

Vidyard Logo

My co-op at Vidyard has got to be the best co-op I have had so far. There was so much to learn and do with the amazing team I was part of there, which was extremely supportful and helpful. I worked on a lot of things and experienced the entire SDC for the first time, with Jira, dev-staging-prod, testing and much more.


Throughout my co-op, I worked on various smaller tickets and bugs, which include:

  • The Vidyard Chrome extension relied on the Browser APIs for network connectivity, which would cause issues has the APIs weren't reliable/well-supported and would occassionally cause an infinite loop of loading/no connection states! The solution involved a fallback request to the Vidyard API as a reference for network connectivity with React.js. Vidyard No Connection

  • The AI Avatar recording flow couldn't let you select other microphones! Luckily, this was a simple fix with Vue.js, localStorage and Jest for testing.

Vidyard Microphone Selection

  • The main Vidyard platform used VP9/VP8 codecs for video recording on the client-side. Although okay, H264/AVC1 was a more popular option and had better hardware acceleration support. Furthermore, competitors had significantly better metrics when it come to recordings due to H264/AVC1 codec usage. I ended up writing a TDD and wrote some code to integrate the Vidyard's internal package codec fallback chain with the client-side code in Vue.js and JavaScript.

Vidyard Codecs Upgrade

  • Mailers - I had to update email content for Vidyard's AI Avatar License flow. It involved using Knock mailers and playing around with Vidyard's asset management system for icons.

Virtual Backgrounds Project

Then came the first big project I worked on: virtual backgrounds! It was a highly requested feature for Vidyard customers and highly anticipated, so I am glad I was part of it! Some things I worked on include:

  • General styling and UI of the virtual backgrounds selection screen in the Chrome Extension
  • Managing preset and custom virtual backgrounds (uploads, deleting and selection) using Chrome's IndexedDB
  • Some bugs related to UI and integrating the internal video encoding package for blurring the video stream

Most of the work involved React.js and JavaScript as it was the Chrome extension that was being dealt with.


Voice Preview Project

The voice preview project was the highlight of my co-op in my opinion. Me and another great team member worked on allowing users who are recording AIA videos to preview their voice with the script provided. Some things I worked on include:

  • Feature flagging using LaunchDarkly
  • Integrating and extended an audio player component using Vue.js and GraphQL for fetching audios from the backend avatar service
  • Managing audios in context to prevent regeneration of the same audio by passing the audio ID to the backend
  • Worked on a new voice generation route in Node.js, GraphQL and MySQL that either generated a new audio or referenced an existing audio for video generation

Overall, I loved my time at Vidyard. I feel like I was a bit slow to learn and get things done because there was so much to learn, and I apologize to the team! However, it was an absolute blast and I would love to work at Vidyard again.