Perfsys — AWS Consulting Partner

AWS Infrastructure for a Fintech Startup: Live in 6 Weeks

5 days

from empty AWS account to a live environment

6 weeks

to a controlled production launch

0

failed production releases

Key Insights

Location

United Kingdom

Project duration

6 weeks to public launch, then ongoing

Industry

Fintech

Technologies used

ECS Fargate, RDS PostgreSQL, ElastiCache Valkey, S3, CloudFront, WAF, Secrets Manager, SES, Terraform, GitHub Actions

Introduction

A fintech platform that stores government IDs and moves money across borders cannot launch from a developer laptop. This client had a finished product and no safe way to put it in front of customers.

Building AWS infrastructure for a fintech startup in that position means fixing security, delivery and reliability together. Perfsys took this client from an empty AWS account to a live environment in 5 days, and to a controlled launch in 6 weeks.

Results at a Glance

  • 5 days from empty AWS account to a live, production-shaped environment
  • 41 days to a controlled launch, with the first production deployment on day 26
  • 0 failed production releases, and zero drift between the code and what runs in AWS
  • 0 publicly readable identity documents. Merchant IDs were open to anyone with a link before we started
  • 7 queued pull requests shipped in a single day once the new release process was in place
  • 3 hidden failures found and fixed before customers felt them

Here is the one that stings most. The platform was sending order emails through a provider that rejected every message, and the code logged each rejection as a success. Senders never got a single order confirmation, and nobody on the team knew.

The Client

The client runs a pay-for-me platform. Senders in the UK, US and EU buy goods and services directly for recipients in Nigeria, Ghana and Liberia, instead of sending cash. The platform earns on fees, FX margin and merchant commission, so a pricing error is lost revenue and a data leak could end a young company.

What Was Blocking Launch

The product worked. It just could not ship. We found four problems:

  • Nothing to deploy. The setup never produced a runnable build, so the app could not leave a developer machine.
  • Open merchant documents. Government IDs and business certificates sat in a bucket that anyone with a URL could read.
  • A hard ceiling at one server. Past one server, merchants would silently miss orders and scheduled jobs would run twice.
  • No visibility. No error tracking, no alerts and no health check. If the platform went down, nobody would know.

Behind these sat a quieter risk. Several integrations defaulted to test endpoints, so a production release could have quietly pointed at sandbox systems.

How We Worked

We audited the plan before touching the account. We checked the client's 12-deliverable plan against the real code. Three deliverables could not run as written and two were under-scoped. The storage migration touched about 34 places, well beyond the 8 planned. The scope was fixed before any infrastructure spend.

We prepared the app while the account was being set up. Eleven workstreams ran in parallel, so preparation cost no calendar time.

The client approved every live change. Every production change was reviewed first, and the reviewed change was the one applied.

Staging mirrors production. Both run the same Terraform code, so what passes in staging behaves the same live. The platform runs in AWS London, close to UK senders.

What We Built: Fintech Infrastructure on AWS

A Real, Deployable Application

We added a production build, a health check and structured logging. Critical vulnerabilities in dependencies dropped from 5 to 0, and in the container image from 3 to 0.

Private Merchant Documents

Everything moved to encrypted S3 storage with public access blocked. Documents are opened only through time-limited links.

Room to Grow

A shared Amazon ElastiCache layer now handles rate limiting, live merchant notifications and scheduled jobs. Scaling out is now a setting change.

One Production Platform, Fully in Code

The runtime is Amazon ECS Fargate behind CloudFront, with a private, encrypted Amazon RDS PostgreSQL database that has no route to the internet. Production's first build was 91 resources in a single reviewed Terraform apply, with nothing changed or destroyed.

A CI/CD Pipeline With One Approved Click

A change goes through automated checks, then to staging, then to production after one approval. Production reuses the exact image tested in staging, and any failure rolls back automatically. The pipeline holds no long-lived cloud credentials.

