Learnings
Storing user uploaded images was a new experience for me as I had not dealt with cloud based simple storage before. The upload process involved streaming an image from a user's file system to a cloud API (DigitalOcean), which would then send back a url. This url was then stored in a database (Google Cloud), along with the rest of the user's details. Gracefully handling errors was important during this process as it required promises from two different APIs. I found the implementation simple as I was dealing with two well designed APIs and the experience made me more confident when using cloud services.
Another learning occured after I had implemented the Ably API for the instant messaging feature. Dealing with Ably's SDK syntax was difficult because the library used design patterns that I was not familiar with. I had to study the documentation in depth and experiment with the API before commiting to it's use. This process taught me the importance of reseach during the planning stage and the importance of developing a simple proof of concept before starting the project (if using technologies that I am not familiar with). This experience gave me more confidence when working with new technologies as I was confident in my ability to iterate and experiment with code that I was not entirely familiar with.