In 2026, .NET (C#, .NET Core) strengthens its position as one of the primary platforms for enterprise product engineering in the US market. In addition to Citi, which uses .NET for automating internal banking workflows, JPMorganChase is another example of an enterprise financial institution that relies on .NET to build secure, stable, scalable, market-leading financial technology products. When JPMorganChase, a global leader in banking for corporations, governments, and institutions in more than 100 countries, widely relies on this Microsoft technology, it's a sign that .NET is one of the best platforms for enterprise software product development today.
Why .NET Is JPMorganChase's Choice for Enterprise Product Engineering
JPMorganChase is one of the oldest American financial institutions, with more than 200 years of history.
In 2026, senior .NET developers help JPMorganChase's Commercial & Investment Bank teams in Irvine (CA), Plano (TX) and Chicago (IL) design and deliver software products for healthcare payments (electronic payment processing through InstaMed platform), securities services (custody and fund administration for institutional clients), and electronic trading (multi-broker trading through Neovest platform).
Modern .NET fits JPMorganChase's product engineering strategy because as a cloud-native strategy it requires containerization, orchestration, resilience, security, observability, and CI/CD — every one of which .NET supports natively.
.NET Supports Cloud-Native Containerization
JPMorganChase has built one of the largest container-based infrastructures in banking. The bank packages its software into standardized containers or portable units that include the software and everything it needs to run, ready to deploy anywhere from the bank's own data centers to public clouds. JPMorganChase uses .NET inside this container-based infrastructure for healthcare payments, securities custody, fund administration, and electronic trading.
Cloud-native containerization is important to JPMorganChase because the bank's size (tens of thousands of engineers building thousands of services) requires portability across the bank's hybrid infrastructure, standard packaging across different development teams, and efficient use of server capacity. Without containerization, it would be significantly harder for a bank of this size to deploy across multiple clouds, keep development teams working the same way, and control server costs at this scale.
- Containers let the bank run the same applications on AWS, Azure, Google Cloud, or its own data centers without dependency on one cloud vendor.
- They give every development team the same way to package software.
- And by allowing more services to run on each server, containerization can reduce the costs of hosting them.
.NET Capabilities for Cloud-Native Containerization
Built-in Container Packaging
If each team at banks or other large organizations writes its own instructions (Dockerfiles) for packaging software into containers, different instructions will produce inconsistent results and security gaps. .NET packages software into containers, using Microsoft's official building blocks by default, without requiring a separate Dockerfile. So the bank's software delivery processes have one less tool to maintain and one less place where security mistakes can happen.
Official Microsoft Container Images
.NET fits the supply-chain documentation aspect of containerization. Container images are software components. When banks use them, they come under the same third-party software risk management scrutiny as everything else the bank uses: what is in them, who maintains them, how quickly security flaws get fixed. Microsoft provides official .NET base images that banks use as the foundation for their production application images, signed and patched as Microsoft products. So the bank can show Microsoft's documentation instead of writing its own.
Stripped-down Container Packages (Chiseled Images)
The bank runs hundreds of services in containers, and every piece of software inside every container is a potential security vulnerability the security team has to track and fix. Microsoft provides a special version of their Linux-based container packages for .NET that includes only what the software needs to run and nothing else. So the bank's .NET services run on the smallest possible foundation, with the smallest target for attackers and the shortest list of security fixes the security team has to apply.
AOT Compilation
The orchestrator inside cloud-native containerization infrastructure scales software up and down based on demand, but a container that takes too long to start cannot scale up fast enough to handle traffic spikes. Moreover, large software packages cost more to store and distribute across the bank's servers. .NET has a way to prepare software in advance, before it runs, producing containers 80-90% smaller than before and starting in milliseconds. This reduces the bank's infrastructure cost for every service it operates.
Container-Aware Runtime
Cloud-native containerization gives each piece of containerized software a strict budget for how much computer memory and processing power it can use. If the software uses more than its budget, the system shuts it down and starts a fresh copy, which causes banking transactions in progress to fail. Container-aware runtime lets .NET software automatically adjust to the resource budget (memory, processing power) it has been given inside a container. So .NET-built software does not exceed its limits, does not get shut down, and the bank does not lose transactions.
.NET Fits Cloud-Native Orchestration
JPMorganChase manages its containerized software through Kubernetes, the platform that keeps the bank's services running by starting new copies when load increases, replacing failed copies automatically, and sending customer requests only to working services. A dedicated engineering team at the bank builds and operates Kubernetes across the bank's hybrid infrastructure, including Amazon's EKS on AWS plus Kubernetes on Azure, Google Cloud, and the bank's own data centers. JPMorganChase's .NET workloads in healthcare payments, securities custody, fund administration, and electronic trading all operate under this Kubernetes management.
Cloud-native orchestration is important to JPMorganChase because the bank's services run 24/7 across global business lines and cannot wait for an engineer to restart them when they fail. Without orchestration, it would be significantly harder for a bank of this size to keep services running through failures, traffic spikes, and software updates.
- The orchestrator automatically restarts failing services and routes customer requests away from them.
- It scales services up and down as banking workloads change throughout the day.
- And it lets the bank deploy software updates without taking services offline.
.NET Capabilities for Cloud-Native Orchestration
Built-in Health Check Endpoints
Kubernetes needs to know which copies of a service are healthy enough to receive customer requests and which need to be restarted. Without feedback from each service, Kubernetes does not know which copies are available and which are down. It keeps sending customer requests to all copies, including broken ones, and customers see errors. .NET has built-in health check endpoints for Kubernetes. So Kubernetes restarts failing .NET services automatically and sends customer requests only to .NET services that are working.
Built-in Key Management for Scaling
When traffic increases, Kubernetes starts more copies of a service to share the load. But running multiple copies of the same service creates a problem: how do customer logins, encrypted cookies, and security tokens work across copies? .NET has built-in key management for multi-copy situations, sharing the necessary security keys across all running copies of a service automatically. So the bank's .NET services scale up without logging customers out or breaking their security tokens when Kubernetes starts new copies.
Graceful Shutdown
If Kubernetes is going to shut down a copy of a service due to a software update, scaling down, or server maintenance, it tells the service to finish its current work and then shut down. If the service does not understand this request and keeps working, Kubernetes stops it forcibly, which may interrupt the banking transactions the service was processing and cause them to fail. .NET understands the request from Kubernetes and finishes the transactions it is currently processing before shutting down. So when JPMorgan Chase updates its .NET services or scales them down, customers in the middle of paying a bill, placing a trade, or accessing their accounts can complete their actions instead of seeing errors.
Rate this article
Recommended posts
Our Clients' Feedback
We have been working for over 10 years and they have become our long-term technology partner. Any software development, programming, or design needs we have had, Belitsoft company has always been able to handle this for us.
Founder from ZensAI (Microsoft)/ formerly Elearningforce