Skip to main content
PORTFOLIO.SH×
PROJECTS

Erik Henrique Alves Cunha — Senior Frontend Engineer

CAT README.MD

# Erik Henrique Alves Cunha — Senior Frontend Engineer
8+ years building frontend systems for regulated, high-traffic platforms in fintech (PCI-DSS), healthcare, and global e-commerce.
## Core Stack
- Angular · React · Next.js · TypeScript · Node.js · RxJS · NgRx
- Micro-frontends · Nx monorepos · Clean Architecture · Web Components
## Operating Principles
- Performance-first: LCP, TBT, bundle reduction in production budgets.
- A11y & compliance: WCAG 2.1 AA, ARIA, PCI-DSS-grade safeguards.
## Current Status
Open to [Senior / Staff / Principal] roles or impactful contract roles · remote-first · EU/US/CA · English C1.
# erik cunha
 
senior frontend engineer.
currently shipping the betsson cashier — 40M+ tx/yr,
€1B+ annual revenue, PCI-DSS, micro-frontends.
 
## what i do
build regulated, high-traffic frontends that don't break
when finance / health / commerce regulators show up.
$ cat src/lib/with-retry.ts// view full repo →
// retry an RxJS stream with exponential backoff + jitter — used in
// the cashier's deposit polling loop. signals abort on permanent 4xx.
export function withRetry<T>(
  { max = 5, base = 300, isFatal }: RetryOpts,
): MonoTypeOperatorFunction<T> {
  return retry({
    count: max,
    delay: (err, attempt) => {
      if (isFatal?.(err)) throw err;
      const wait = base * 2**attempt + Math.random() * base;
      return timer(wait);
    },
  });
}

MAN ERIK(1)

ERIK(1)                    User Commands                    ERIK(1)


NAME
       erik — senior frontend engineer

SYNOPSIS
       erik [--seniority SENIOR|STAFF|PRINCIPAL]
            [--track IC|LEAD]
            [--domain PAYMENTS|HEALTHCARE|AI-TOOLING|E-COMMERCE]
            [--region WORLDWIDE] [--relocation]
            [--contract|--ft]
            [<target-stack> ...]

DESCRIPTION
       Senior frontend engineer, 8+ years. Started full-stack,
       evolved into frontend architecture. Shipped production
       systems across payments (PCI-DSS), healthcare, banking,
       e-commerce, and ed-tech — Angular, React/Next.js, and
       Stencil micro-frontends powering €1B+ in revenue.
       Ranges across web, mobile (Ionic), and desktop (Electron).
       Recently built a 12-agent AI engineering platform in
       production. Currently embedded at Betsson (Malta, EU).

OPTIONS
       --seniority    Senior → Staff/Principal
       --track        Individual contributor or technical lead
       --domain       Strongest in regulated frontends (payments,
                      healthcare, AI tooling); open to adjacent
       --region       Worldwide; remote-first
       --relocation   Open to relocating for the right role
       --regulated    Specialty: PCI-DSS, healthcare, banking
       --contract     Open to fixed-term or freelance
       --ft           Open to full-time
       --hire         Initiates handshake. See CONTACT.

EXAMPLES
       $ erik --seniority STAFF --domain PAYMENTS --ft
       $ erik --track LEAD --domain AI-TOOLING --ft
       $ erik --seniority PRINCIPAL --region WORLDWIDE --relocation
       $ erik --contract --stack "TypeScript, micro-frontends, AI"

KNOWN BUGS
       - Occasionally rewrites a working component for clarity.
       - Will not stop talking about bundle size.
       - Sometimes ships the test before the feature.

AUTHOR
       Written by Erik Henrique Alves Cunha.
       Report bugs to: erikhenriquealvescunha@gmail.com

SEE ALSO
       cv(1), github(1), linkedin(1), calendar(1)


v8.0                       2026-05-15                       ERIK(1)

CAT ~/.NOW

