AWS Chime: Lessons learned
A lot has changed during 2020. One is the number of people working remotely. That’s the Q4 hackathon theme was “Remote Work in 2020”. We wanted to break into teams and see what we could do in just a few days.
A bit of history first. Metal Toad went fully remote in late 2019. Ever since the largest complaint has been the desire to white board again. That’s why for this hackathon my team, Passive Piglet, endeavored to build a remote white boarding tool.
For a tool set we selected Chime SDK to build an app. Chime SDK provides numerous sample apps we could start building with. We decided to build from scratch using react for the front end and AppSync to act as the database. Truth be told I was inspired by someone else's Amplify blog and wanted to see how I could tie it all together.
In two days of hacking we were able to build a video call client with the Chime SDK. It had mostly working video, and audio.
The Chime SDK provided a consistent framework to build on.
It didn’t take us long to find out that React could start the Chime meeting and manage the state so we built a server using node.js.
We didn’t have a chance to start on the whiteboard tool. The team got stuck on some video issues, like someone not appearing, or appearing twice. It was very odd, and brings me to my second point.
State management on a video communication tool is a huge portion of the software. When spelled out it seems really obvious. You need to know who is there, the state of their microphone, camera, chat. But starting off I thought the hardest part would be Video and Audio.
I’m used to AWS Boto3 documentation. AWS Chime SDK documentation, at least what I found, wasn’t nearly as easy to navigate or informative. With variable names but no real descriptions of what they were used for.
The 2020 Q4 hackathon was a huge success. I got to work with people I don’t normally work with, on a really cool project. All while learning new technologies. I can’t wait to see what we do in 2021