David has a unique way of solving problems. With a scientific mindset, he drives quality and innovation through experimentation and is not afraid of failure. In an iterative, continuous feedback cycle, he encourages quality conversations to bring diverse, untapped ideas to reality.
He is a leader in distributed software resiliency and delivery, all while engineering complexity to generate simple, maintainable and reliable solutions. Part of his philosophy is that open, honest and transparent conversations fosters a generative culture where quality data can be used by an organization to learn and grow.
Let’s figure out how to generate the short url of length less than 10 characters (after http://sho.rt/) before doing extensive analysis.
We will break this down into a few operations:
Come up with several designs that can satisfy these operations.
Let’s start with the shared-nothing id generation (generate id in client at the App layer) since it would appear to be the most scalable.
We would need to generate a unique key for each request for a long url to be made short. The easiest way of doing so would be to generate an md5/sha/uuid of the long url, then we would map and encode the key and store it.