-
Story of a Different Type of Cache!
In the company I work for, there was a campaign running for a group of users. Our task was to show some information to the user when they logged into our app if they were in the selected group for the campaign. The group was maintained by operators. When a user joined the campaign, they…
-
Trying Out GitHub Copilot: One Week In
My first experience with GitHub Copilot last week was surprisingly positive. It quickly adapted to the coding style of our project, which was a great help. The chat feature powered by GPT-4 engine proved to be incredibly useful for generating boilerplate code, such as file handling, setting up Redis connections, writing database transactions, and making…
-
A look into Go Scheduler’s Design
Go is a relatively recent language designed with concurrency first in mind (from introduction to Go byRob Pike). Its standard library is state of the art code written by coders who worked on Unix. My focus in my grad studies, from general to specific was Distributed Computing -> Concurrent Algorithms -> Shared Data Structures. I…
-
Java is HUGE!
The first time I learned Java was during the first semester of my undergraduate studies. My perception of Java at that time was that Java is essentially C with some object-oriented principles. It was challenging for me to grasp the concept of everything being an object. It felt strange; I thought they were aiming for…
-
About Writing
During my undergraduate studies in the mathematics department at Sharif University, there was a math professor who emphatically urged us to practice good writing. She advised that if we spent one hour solving a problem, it was reasonable to invest an additional two hours in crafting a well-structured proof. I recall her words: “If you…
-
About Creating State-of-the-Art Software
Android phones are receiving more RAM with each passing year, but guess what? It’s never enough! Android itself consumes it voraciously. The same holds true for Google Chrome. It seems that despite having better hardware, software quality is deteriorating each year. How did we go from the software that sent men to the moon with…
-
How Kubernetes works? (II)
In the previous part we talked about K8s architecture. In this post we talk about running a cluster and deploying an app to it. We are going to get started with K3s which is a lightweight version of K8s. It only contains the main components of Kubernetes. Since I don’t have a network of VMs…
-
Mastering the Art of Reading Go code
* I could not come up with any good name for this post, so here it is. It is a case study for reading go code. I have worked with Java/Python for more than 9 years now. Most of my production code was in Java. When I want to write a code to parse some…
-
How Kubernetes works? (I)
When you Google “why kubernetes is freaking hard to learn” you’ll discover thousands of results. It appears that learning how to work with Kubernetes is not easy, especially for people who don’t have backgrounds in software engineering or DevOps. It could be a nightmare for those who haven’t had experience deploying applications to VMs or…
-
Aperiodic Tilings
I enjoy math problems that are easy to understand but challenging to solve. These problems are often related to various topics and are deep enough for people with diverse backgrounds to engage with and make progress. When I was a child, I grew up in Isfahan, a city with numerous tiled monuments. I used to…