Matías Fernández
← All work

CLIENT WORK · COMPLETED ENGAGEMENT

Serverless Platform Modernization

A sanitized case study of an Angular modernization and a team migration from Java services to Node.js and TypeScript serverless services on AWS.

At a glance

Role
Full-Stack Engineer · shared technical coordination
Period
2019 — 2021
Team
UI coordination shared with two other developers · broader team result
Stack
Angular · Node.js · TypeScript · AWS Lambda · API Gateway · DynamoDB · Terraform
Source and demo
Sanitized architecture and team-attributed outcomes only. Client source, screenshots, data, and a demo are not public.

Disclosure boundary

Disclosure boundary

Audit basisPublic résumé plus the infrastructure-cost evidence entry, preserving team attribution.

Published here

  • Generic platform title, role, shared UI coordination, selected AWS services, migration scope, and approximate team result.
  • A conceptual modernization path rather than the client’s precise topology.

Kept private

  • Client repositories, screenshots, domain data, account layout, service inventory, traffic, and operational incidents.
  • Any implication that I solely designed the migration or individually produced the cost result.

01 / Overview

A platform modernization spanning an Angular 7-to-12 migration and a team move from Java services to Node.js and TypeScript serverless services on AWS, with Terraform-managed infrastructure and blue-green delivery.

02 / The problem

The problem

Modernize an existing analytics platform across UI, services, and infrastructure while continuing delivery and coordinating changes across multiple developers.

03 / My responsibility

My responsibility

  • Contribute hands-on to the Angular 7-to-12 migration and interactive analytics widgets.
  • Share technical coordination of UI changes with two other developers rather than claim sole frontend leadership.
  • Contribute to Node.js and TypeScript services, AWS infrastructure, Terraform, and blue-green delivery as part of the broader migration team.

Constraints

Constraints

  • The work modernized an existing product rather than starting from a blank architecture.
  • UI and service changes had to remain coordinated across developers and deployment boundaries.
  • The public result is approximate and belongs to the team; the case cannot assign it to one engineer.

04 / Architecture

Architecture

Sanitized modernization path

A conceptual view of the disclosed stack. It shows the direction of the modernization without reproducing accounts, service boundaries, data models, or client topology.

  1. 01Modernized UIAngular 7 → 12
  2. 02API boundaryAPI Gateway
  3. 03Serverless servicesNode.js · TypeScript · Lambda
  4. 04Data + deliveryDynamoDB · Terraform · blue-green

05 / Key decisions

Key decisions

01

Modernize the UI through version migration

Context
The product already had an Angular application and ongoing delivery commitments.
Decision
Move the existing frontend from Angular 7 through Angular 12 while continuing feature work and shared UI coordination.
Consequence
The team retained product context and delivery continuity, with compatibility work spread across the modernization.
02

Move services toward the TypeScript stack

Context
The modernization included existing Java services alongside a TypeScript-heavy product team.
Decision
Migrate selected services to Node.js and TypeScript on AWS Lambda behind API Gateway.
Consequence
The team migration contributed to an approximately 30% infrastructure-cost reduction; this remains a team result.
03

Treat infrastructure and rollout as code

Context
Service migration changes runtime infrastructure and increases deployment coordination risk.
Decision
Manage disclosed infrastructure with Terraform and use blue-green deployment practices.
Consequence
Infrastructure changes become reviewable and rollouts gain an explicit transition path.

06 / Trade-offs

Trade-offs

Version migration instead of abandoning the existing UI

What it enablesExisting product behavior and team knowledge remain useful while the framework advances.

What it costsCross-version compatibility and coordinated feature delivery add migration overhead.

Serverless Node.js and TypeScript services

What it enablesManaged execution and stack alignment supported the team’s lower infrastructure-cost outcome.

What it costsDistributed functions create more API, observability, retry, and deployment boundaries to coordinate.

Shared UI coordination

What it enablesDecisions and migration work can be distributed among three developers instead of depending on one person.

What it costsConventions, sequencing, and review require explicit alignment across contributors.

07 / Failure modes

Failure modes

  1. A framework upgrade can expose incompatible dependencies or behavior before a feature reaches production.
  2. A UI and API contract can drift when migrations proceed on different schedules.
  3. A distributed service failure can be partial, requiring logs and retries at more than one boundary.
  4. A rollout can fail after infrastructure changes; blue-green delivery keeps the transition explicit rather than treating deployment as one irreversible step.

08 / Results and evidence

Results and evidence

~30%

lower infrastructure cost from a team migration

Measured result · team resultOpen evidence ↗

09 / Delivery state

Delivery state

  1. 01
    Delivered · Angular 7 → 12

    Angular modernization

    Hands-on migration work and interactive analytics widgets.

  2. 02
    Delivered · Java → Node.js + TypeScript

    Serverless service migration

    Team migration across Lambda, API Gateway, and DynamoDB.

  3. 03
    Delivered · Terraform + blue-green

    Infrastructure delivery

    Reviewable infrastructure changes and explicit rollout transitions.

10 / What I would improve next

What I would improve next

  1. On a current version of this work, I would add contract tests around the UI/API migration boundary before each upgrade step.
  2. I would make per-service latency, failure, retry, and cost signals part of the migration acceptance criteria.
  3. I would record architecture decisions and ownership boundaries alongside Terraform changes to reduce coordination cost.

12 / Continue the conversation

Continue the conversation

The résumé provides the complete career context. For client-sensitive details, contact me and I can discuss the work at the appropriate disclosure level.

Contact me Open résumé