CI/CD pipeline on AWS with one approved click and automatic rollback
CI/CD pipeline on AWS: pull request, staging, one approved click, production, with automatic rollback
How a change reaches production: the same tested build moves forward, and any failure rolls back automatically.

Alerts That Reach a Human

Each environment has 10 CloudWatch alarms and a dashboard. One of them fires when zero healthy instances are running, since a platform that is fully down generates no traffic to trigger other alerts. We built the same kind of visibility for another client: see the serverless observability case study.

Two more hidden failures we fixed. The app's database password rotated every 7 days while the stored copy went stale, and the first container image carried inherited vulnerabilities that stopped the release gate until we rebuilt it on a minimal base.

Fintech Cloud Security on AWS

The platform holds identity documents, business registration certificates and payment data, so every design choice was made against that risk. For ongoing coverage after launch, see our security and compliance services.

Fintech cloud security on AWS: two independent locks at the edge
Fintech cloud security on AWS: CloudFront and load balancer as two independent locks, with direct access blocked
Two independent locks at the edge: a direct attempt to reach the load balancer gets a 403.
  • Two independent locks at the edge. The application is reachable only through CloudFront, and the load balancer also demands a secret header. Defeating one control does not open the platform. This is the pattern AWS documents in its guide to restricting access to Application Load Balancers.
  • Firewall in observation mode. Rules are tuned on real traffic before they start blocking, so legitimate customers are not turned away on launch day.
  • Secrets stay out of code. They live in AWS Secrets Manager, and staging and production share no credentials or data.
  • A lean, controlled launch. We agreed a small footprint with named triggers for scaling up, such as real customer onboarding or material transaction volume. Savings applied to capacity, never to backups, alerting or rollback.

Client Feedback

What impressed me most was Perfsys' personal approach. As a startup, we needed a knowledgeable team that was accessible and responsive, and Perfsys struck that balance perfectly, with direct access to the people doing the work. They delivered a production-ready OlivPay on schedule and within budget, and as a non-technical founder I especially appreciated their guidance.

Shola Tinubu

Founder at OlivPay

The founder, who describes themselves as non-technical, rated the engagement 5.0 on Clutch. He highlighted direct access to the engineers, quick decisions and clear communication. Read the full review on Clutch.

Conclusion and Next Steps

Perfsys turned a working but unshippable product into a live fintech platform on AWS, with the client's team shipping through it from the first week. Another fintech project: how we fixed an AI assistant that ignored its knowledge base.

The documented roadmap covers:

  • Multi-zone compute redundancy with automatic scaling
  • Switching the firewall from observation to enforcement mode
  • Delivery tracking for SMS and email notifications
  • Expanded AWS security services
Got a product that runs but cannot yet ship safely?
Got a product that runs but cannot yet ship safely?

We design and build production-ready AWS environments for startups and SMBs, from release pipelines to monitoring.

Book a Discovery Call
Explore AWS Consulting

FAQ

A deployable build, private encrypted data stores, a controlled public entry point, secrets management, a tested release and rollback path, plus alerting that reaches someone. Here, all of it was built as Terraform code.

Staging was live in 5 days, the first production deployment came on day 26 and the controlled launch on day 41.

Yes. The launch used a lean footprint with named triggers for scaling up, which keeps costs in check without cutting corners on safety.

The platform reverts to the previous healthy version automatically, and the pipeline reports the failure instead of hiding it.

Yes, through managed support packages for ongoing monitoring and incident response.

Mykyta Glushko
Mykyta Glushko

Software Engineer at Perfsys with hands-on experience building scalable backend systems on AWS using Python and TypeScript. He works directly on cloud infrastructure projects, bringing practical engineering depth to every topic he covers.

Recommended for You

View All News

AWS Experts, On-Demand

Need to move fast? Our cloud team is ready to scale, secure, and optimize your systems. Get serverless expertise, 24/7 support, and seamless CI/CD pipelines when you need it most.

Please accept cookies to load the booking widget.