AWS ECS Fargate – Deploy and Run Multi-Container Web Application (.NET Core, Angular, Postgres)

Introduction With AWS Fargate, we can run applications without managing servers. Fargate is a serverless compute engine for containers. In previous post, we covered basics of AWS Fargate and took a step by step approach to deploy and run a .NET Core Web API application on AWS Fargate Service. We used AWS Fargate web console … Read more

Designing in Agile World

Introduction Softwares, once you strip away all the layers of abstraction, is really just a big pile of numbers. In fact, even those numbers are abstractions for bunch of electrons moving around. We partly human beings are just incapable of thinking about software in those terms however. Reality is just too complicated. We have to … Read more

Writing beautiful, optimized and better .NET code with NDepends static analysis

Introduction Over the years I’ve been in various discussions regarding benefits of clean architecture, best practices, techniques such as code reviews, unit tests etc. and I think on some degree most of us are aligned on the reasons behind it. Having a clean architecture or code-base not only makes your development team happier, but it … Read more

Migrate On-Prem Web app (.NET Core, Angular and Postgres) – to AWS Serverless

Introduction I’ve previously written about various AWS services and how using serverless offerings results in great development experience, reduce management overhead and applications can benefit from various out-of-the-box features such as high-availability, performance and cost optimization. Today, we will see a simple workflow to port an existing .NET core application which was designed to run … Read more

Manage Hierarchies with Composite Pattern

Introduction The composite design pattern generalize a hierarchical structure. It helps deal with tree structure of information. This make things easier for clients due to uniform way to work with individual items and for collections. Lets start by stating that composite is not composition (composition is another useful software design approach. Decorator pattern utilizes composition). … Read more

Extending functionality using Decorator Pattern (C#)

Introduction The decorator pattern is a structural design pattern which allows you to dynamically add functionality to classes without modifying the target class. It does this by creating a wrapper around the original class, which gives you an extension point to inject in new behavior. It allows you to maintain a strong separation of concerns … Read more

Kubernetes Basics – Deployments

Introduction In previous posts on Kubernetes basics, We learned that Kubernetes is all about running containerized apps. A Kubernetes cluster consists of masters and nodes which we can manage through an API using kubectl command line tool. We also learned that Pods are the smallest deployable unit in Kubernetes API and Pod hosts the container(s). … Read more

Structure JavaScript Code Using Modules

Introduction Most people (including myself) start out writing JavaScript code by adding function after function into a .js or HTML file. This can get job done but same time can quickly get out of control when working with a lot of code. Without having proper structure, maintaining such code bases, can be a nightmare and … Read more