Currentlyshipping multi-currency settlement · Betsson cashier (PCI-DSS)
ReadingAI Engineering · Chip Huyen — applied LLM eval in prod
Buildingthis portfolio. you are looking at it.
Listeninga lot of guitar. compilers by day, six strings by night.
Updated2026-05-15

./EXEC INTERACTIVE_SHELL

erik@portfolio · /bin/shSESSION_ID: 0xDEADBEEF
Connected. Type help to list commands, or ask me anything about Erik.
erik@portfolio:~$

commands: help · whoami · whoami --recursive · ls · cat skills.md · cat ~/.now · contact · face · hire · clear · anything else → Claude

LS -LA ./PROJECTS

  • drwxr-xr-x

    PAYMENT_ORCHESTRA

    PCI-DSS cashier platform — multi-brand deposit/withdraw orchestration across 15+ regulated markets.

    VOLUME:
    40M+ TX / YR
    REVENUE:
    €1B+ / YR
    STACK:
    ANGULAR / STENCIL / NGRX
  • drwxr-xr-x

    CARE_OPS_CONSOLE

    Mission-critical hospital operations dashboards — real-time, multi-site, Clean Architecture.

    JS BUNDLE:
    -33%
    TTI GAIN:
    +52%
    STACK:
    ANGULAR / NX / RXJS
  • drwxr-xr-x

    COMMERCE_EDGE

    Nike Brazil & Centauro storefronts — SSR/SSG, micro-frontends, experiment-driven UX.

    REACH:
    8M+ MAU
    LOAD TIME:
    -32%
    STACK:
    NEXT.JS / REACT / TS
  • -rwx------

    AI_AGENT_MESH

    GitHub Copilot 12-subagent system — codegen, review, debugging, arch validation. Path-scoped instructions + prompt workflows, shipped team-wide at Betsson.

    SUBAGENTS:
    12 + ORCHESTRATOR
    SCOPE:
    TEAM-WIDE
    STACK:
    COPILOT · PATH-SCOPED
  • drwxr-xr-x

    EDTECH_OMNI

    Cross-platform EdTech app — one codebase, five OSes (Android / iOS / Win / macOS / Linux).

    REUSE:
    ~90% LOGIC
    COST:
    -80% VS NATIVE
    STACK:
    IONIC / ANGULAR / ELECTRON
