# Mishel Shaji > Notes and ideas on software, technology, and the journey of learning and building. Public Ghost content for AI and LLM tooling. Use `/llms-full.txt` for consolidated page and post context. Append `.md` to any post or page URL to get the content in Markdown (for example, `/example-post.md`). ## Pages - [About Me](https://mishelshaji.com/about-me.md) - Every person has a story. Some chapters are filled with success, some with failures, and many with lessons that quietly shape who we become. This page is my attempt to put those chapters together—not just to share where I am today, but to document the journey that brought me here. From my childhood… - [About](https://mishelshaji.com/about.md) - Welcome to this digital space. My name is Mishel Shaji. I am a Software Developer and Technical Trainer with a focus on backend architecture, system optimization, and the open-source ecosystem. - [C# Tutorial](https://mishelshaji.com/c-tutorial.md) ## Posts - [Angular Lifecycle Events: A Beginner's Guide](https://mishelshaji.com/angular-lifecycle-events-a-beginners-guide.md) - When I first started building Angular applications, one of the biggest hurdles I faced wasn't writing HTML templates or creating services—it was understanding when things actually happen inside a component. - [Why I Moved Away From Postman (And Why You Should Too)](https://mishelshaji.com/why-i-moved-away-from-postman.md) - There was a time when Postman was the default choice for testing APIs. If you were building a backend application, Postman was one of the first tools you installed. It was simple, fast, and got straight to the point. - [Understanding the MVC Architecture Pattern](https://mishelshaji.com/understanding-the-mvc-architecture-pattern.md) - If you are stepping into the world of web development, MVC (Model-View-Controller) is one of the most fundamental design patterns you will encounter. It is the architectural spine behind many massive web frameworks. - [Understanding ASP.NET Core MVC Folder Structure](https://mishelshaji.com/understanding-asp-net-core-mvc-folder-structure.md) - When you scaffold a new ASP.NET Core Model-View-Controller (MVC) project—whether through the .NET CLI or Visual Studio—the framework generates a standardized set of folders and files. For a beginner, looking at this file tree for the first time can feel overwhelming. - [How to Resize an Array in C#](https://mishelshaji.com/how-to-resize-an-array-in-c-sharp.md) - Resizing an array is usually done if the exact number of elements that have to be stored in an array is unknown. Fortunately, C# has a method called Array.Resize(). - [Understanding the Difference Between Project and Solution in Dotnet](https://mishelshaji.com/difference-between-project-and-solution-in-dotnet.md) - When you build applications inside the .NET ecosystem, you don't just write loose C# code files and save them to a folder. Instead, .NET organizes code using two primary architectural structural containers: Projects and Solutions. - [Creating a .NET MVC Project using Visual Studio](https://mishelshaji.com/creating-a-dotnet-mvc-project-using-visual-studio.md) - In this tutorial, we will walk through the professional approach to setting up an ASP.NET Core Model-View-Controller (MVC) application in Visual Studio using .NET 10. Instead of rushing into a single project setup, we will start with a clean approach by creating a Blank Solution first. - [Creating a .NET MVC Project from Scratch Using Dotnet CLI](https://mishelshaji.com/creating-a-net-mvc-project-using-dotnet-cli.md) - When developing web applications with .NET, Visual Studio is a popular choice, but using the Command Line Interface (CLI) paired with Visual Studio Code (VS Code) gives you a lightweight, fast, and cross-platform workflow. - [Understanding the Index from End Operator in C#](https://mishelshaji.com/index-from-end-operator-in-c-sharp.md) - In the realm of C# programming, performance and memory management are crucial, especially when using collections. The CollectionsMarshal class, introduced in .NET 6, is a powerful but lesser-known feature. - [The New field Keyword in C# 14](https://mishelshaji.com/the-new-field-keyword-in-c-sharp-14.md) - Today, we’re talking about a cool new thing in C# 14, which works with .NET 10. It’s called the field keyword. This new feature makes writing full properties simpler, cleaner, and less boring. - [C# 14: nameof() Now Supports Unbound Generic Types](https://mishelshaji.com/c-sharp-14-nameof-now-supports-unbound-generic-types.md) - C# 14 introduces a highly requested developer comfort feature: the nameof operator can now target unbound generic types. This means you can obtain the string name of a generic class, interface, or struct without being forced to supply dummy type arguments. - [C# 14: Null Conditional Assignment](https://mishelshaji.com/c-sharp-14-null-conditional-assignment.md) - When working with numerical data in C#, you frequently need to choose the right data type to represent non-integer values. C# supports three basic floating-point types: float, double, and decimal. - [Float vs. Double vs. Decimal in C#](https://mishelshaji.com/float-vs-double-vs-decimal-in-c.md) - When working with numerical data in C#, you frequently need to choose the right data type to represent non-integer values. C# supports three basic floating-point types: float, double, and decimal. - [Understanding CollectionsMarshal in C#](https://mishelshaji.com/understanding-collectionsmarshal-in-c-sharp.md) - In the realm of C# programming, performance and memory management are crucial, especially when using collections. The CollectionsMarshal class, introduced in .NET 6, is a powerful but lesser-known feature. - [6 Different Ways to Join Strings in C#](https://mishelshaji.com/6-different-ways-to-join-strings-in-c-sharp.md) - In the realm of C# programming, performance and memory management are crucial, especially when using collections. The CollectionsMarshal class, introduced in .NET 6, is a powerful but lesser-known feature. - [18-Year-Old NGINX Heap Overflow Bug Enables Remote Code Execution](https://mishelshaji.com/18-year-old-nginx-heap-overflow-bug-enables-remote-code-execution.md) - The discovery of an 18-year-old flaw in NGINX—dubbed "NGINX Rift"—highlights a critical vulnerability in one of the world's most widely deployed web servers and reverse proxies. - [Create Buttons With Rounded Corner In WPF](https://mishelshaji.com/create-buttons-with-rounded-corner-in-wpf.md) - The default button template in WPF has a border. So, we have to change value of the CornerRadius property of the border in the button template. - [Static in C# - A Beginner's Guide With Examples](https://mishelshaji.com/static-in-c-sharp.md) - One of the most important concepts in C# and object-oriented programming is the static keyword. Almost every .NET developer uses static members regularly, but many beginners struggle to fully understand what a static variable is, where to use it, when to use it and when not to use it. - [Troubleshooting Nvidia Driver Failures on Fedora with Secure Boot](https://mishelshaji.com/troubleshooting-nvidia-driver-failures-on-fedora-with-secure-boot.md) - This tutorial will walk you through unblocking your system when a messy Nvidia installation prevents other critical drivers from functioning. - [Static vs Const vs Readonly in C# - A Beginner's Guide](https://mishelshaji.com/static-vs-const-vs-readonly-in-c-sharp.md) - In .NET development, you often need to define data that doesn't change or belongs to the class itself rather than a specific object. C# provides three keywords for these purposes: static, const, and readonly. - [LINQ: Where Query - A Beginner's Guide](https://mishelshaji.com/linq-where-query-a-beginners-guide.md) - LINQ (Language Integrated Query) is one of the most powerful features available in C#. It helps developers work with data in a simple and readable way. - [LINQ: Deferred Execution vs Immediate Execution - A Beginner's Guide](https://mishelshaji.com/linq-deferred-execution-vs-immediate-execution.md) - LINQ (Language Integrated Query) is one of the most powerful features available in C#. It helps developers work with data in a simple and readable way. - [Introduction to LINQ - A Beginner's Guide](https://mishelshaji.com/introduction-to-linq-a-beginners-guide-2.md) - LINQ (Language Integrated Query) is one of the most powerful features available in C#. It helps developers work with data in a simple and readable way. - [Easy Way to Improve DNF Download Speed on Fedora](https://mishelshaji.com/easy-way-to-improve-dnf-download-speed-on-fedora.md) - If you’ve recently installed Fedora, you might notice that the default package manager, DNF, can feel a bit slow even with a fast internet connection. This issue often comes down to two major reasons: Mirror selection and number of parallel downloads. - [Apt vs Apt-Get: Know the Difference](https://mishelshaji.com/apt-vs-apt-get-know-the-difference.md) - apt and apt-get aren’t two different tools or aliases—they’re two interfaces to the same underlying APT system, built for different situations. - [Easy Way to Install Media Codecs in Fedora](https://mishelshaji.com/easy-way-to-install-media-codecs-in-fedora.md) - If you’ve recently installed Fedora, you might notice that some videos won't play in your browser or certain media files fail to open. This happens because Fedora, by default, only includes completely open-source, patent-free software. - [Project K2: Microsoft's Plan to Fix Windows](https://mishelshaji.com/project-k2-microsofts-plan-to-fix-windows.md) - For years, Microsoft Windows has been the world’s most popular computer system. But it has a big problem: it is getting old, slow, messy and bloated. From broken updates to unwanted AI features, users are starting to look for alternatives like Linux based OS and Mac. - [Bash vs Zsh: A Beginner's Guide](https://mishelshaji.com/bash-vs-zsh-a-beginners-guide.md) - In the world of Unix-like operating systems, the shell is the bridge between the human and the machine. It is the command-line interpreter that turns your keystrokes into system actions. - [Beginner’s Guide to Choosing the Best Linux Distro](https://mishelshaji.com/beginners-guide-to-choosing-the-best-linux-distro.md) - Choosing a Linux distribution is no longer about finding something that "just works"—it’s about finding a system that aligns with your specific workflow and philosophy. - [Benchmarking .NET Applications with BenchmarkDotNet: A Step-by-Step Guide](https://mishelshaji.com/benchmarking-net-applications-with-benchmarkdotnet.md) - In this blog post, we'll talk about how to utilize BenchmarkDotNet, a well-known and robust framework for testing .NET code. We'll go over setting up a console program, writing benchmarks, and understanding the results. - [The Sunset of Create React App: Understanding the Shift and Exploring Alternatives](https://mishelshaji.com/the-sunset-of-create-react-app.md) - In a significant development for the React community, the official blog announced the deprecation of Create React App (CRA) as of February 14, 2025. This decision marks a pivotal moment for developers who have relied on CRA to build or set up React applications. - [Why should you learn JavaScript?](https://mishelshaji.com/why-should-you-learn-javascript.md) - Javascript is a powerful programming language that is used to create web applications. It is one of the most popular languages in use today. In this post, I'll share a few reasons to learn JavaScript. - [Working with zip files in Python](https://mishelshaji.com/working-with-zip-files-in-python.md) - In this tutorial we're going to learn how to create, extract and view zip files in Python using the built-in module named zipfile. ## Optional - [RSS Feed](https://mishelshaji.com/rss/) - [Sitemap](https://mishelshaji.com/sitemap.xml) - [Full content of pages and posts](https://mishelshaji.com/llms-full.txt)