Comparing Concurrency Models in Node, Python, and Go

In the rush to get to market, it's easy to overlook small details that turn out to not be small. When we launched Vectopus.com, our multi-vendor vector image marketplace, we omitted WebP image support. To be honest, as the technical lead / architect - this was on me. I was so focused on getting the site up and running, I was not thinking about the full range of performance issues. I considered the performance of the API code, EC2 instance sizes and configuration, ALBs, CDN, etc., but did not include the full breadth of things that impact performance and SEO.

A Multi-Vendor Marketplace Architecture on AWS Cloud Services

I am starting a series of blog posts on how I built a multi-vendor marketplace for stock SVG images on AWS Cloud services. In the series I will talk about the architecture, tech stack, do some deep dives into specific problems and solutions, and share some of what I have learned. A big part of the challenge has been insuring reliability, scalability, and peformance on a limited budget.

Merge Sort Algorithm

I mentioned in yesterday's post that a lot of data manipulation involves lists, nested and otherwise. Another common task is sorting elements in a list. Day 6 of 30 Days of Algorithms is a Merge Sort, which is another "divide-and-conquer" algorithm.

Quick Sort Algorithm in JavaScript

Quicksort is one of the most efficient sorting algorithm with O(log n) Big-O notation. It can be 2x - 3x faster than merge sort. It is another divide-and-conquer algorithm. The algorithm divides the list on a pivot, which can be any number in the list. Any item lower than the pivot is added to a 'left' list. Any item larger than the pivot is added to the 'right' list. The process is repeated recursively with any sub-list with more than 2 items.

List Intersection / List Overlap Algorithm

Given two lists of elements, how do you find which items appear in both lists? The algorithm for Day 4 of 30 Days of Algorithms demonstrates how to find the overlap of two lists (list intersection).