JavaScript has come a long way since its creation. It started as a very basic language for making web pages interactive. It has become more powerful and it has been the monopoly over web development for decades. However in this blog post we won’t be talking about JavaScript’s web development capabilities. The idea of Node.js has been an unexpected step for JavaScript, because JavaScript was tightly coupled with frontend development. Yet Node.js was allowing it to run on the server. This was a game-changer for the industry. It enabled developers to use JavaScript for both frontend and backend. However, no…
-
-
REST APIs are everywhere. From mobile apps to web platforms, they connect the front-end and back-end in a clean and standard way. In this post, we’ll write a basic REST API using Go. It will not use any third-party packages. Only the Go standard library. We’ll simulate a database using a simple map. Go is fast, simple, and powerful. It compiles to a single binary. It starts up quickly and uses little memory. Go has strong support for concurrency, and the standard library is great for building APIs. In a microservices setup, services talk to each other. Often they use…
-
Over the past few months even weeks, DeepSeek has emerged as an unexpected guest in the AI market. It literally redefined the AI industry and cost trillions of dollars loss in stock markets. Even though I am also interested in, I won’t focus on that side of DeepSeek today. The reason it caused such a fundamental change is that it uses significantly fewer resources than its competitors in the market. The level of optimization is so high that you can run a fully pre-trained model even on a laptop. Today, I will take you through how to run DeepSeek R1…
-
In the previous posts, we explored how C laid the groundwork for modern programming languages and shaped the software landscape. We’ve looked at C’s influence on languages and traced its role as the foundation for today’s development tools. Now, we turn our attention to another critical area where C’s impact is undeniable: operating systems. We have already talked about the relationship between C and Unix here. However, the relationship with C and operating systems are not limited to Unix. Unexceptionally, all operating systems we use today (Windows, Linux, Mac OS, IOS, Android etc.) are either primarily or entirely written in…
-
AWS Secrets Manager is a fully managed service that helps you easily store and retrieve credentials, API keys, and other sensitive data in a secure way. It integrates seamlessly with AWS Identity and Access Management (IAM) to ensure that only authorized users and applications can access your secrets. Beyond simple storage, it also offers basic security practices like automatic rotation of secrets. The main idea of using AWS Secrets Manager is that you no longer need to hardcode sensitive information in your applications or configuration files. Instead, you can reference them securely and fetch them when needed. This practice, sharply…
-
Welcome to the third part of our blog series, “C, Bedrock of Software.” In the first part, we explored the origins of C. In the first part, we discussed its creation at Bell Labs and its role in the development of Unix. In the second part, we examined the symbiotic relationship between C and Unix. We saw how they evolved together, shaping the future of computing. In this part, we will focus on how C has influenced modern programming languages. We will see its impact on popular languages like Java, C#, C++, Objective-C, and others. This will show how C’s…
-
Cloud computing is a concept that every developer and tester should understand within software industry in 2020s. Whether you are just starting or changing your career; or preparing for a job interview, the basic understanding of cloud computing can set you apart from your competitors. In this blog post, I will take you through the basics of cloud computing, how it works, and the key services provided by the two most common cloud platforms. What is Cloud Computing? Cloud computing is a providing computing services (like servers, storage, databases, networking, software, analytics, and all related infrastructure) based on a remote…
-
The best way to describe the relationship between C and Unix will be mutual evolution. Both were developed at Bell Labs and each played a unique role in the other’s success. This symbiotic relationship not only led to the widespread adoption of both C and Unix but also set the foundations of modern computing. Or computing as we know it. Unix began as a small project led by Ken Thompson and Dennis Ritchie at Bell Labs. Remember, Dennis Ritchie is also the inventor of C programming language. The primary principle was to be a simple, multi-tasking, multi-user operating system. In…
-
In the world of software engineering, there is a constant change. Anything we learn has a potential to get redundant just in a matter of years. A lot of languages, methodologies, techniques, tools, frameworks, libraries came in with a huge noise and went away silently. Very few things manage to live for a decade. However, there is one thing which has been there for more than half a century, and remained unchanged. It is the core of all operating systems, and also all compilers and interpreters of unexceptionally all programming languages, and it is also the father of almost all…
-
Containerization became one of the recent trends in software development technology, because of its advantages with deployment and scalability and it is not for the first time I am writing about dockerizing an app. No doubt, Docker practically is the only platform for containerization, and it provides developers a convenient method to bundle applications and their prerequisites into efficient containers. It also guarantees uniformity across very different environments. In this post, I will explore the steps involved in containerizing a React application using Docker, starting from the creation of a fundamental React component and concluding with its execution within a…
-
We often hear the terms “stateful” and “stateless”. Understanding these concepts has a critical importance since it is one of the most essential questions when designing and architecting software applications. In today’s blog post, I wanted to talk about these two very basic concepts. As the simplest definition, stateful application means an application which remembers the past, similarly, stateless application means an application which doesn’t remember the past. The state we have been talking about might be saved in a database, a file on the disk, a cookie in a browser etc. As an example, consider an e-commerce website. When…
-
Docker is a powerful tool that allows developers to package applications into containers. These containers can run on any system that has Docker installed, making it easier to deploy and run applications consistently across different environments. Containers are like lightweight, portable packages for your application, including everything it needs to run: code, runtime, libraries, and settings. I assume that you have already know what Docker is and also you have .NET and Docker installed on your machine. Don’t worry, just download and then next + next. For more details and official documentation, you can visit Docker’s official website and for…
-
D is an interesting language. For some reason, I have an emotional connection with this language and I believe that it is the subject of the biggest unfairness story in the history of software development. To me, it is the best programming language in the market for the reasons I am going to state below. However, this language is underestimated, underrated, and despised in the programming circles because it doesn’t have a strong backer. In this article I want to talk about, and give some credit to D, an underrated sibling of C++, Java and C#. The D programming language…
-
When designing systems, especially distributed systems, the flow of data and service requests must remain continuous. This brings us to an architectural design pattern called the Circuit Breaker. It comes from electronics. Simply, it is designed to stop the flow when something goes wrong. This prevents potential cascading failures in a system. Understanding the Circuit Breaker Pattern Imagine a scenario where a service relies heavily on another third-party service. However, that third-party service becomes slow or starts to fail at some point. Without any preventive measures, our service will keep making requests, waiting for timeouts, even getting stuck. This is…
-
Whenever a major improvement happens in web technology, whenever a new framework or a language is introduced in the web development market, PHP’s death is declared immediately. I have been witnessing a recent popular belief that PHP is nearing its end due to NodeJS becoming the new “darling” of the developer community. To me, this belief is a naive statement comes from lack of knowledge on the history of programming languages since the story of PHP is the greatest survival story of the entire computer science history. Over the years, many people have declared the death of PHP against a…
-
“Angular or React?” has been one of the most important questions in software development for the last decade. As a developer who had worked in full-stack fashion for a long time myself, my story of frontend started with Angular but had slightly moved towards React. Since I have actively participated projects in both, I wanted to write a comprehensive comparison between these two. Let’s explore the key aspects of each framework to help you make a decision, if you need to. Brief Overview: Developed and maintained by Facebook, React is a component-based library that deals mainly with the view layer…