-rwxr-xr-x
payment_orchestra/
PCI-DSS cashier handling 40M+ transactions/yr at Betsson. Multi-currency settlement, regulator-grade audit trail, micro-frontends across Angular / React / Ember via Stencil.
stackstencil · angular · rxjs
scale€1B+ ARR
statusproduction
-rwxr-xr-x
care_ops/
Angular + Nx + Clean Architecture frontend for Canon Medical workflow ops. -33% JS, +52% TTI, ~100% WCAG 2.1 AA. Lazy-loaded modules, OnPush everywhere, concurrent async pipelines.
stackangular · nx · clean arch
scalehospital ops
statusproduction
-rwxr-xr-x
commerce_edge/
Nike Brazil & Centauro storefronts for Grupo SBF. 8M+ MAU. -32% page load, +10% conversion across 20+ A/B experiments. WebAR try-on, CWV-first image pipeline.
stacknext · react · webar
scale8M+ MAU
statusshipped
-rwx------
ai_agent_mesh/
Copilot 12-subagent system at Betsson — code review, doc-gen, spec-to-PR. -40% onboarding via 35-page arch knowledge system. Built and maintains the agents. Also uses Claude API for personal tooling (this portfolio's shell).
stackcopilot · subagents · claude
scale12 agents · 4 teams
statusinternal
-rwxr-xr-x
edtech_omni/
Cross-platform EdTech. One codebase, five OSes. Ionic + Angular + Electron.
stackionic · angular · electron
scale5 OSes · production
statusshipped

GIT LOG ~/CAREER --PRETTY=FULLER --DECORATE --GRAPH

erik@portfolio:~$ git log --graph --pretty=fuller --decorate --since="2018-06-01" ~/career
* commit 7f3a2bc09f8e1d4c2b6a5d3e8c1f2a7b9d4e6c0a (HEAD -> main, tag: v8.0, origin/main)
| Author:     Erik Henrique Alves Cunha <erik@erikunha.dev>
| AuthorDate: Sat Mar 1 09:42:11 2025 +0100
| Branch:     career/betsson
|
|     feat(career): BETSSON_GROUP · SR FRONTEND ENGINEER · Malta (EU)
|
|     wanted regulated multi-market scale; got 40M+ tx/yr
|     across 15+ jurisdictions on a PCI-DSS payment platform.
|
* commit 4a9e1d886b3f2c7e0a8d5b9c1e6f4a2b3d7e8c01 (tag: v7.0)
| Author:     Erik Henrique Alves Cunha <erik@erikunha.dev>
| AuthorDate: Mon Apr 17 11:24:00 2023 -0300
| Branch:     career/canon-medical
|
|     feat(career): CANON_MEDICAL_SYSTEMS · SR SOFTWARE ENG (CONSULTING) · Remote (CA)
|
|     mission-critical hospital ops platform; full architectural
|     ownership across multi-site network.
|
* commit cc1cc1ad202300823f5b1e8d9c4a7e2f0b6d8c1a (tag: visa-ca)
| Author:     Erik Henrique Alves Cunha <erik@erikunha.dev>
| AuthorDate: Wed Aug 30 10:15:33 2023 -0700
| Branch:     education/web-dev-coop
|
|     feat(life): CICCC · WEB DEV CO-OP DIPLOMA · Vancouver, CA
|
|     part-time, concurrent with Canon Medical role.
|     forcing function to relocate and earn CA work authorization.
|
* commit 5b6f0a4c8d9e1b3a7c2f5d8b0a4e6c9f1b3d7a02 (tag: v6.0)
| Author:     Erik Henrique Alves Cunha <erik@erikunha.dev>
| AuthorDate: Mon Dec 6 16:08:22 2021 -0300
| Branch:     career/grupo-sbf
|
|     feat(career): GRUPO_SBF (NIKE / CENTAURO) · REACT DEVELOPER · São Paulo, BR (remote)
|
|     React at LATAM e-commerce scale (8M+ MAU); institutionalized
|     experiment-driven dev (20+ A/B tests).
|
* commit 3d4e8c1a5b9f2c7e6d3a8b1c4e5f9d2a7b6c0e8d (tag: v5.0)
| Author:     Erik Henrique Alves Cunha <erik@erikunha.dev>
| AuthorDate: Mon Jan 4 09:00:11 2021 -0300
| Branch:     career/encora
|
|     feat(career): ENCORA (DAITAN GROUP) · FRONTEND ENGINEER · Campinas, BR
|
|     enterprise B2B Angular depth; NgRx in production.
|
* commit 1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a01 (tag: v4.0)
| Author:     Erik Henrique Alves Cunha <erik@erikunha.dev>
| AuthorDate: Wed Apr 1 13:22:45 2020 -0300
| Branch:     career/zup-itau
|
|     feat(career): ZUP_INNOVATION (ITAÚ) · FRONTEND ENGINEER · Campinas, BR
|
|     first regulated / banking work; Web Components +
|     micro-frontends across multiple banking apps.
|
* commit 9c8b7a6e5d4f3c2b1a0e9d8c7b6a5e4f3d2c1b0a (tag: v3.0)
| Author:     Erik Henrique Alves Cunha <erik@erikunha.dev>
| AuthorDate: Fri Feb 1 10:30:00 2019 -0300
| Branch:     career/venturus
|
|     feat(career): VENTURUS · MEAN STACK ENGINEER · Campinas, BR
|
|     cut teeth on backend; -97.5% API latency (40s → <1s);
|     Mongo → Postgres migration with custom ETL.
|
* commit 0e0f0a0b0c0d0e0f0a0b0c0d0e0f0a0b0c0d0e0f (tag: v1.0, root-commit)
  Author:     Erik Henrique Alves Cunha <erik@erikunha.dev>
  AuthorDate: Mon Jun 4 08:00:00 2018 -0300
  Branch:     career/mb-labs

      feat(career): MB_LABS · MOBILE / FULL STACK · Campinas, BR

      first job. shipped 5-OS cross-platform from one
      Ionic + Angular + Electron codebase.
(END) — press q to return to portfolio
2025 → present
BETSSON GROUP·Senior Frontend EngineerPCI-DSS cashier · 40M+ tx/yr · €1B+ ARR · micro-frontends across Angular/React/Ember via Stencil · 12-subagent Copilot system · -40% onboarding via 35-page arch knowledge system.
2023 → 2025
CANON MEDICAL·Senior Angular EngineerAngular + Nx + Clean Architecture. -33% JS, -98% CSS, +52% TTI, ~100% WCAG 2.1 AA. Cheapest culture audit I've ever run.
2021 → 2023
GRUPO SBF·Frontend Engineer · Nike BR / Centauro8M+ MAU storefronts. -32% page load. +10% conversion across 20+ A/B experiments. WebAR uplift on add-to-cart.
2021 → 2021
ENCORA (VMware Pathfinder)·Frontend Engineer2.1M+ cumulative labs delivered globally. Angular, NgRx, AWS CodePipeline/CloudFront. Zoom API integration.
2020 → 2021
ZUP / ITAÚ BANK·Frontend EngineerBrazil's largest private bank. Angular Web Components, micro-frontend architecture, regulated banking UX.
2019 → 2020
VENTURUS·Full-stack EngineerCCR AutoBAn highway ops dashboards (Angular/RxJS) + foreign trade platform: reporting 40s → <1s, -97.5% latency via query redesign + indexing.
2018 → 2019
MB LABS·Software EngineerShipped EdTech as Electron desktop across 5 OSes. -80% vs native, -40% build time via Ionic + Angular consolidation.

NPM LIST --GLOBAL

  • ANGULAR
  • REACT
  • NEXT.JS
  • TS
  • NODE
  • EXPRESS
  • POSTGRES
  • MONGO
  • RXJS
  • STENCIL
  • NX
  • JEST
  • PLAYWRIGHT
  • A11Y
  • NGRX
  • DOCKER
  • AWS

SYS_HEALTH_MONITOR

EXPERIENCE
8+ YRS
TX VOL / YR
40M+
A11Y SCORE
~100 / 100
PERF DELTA
-33% JS / -98% CSS

LIVE_PERF.JSON

PERFORMANCE
/100
ACCESSIBILITY
/100
BEST PRACTICES
/100
SEO
/100
loading...

PERF_RECEIPTS --HARD-NUMBERS

  • API_LATENCY

    -97.5%

    @ VENTURUS

    40s → <1s on a reporting endpoint. Query redesign + indexing strategy.

  • BUNDLE_CSS

    -98%

    @ CANON_MEDICAL

    layout refactor + lazy load.

  • TTI

    -52%

    @ CANON_MEDICAL

    concurrent async + OnPush.

  • BUNDLE_JS

    -33%

    @ CANON_MEDICAL

    code splitting + dynamic imports.

  • PAGE_LOAD

    -32%

    @ GRUPO_SBF

    CWV optimization + image pipeline.

  • CONVERSION

    +10%

    @ GRUPO_SBF

    20+ A/B experiments.

  • DESKTOP_BUILD

    -40%

    @ MB_LABS

    Electron consolidation across 5 OS.

  • ONBOARDING_TIMEONBOARDING

    -40%

    @ BETSSON_GROUP

    35-page architecture knowledge system + diagrams.

CAT ~/.GUITAR_RIG

$cat ~/.guitar_rig
# updated 2026-05-13

GUITAR_MAIN       Gretsch G5655TG · Electromatic Center Block Jr · Bigsby
GUITAR_ALT        Martin acoustic
AMP               modeled · no tube in the chain
PEDALBOARD        Line 6 HX Stomp XL · amp + effects modeling

INFLUENCES        in order:
                      1. John Mayer
                      2. Mateus Asato
                      3. Jimmy Page
                      4. John Frusciante
                      5. Iron Maiden's three (Murray · Smith · Gers)

STYLE             feel / expression over noise · clean tones, lots of space
TUNING            standard E · sometimes drop D · never Eb
PRACTICE          jams, tones, live takes · guitarcam from the desk
GIGS              played live with a band · small venues
NEVER_LEARNED     reading staff notation · tabs only
LATEST_OBSESSION  Coldplay's "Yellow" — the simplicity is the hard part
$cat ~/.guitar_rig
# the other six strings

MAIN         Gretsch G5655TG · Bigsby
ALT          Martin acoustic
PEDAL        Line 6 HX Stomp XL
AMP          modeled · no tube

INFLUENCES
              1. John Mayer
              2. Mateus Asato
              3. Jimmy Page
              4. John Frusciante
              5. Iron Maiden's three

STYLE        feel over noise · lots of space
TUNING       standard E · sometimes drop D
GIGS         small venues · band setting
OBSESSION    Coldplay's "Yellow" · simplicity is hard

CAT ~/.VISA

JURISDICTION    STATUS                  EVIDENCE
================================================================
EU (MALTA)      WORK_AUTHORIZED         active employer (Betsson)
CA              CO_OP_GRADUATE          CICCC, Vancouver · 2023-2024
BR              CITIZEN                 native
WORLDWIDE       OPEN_TO_RELOCATION      considering opportunities
$ cat ~/.visa

REGION    STATUS
================================
EU (MT)   WORK_AUTHORIZED
          active employer (Betsson)
CA        CO_OP_GRAD
          CICCC Vancouver · 2023-24
BR        CITIZEN
          native
WORLD     OPEN_TO_RELOC
          considering opportunities
// PT (native) · EN (C1) · FR (A2) · ES (A2)
$ cat ~/.credentials

ANGULAR_DEV  CERTIFIED
             Alain Chautard (GDE) · 2024
ENGLISH      IELTS_C1
             band 6.5 · 2023
INTL_DEGREE  MES_VERIFIED
             World Education Svcs · 2022

CAT ~/.CREDENTIALS

$cat ~/.credentials

ANGULAR_DEV     CERTIFIED       Alain Chautard (GDE Angular) · 2024
ENGLISH         IELTS_C1        band 6.5 (speaking & listening) · 2023
INTL_DEGREE     WES_VERIFIED    World Education Services · 2022

CAT ~/.COMMUNITY

DEVOPSDAYS_CAMPINAS · 2024 · ORGANIZER
  • curated 10+ talks across DevOps, cloud infra, platform engineering, and architecture.
  • ran the full speaker cycle: CFP launch → review → selection → program design → day-of → wrap.
  • coordinated with speakers, sponsors, and co-organizers end-to-end.
>status: open to CFP submissions for 2026 · open to volunteer / organizer roles.

CAT ~/HOTTEST_TAKES.MD

$cat ~/hottest_takes.md // opinions i'll defend in a whiteboard interview
  1. 01.

    ARCHAngular is the right default for any regulated platform in 2026.

    React's ecosystem moves faster but is less audit-friendly. NgRx + RxJS give you serializable state by default — that matters when a regulator subpoenas your deposit flow. The "Angular is slow" argument is a 2018 take that survived past its expiration date.

  2. 02.

    MFEMicro-frontends are a contract problem, not a routing problem.

    Most teams adopt them for Conway-shaped reasons (we have 4 teams, we want 4 apps) and pay the wrong tax. The hard part is event contracts and shared auth/state — not Module Federation config. If your MFEs can't be deployed independently without a runtime version matrix, you built a distributed monolith.

  3. 03.

    TESTThe testing pyramid is wrong for B2C frontends.

    Inverted pyramid — heavy E2E, lean units, near-zero shallow snapshots — wins when UX is the product. Unit tests catch refactors; E2E catches what the customer actually sees. On the cashier, a single Playwright trace replaces 40 brittle component tests and tells me whether revenue is at risk.

  4. 04.

    AIAI code review is already better than 80% of human reviewers for style and local correctness.

    The remaining 20% — cross-system reasoning, "why is this here", judging trade-offs against constraints reviewers were never told about — is exactly what senior humans are for. Hiring should optimize for that, not for catching missing semicolons your CI also caught.

  5. 05.

    SIGNALBundle size is a leading indicator of team health, not a tech metric.

    A team that ignores the 1.4MB main chunk also ignores the dead route, the four versions of lodash, and the on-call rotation. The number itself doesn't cost much; what it predicts about discipline does. -33% JS at Canon Medical was the cheapest culture audit I've ever run.

  6. 06.

    DXRxJS isn't harder than promises. It's harder than the wrong abstraction you reach for instead.

    Most "just use async/await" code is a hand-rolled, buggy reimplementation of switchMap + retry + takeUntil. Pay the learning curve once; stop reinventing cancellation, backpressure, and race conditions per-feature for the rest of your career.

  7. 07.

    DSFramework-agnostic design systems lose unless the contract is shipping, not theory.

    Web Components only pay off when you have >1 framework consuming them in production. Otherwise you bought distribution overhead to solve a problem you don't have. Stencil at Betsson works because Angular, React, and Ember are all actually downstream — not because someone read a blog post.

  8. 08.

    PROCIf your PRs require a meeting to merge, your architecture is unwritten.

    Architecture lives in the code review template, the ADR folder, and the linter config — not in a Confluence page nobody opens. The 35-page architecture system at Betsson cut onboarding -40% because it replaced "ask Erik" with "ask the doc". The doc doesn't go on PTO.

LS -LA ~/RESPONSIBILITIES

$ls -la ~/responsibilities // role boundaries, in unix terms
drwxr-xr-x  erik  core  frontend-architecture
drwxr-xr-x  erik  core  performance-optimization
drwxr-x---  erik  core  security-mindset
drwxrwxrwx  erik  team  mentoring-juniors
-rw-r--r--  erik  team  written-knowledge-system
drwxr-xr-x  erik  team  ai-tooling
-rwx------  erik  self  taste-and-judgment
drwxr-xr-x  i own it, you can read it, you can run against itdrwxrwxrwx  explicitly shared — please write here toodrwxr-x---  owned, run only by trusted group (security, compliance)-rwx------  not delegable; this is the one i bring to the room

CAT ~/.UNKNOWNS

$ cat ~/.unknowns

# things i'm actively learning

- knowing when AI-assisted engineering is a force multiplier vs a debt accelerator
  (built the 12-agent system at betsson. also watched what it produces
   when nobody reads the diffs.)

- writing specs that someone else can ship without me in the room
  (the 35-page knowledge system was a start. specs are harder.
   "what i meant" is not what i wrote.)

- deciding what NOT to ship
  (the feature that doesn't ship is the one that doesn't cause an incident.
   learning to advocate for cuts.)

- opening a 1:1 with something other than "so, how's your week?"
  (the icebreaker question IS the conversation.
   learning to ask better ones.)

- learning to be wrong in public without making it the story
  (engineers who admit mistakes loudly are usually still making it about them.
   fix it, move on, stop performing the apology.)

# things i've chosen not to specialize in (yet)

- mobile native (ios/android beyond ionic)
  (shipped ionic for 5 OSes once. that was enough.)

- ML model training / research
  (applied-AI consumer, not researcher. the agents are the layer i own.)

- chasing the framework wars
  (i've shipped the same architecture pattern in 4 different syntaxes.
   the syntax was never the hard part.)

> open to roles that push me harder on any of the above.

SUDO CONTACT --INIT

waiting for manual override... _