Advanced C# Tips:Prefer Lazy Initialization for Rarely Used Objects
Lazy loading and eager loading are two contrasting approaches in managing how and when data is loaded into memory in programming, particularly relevant in…
Inlining methods is a technique where the compiler replaces a method call with the actual method body’s code. While inlining can speed up your…
Advanced C# Tips: Using Array Segments Instead of Copying Arrays
Even though it is not a very popular C# tool, the ArraySegment<T> is quite old and it was introduced in .NET Framework 2.0, which…
Introduction to Cloud Computing for Junior Developers and Testers
Cloud computing is a concept that every developer and tester should understand within software industry in 2020s. Whether you are just starting or changing…
Reusing objects in C# is a strategy that aligns with the principles of efficient memory management and application performance optimization. This concept is important…
Bedrock of Software – Part 2: C and Unix – A Symbiotic Relationship
The best way to describe the relationship between C and Unix will be mutual evolution. Both were developed at Bell Labs and each played…
Advanced C# Tips: Utilize ArrayPool for Frequent Array Allocations
ArrayPool<T> in C# is a very useful but a less known feature. It has been around since .NET 2.0 but has never been popular….
Advanced C# Tips: Consider Leveraging Bitwise Operations for Simple Calculations If Possible
Bitwise operators in C# are special tools that let you work directly with the individual bits of a number’s binary representation. If you are…
Exceptions in C# are definitely a great facility but we need to use them wisely. We should leave the least possible probabilities of throwing…
In C#, understanding the difference between value types and reference types is a fundamental topic when writing efficient and performant code. The choice between…
In the world of software engineering, there is a constant change. Anything we learn has a potential to get redundant just in a matter…
Before diving into topic, I want to begin with clarifying the terminology. Immutable data refers to data whose state cannot be modified after it…
Advanced C# Tips: Use ‘in’ Parameter Modifier for Large Value Types
In C#, the in parameter modifier is relatively a recent addition. It added in C# 7.2. The main point of in keyword is to…
The title could have also been “Don’t use unsafe code at all!” You will come to the same conclusion after reading this post, but…
Containerization became one of the recent trends in software development technology, because of its advantages with deployment and scalability and it is not for…
We often hear the terms “stateful” and “stateless”. Understanding these concepts has a critical importance since it is one of the most essential questions…
Azure Active Directory Login with React, with C# or Java Backend
Keeping things secure is the important part of any application. As entire internet going to cloud, Azure Active Directory (AD) is one of the…
Unlock Faster Performance: Advanced Caching Tactics for .NET Core
In software development, performance optimization is a crucial topic and one of the most effective ways to improve the performance is caching. However, caching…
Containerizing a .NET Application with Docker – Step by Step Guide
Docker is a powerful tool that allows developers to package applications into containers. These containers can run on any system that has Docker installed,…
D is an interesting language. For some reason, I have an emotional connection with this language and I believe that it is the subject…
When designing systems, especially distributed systems, the flow of data and service requests must remain continuous. This brings us to an architectural design pattern…
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…
“Angular or React?” has been one of the most important questions in software development for the last decade. As a developer who had worked…
Remote Caching in Scaled-Out Cloud Applications: A Case Study with Redis, C# and Python
A few weeks ago, we were discussing a problem with my team mates and a colleague raised a question about a very basic distributed…
In a previous blog post, we discussed how to create real-time web applications using SignalR and React. If you have already gone through that,…
Architectural Design Patterns 8 – Serverless (Function as a Service – FaaS)
Today’s topic is a quite popular one, a fuzzy word getting more and more popular once it used to be a niche architectural pattern…
For developers of my generation, C++ was the go-to language. It was everywhere, especially when you needed to write code that is fast, efficient…
Today, I want to talk about a new generation language which gains ground among developers. Go also popularly known as Golang, an open-source programming…
Recently, I had the opportunity to work on a project where React and SignalR were integrated. This experience was quite insightful, and I am…
Domain-Driven Design, or DDD for short, isn’t about code at first. It’s about understanding the main business inside out, and then designing software that…
There’s no shortage of tools and technologies to make developers’ lives easier In the world of cloud computing, and one such offering comes from…
Even though my purpose is publishing ever green content in this blog, it is not easy to write about such a broader topic. Due…
Architectural Design Patterns 6 – Service-Oriented Architecture
Service-Oriented Architecture, often known simply as SOA, can be thought of as a city of services. In this city, each service is like a…
Two-way data binding is one of the most distinctive features of Angular but what does it require, and what are the benefits and drawbacks…
As web-based applications become more sophisticated, frontend and backend lines gets blur. One such example of this change is NextJS. NextJS is a framework…
I am aware that in our present day world, it is a sin to talk about monolith and not to curse it. However, I…
Every developer knows that the software engineering isn’t just about writing code. It’s about creating efficient, maintainable, and scalable systems. A critical part of…
MongoDB is a popular NoSQL database, which means it doesn’t use tables like traditional databases. Instead, it saves data as ‘documents’, which are like…
Event-Driven Architecture is currently enjoying a lot of attention from businesses around the world due to the enhanced capabilities offered by cloud-based systems. Imagine…
As businesses grow, so does their data. A big amount of data can slow down your SQL Server if you don’t manage it right….
In this article, we will be talking about Microservices, a design pattern that has gained attraction for its approach to building large and complex…
Azure Blob Storage is one of Microsoft Azure’s storage solutions. Think of it as a massive cupboard in the cloud where you can keep…
Architectural Design Patterns 2 – Model-View-Controller (MVC)
When you’re diving into the world of software design, you’ll often hear about the Model-View-Controller, or MVC for short. It’s one of those blueprints,…
Architectural Design Patterns 1 – Layered (or Tiered) Pattern
Here in this first post of the blog, I want to also start with the first part of a series. In this post of…