Case Study: UX/UI Design of a Travel Companion Super App

This post is related to an assignment for my SOEN 357 class.

Introduction

Traveling is complicated. Figuring out how to get there, figuring out where to stay, and figuring out how to get around is tough. Some might even say it takes the joy out of traveling.

The thing is, each of these problems have solutions. Services like Google Flights and Skyscanner exist for finding flights. Airbnb and Vrbo can help you find a place to stay. Finally, services like Turo and Getaround give you a way to travel at your destination. Beyond these also exist hundreds of bespoke hotel, car rental, and airline websites.

Dynamically Resizing Queue

This post builds on the Event Queue Service post I made earlier. In that post, I made an event queue service that could handle up to a fixed number of events. In this post, I will upgrade my queue implementation to dynamically resize itself when it reaches its capacity.

Introduction

In the previous post, I made an event queue service using a ring buffer. The ring buffer had a fixed size, and when it reached its capacity, it would not accept any more events. In this post, I’ll be making some changes to the queue implementation to allow it to resize itself when it reaches its capacity. I’ll be taking inspiration from the ArrayList class in Java, which doubles in size when it reaches its capacity. This is going to be a short post.

Building an Event Queue Service Using Go

This post documents the process of developing an event queue service in Go. To see the full code, check out the Github repository

Introduction

When working with microservices, it’s important to keep your services decoupled. This makes it easier to change one component without affecting the others. But your services still need to communicate with each other. One way to do this is to have components send messages directly to each other. But this can lead to tight coupling between components, making it harder to change one component without affecting the others.

About

This blog is for keeping track of stuff I’m building/learning to build.

I started this blog in my spare time when I was interning at Amazon in Summer 2024 in Vancouver.

I’m finishing up my computer science degree at Concordia University in Montreal, and I’m also doing a minor in linguistics. I’m interested in getting really good at building software using Go, so most of the stuff I write about will be related to that.