Tugberk Ugurlu's Blog
April 7, 2021
My Mental Model on Choosing a Database for a Particular Problem
Choosing a database technology for the problem at hand is a multifaceted problem. There is usually no single correct choice, but there are surely mu...
April 3, 2021
Whiteboard-style Coding Interviews Might Not Be as Bad as You Think
March 23, 2021
C++, Getting Started with the Basics: Working with Dependencies and Linker
As I mentioned in my previous post about C++, I am learning C++. It has been a bumpy ride so far, and C++ is certainly not an easy to pick up programming language! So, I thought what better way to make the learning stronger than blogging about my journey and pinning down my experience. You now know ...
March 18, 2021
C++, Getting Started with the Basics: Hello World and the Build Pipeline
I am probably the least qualified person to be writing a blog post about C++. So, please approach this post with some caution.But, why am I writing it then? Well, I am currently learning C++, and it has been an unusual experience compared to my other programming-language-learning journeys.At this stage, my assumption is that the main difference that causes me to struggle comes from the fact that:
C++ doesn't hav...C++, Getting Started with The Basics: Hello World and The Build Pipeline
I am probably the least qualified person to be writing a blog post about C++. So, please approach this post with some caution.But, why am I writing it then? Well, I am currently learning C++, and it has been an unusual experience compared to my other programming-language-learning journeys.At this stage, my assumption is that the main difference that causes me to struggle comes from the fact that:
C++ doesn't hav...December 25, 2020
Configure Free Wildcard SSL Certificate on AWS Application Load Balancer (ALB) Through Terraform
Domain Name Validation Through Route53 DNS Configuration
Wiring It up with Application Load Balancer
Redirecting HTTP Traffic Through an ALB Rule
Resources
Last week, I have moved all my personal compute and storage from Azure to AWS. I took this opportunity as an excuse to also start to manage all that infrastructure through Terraform. Why AWS though? I had the chance to use AWS before on and off, but since I joined Deliver...
December 19, 2020
Redis Cluster - Benefits of Sharding and How It Works
Content
The Problem
Redis Cluster: Enter
Key Distribution
Hash Tags: Getting back into control of your sharding strategy
Redirection
Distributing Reads
Conclusion
Redis is by far one of the most frequently used data stores. It's fascinating how much our our software-developer-minds go to Redis when we are faced with a data storage problem that requires some level of scale. Even if this might make us feel guilty, I have a somewhat confident assumption that this's the case...
September 12, 2020
Working with Slices in Go (Golang) - Understanding How append, copy and Slice Expressions Work
Content
Introduction
How Slices Work
How append and copy Works
How Slice Expressions Work
⚠️ Modifying a Sliced-slice Modifies the Original Slice
⚠️ Calling append on a Sliced-slice May Modify the Original Slice
Introduction
Go programming language has two fundamental types at the language level to enable working with numbered sequence of elements: array and slice. At the syntax level, they may look like the same but they are fundamentally very different in terms of their behavior. The m...
August 29, 2020
Implementing OrderedMap in Go 2.0 by Using Generics with Delete Operation in O(1) Time Complexity
Probably the most sought after feature of Go programming language, Generics, is on its way and is expected to land with v2. You can check out the proposal here, and have a play with it in Go playground for v2. I stumbled upon rocketlaunchr.cloud's great post on using generics in Go 2, and the post shows how you can implement ordered maps. The post is very informative, and shows you how powerful Generics will be for Go.
However, I noticed a performance issues with the implementation of Delet...
August 23, 2020
Usage of the Heap Data Structure in Go (Golang), with Examples
Heap is one of the most powerful data structures that is in our disposal to solve various real world problems more efficiently. Heap data structure usually comes with two shapes: Min Heap or Max Heap, and depending on which one it is, heap will give you efficient (i.e. O(1)) access to min/max value within the given collection.
Here is the characteristics of the heap data structure, which separate it from other data structure when all of these...