Candost's Blog

Candost's Blog

Candost

I used to think that reading would make me wise. One day, ten pages before finishing a book, I realized that I had read that same book before. At that point, my perspective on reading and, therefore, my life had changed. Now, I don’t care how many books I read; I take many notes, connect dots, and share what I’ve found on my blog and newsletter. I’m interested in many things at the same time (I’m a multipotentialite). On this blog, you’ll find me talking to about multiple aspects of life like leadership, software engineering, philosophy, psychology, software architecture & design, urban & industrial design, exercising, finance, Formula1 Racing, eating healthy, and many more. I’m a software engineering manager; that’s my current job. At home, I’m a writer and an avid reader. I rarely watch TV, movies or TV series. I don’t have any social media account (except Mastodon where I have automated posting of my new articles). Hence, I often miss the popular culture references in conversations. That’s alright. I don’t have FOMO; I embrace JOMO. I rarely read fictional books.

Latest Posts

This article is part of my notes from Chapter 2 on Designing Data-Intensive Applications by Martin Kleppmann. You can read other chapter notes as well. Chapter 1: Reliability, Scalability, and Maintainability in Distributed Applications...
Functional decomposition is separating parts of your application into their own sections and allowing teams to develop these sections independently. Splitting the application by business capabilities and defining boundaries that enable...
There are two methods of scaling (a dichotomy): scaling up (vertical scaling) and sealing out (horizontal scaling). Although neither is a silver bullet, implementing either one or a combination of two is often the right action. Choosing...
Database denormalization means adding redundant information into a database to speed up reads. For example, duplicating data across tables is a denormalization process. We duplicate data to reduce Join operations across tables. When the...
This article is part of my notes from Chapter 1 of Designing Data-Intensive Applications by Martin Kleppmann. You can read other chapter notes as well. Chapter 1: Reliability, Scalability, and Maintainability in Distributed Applications...
Increasing the size of the instances and, for example, increasing the server's memory to handle load changes. Advantages Doesn’t need I/O operations. Processing is within a machine. Data Consistency. Easy implementation. Fast...
Besides load, we have to understand the performance of the system before trying to scale the application. We use performance metrics. These metrics vary in different systems. In batch processing systems, it is throughput (the # of...
To talk about increasing load and scalability, we first need to define the system's current load. There is no one way of doing it as it depends on the project and its architecture, but we use load parameters. These parameters will be...
Defining the system load and performance is important to understand scalability. Scalability is the system's ability (performance) to cope with increased load. The load doesn't say anything when it's used alone. The load can be anything,...
The size of the project matters a lot in the diseconomy of scale. In Software Estimation, Steve McConnell talks about estimating projects on different scales and considering important factors. Typically, we talk about economies of scale...
In hash partitioning, we use hash functions for ranges to distribute data evenly between partitions. The range-based partitions still have the disadvantage of loading one partition with more data. With hash functions, we solve this...
Elasticity is a service’s ability to handle bursts of traffic. It’s often confused with scalability. Scalability is the ability to handle a large number of concurrent requests. Although these two are different, elastic systems also need...
“Strong Consistency, Availability, and Partition tolerance: pick two out of three” — The CAP Theorem PACELC theorem: “In case of network partitioning in a distributed system, one has to choose between Availability and Consistency, but...
In a lecture, Patrick Winston said, “Your success in life will be determined largely by your ability to speak, your ability to write, and the quality of your ideas. In that order.” I pondered on that sentence for days. The longer I...
Hey friend, You might be in a strange position in your career where you hope to get a promotion soon, but the company seems like have no option for you. They have no new positions for your dream role. This new role can be any kind of...
Search Random