Skip to main content

Erik Cunha

Senior Software Engineer, Applied AI · TypeScript, Python, React, Next.js, Angular, Node.js, AWS · LLM Systems, Evals, Agents, MCP, Guardrails

LOC: Brazil UTC-3 · available now NOW: Raylu (opens in a new tab) AI deal origination private markets LANG: PT-BR native · EN C1

fund assets
$500B+
e-com MAU
8M+
reporting API
40s → <1s
layout shift
CLS → 0

About

# Whoami

8+ years of production software across AI-native SaaS, fintech, payments and e-commerce: LLM systems and the evaluation that decides whether they are safe to ship, private-markets deal origination, PCI-DSS payments, hospital equipment service and bank insurance.

## Operating Principles

- Performance-first: LCP, INP, CLS and bundle size in production budgets.

- A11y & compliance: WCAG 2.2 AA, WAI-ARIA, PCI-DSS-grade safeguards.

- Evals before shipping: an LLM judge calibrated against human labels, jailbreak resistance gated in CI.

## Current Status

Open to Senior roles or impactful contract roles · open to any arrangement: remote worldwide, hybrid or on-site · English C1.

- Level: Senior

- Track: individual contributor or technical lead

- Engagement: full-time or fixed-term contract

- Domains: AI-native products, GenAI and agents, LLM evaluation, data-dense product platforms, payments

CAT ~/.NOW

Currently
building the investor workflow frontend at Raylu (opens in a new tab) · AI deal origination
Reading
AI Engineering · Chip Huyen; LangGraph, LangSmith, Langfuse
Building
this portfolio. you are looking at it.
Updated
2026-11-04

LS -LA ~/RESPONSIBILITIES

$ ls -la ~/responsibilities // role boundaries, in unix terms

drwxr-xr-xerikcorefrontend-architecturedrwxr-xr-xerikcoreperformance-optimizationdrwxr-x---erikcoresecurity-mindsetdrwxrwxrwxerikteammentoring-juniors-rw-r--r--erikteamwritten-knowledge-systemdrwxr-xr-xerikteamai-tooling-rwx------erikselftaste-and-judgment

NPM LIST --GLOBAL

CORE
  • REACT
  • NEXT.JS
  • NODE
  • PYTHON
  • EXPRESS
  • AWS
  • DOCKER
ANGULAR
  • NGRX
  • RXJS
  • NX
  • STENCIL
  • MICRO-FRONTENDS
LANG_DATA
  • TS
  • CSS
  • POSTGRES
  • MONGO
  • REDIS
QUALITY
  • JEST
  • VITEST
  • PLAYWRIGHT
  • A11Y
TOOLING
  • COPILOT
  • CLAUDE
  • CODEX
  • MCP
  • STORYBOOK
  • VERCEL
  • TANSTACK

$ cat src/lib/with-retry.ts

github (opens in a new tab)
// retry an RxJS stream with
// exponential backoff + jitter,
// used in the cashier's deposit
// polling loop; signals abort
// on permanent 4xx.
type Op<T> =
  MonoTypeOperatorFunction<T>;

export function withRetry<T>({
  max = 5,
  base = 300,
  isFatal,
}: RetryOpts): Op<T> {
  return retry({
    count: max,
    delay: (err, attempt) => {
      if (isFatal?.(err))
        throw err;
      const backoff =
        base * 2 ** attempt;
      const jitter =
        Math.random() * base;
      return timer(
        backoff + jitter,
      );
    },
  });
}

Interactive shell

Measured

source: PSI (opens in a new tab) · scripts/ask-eval.ts (opens in a new tab) (ask:eval:latest)

ASK_EVAL.JSON (opens in a new tab)

EVAL PASS-RATE
-
correctness · factual + edge corpus
JAILBREAK RESIST
-
prompt-injection refusal rate
P95 LATENCY
-
95% of answers finish within this time
COST / ANSWER
-
production inference · feature model only

loading…

MEASURED · LIGHTHOUSE

perf
-- / --
desktop / mobile
a11y
-- / --
desktop / mobile
bp
-- / --
desktop / mobile
seo
-- / --
desktop / mobile

> fetching desktop and mobile runs

Projects

  • ORIGINATION_PLATFORM_UI

    Investor workflow screens on Raylu's AI deal origination platform for private markets: company, pipeline, comparison, outreach. Shared table engine and URL-backed view state for funds holding $500B+ in assets.

    SURFACES:
    COMPANY / PIPELINE / OUTREACH
    STATE:
    VERSIONED + URL-BACKED
    STACK:
    REACT / NEXT 14 / TS 5
  • PAYMENT_ORCHESTRA

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

    VOLUME:
    40M+ TX / YR
    REVENUE:
    €1.197B (GROUP)
    STACK:
    ANGULAR / STENCIL / NGRX / NX
  • @ INDEPENDENT_CONSULTANTdrwxr-xr-x

    SERVICE_OPS_CONSOLE

    Hospital equipment service platform: service orders, specialist scheduling with travel-time checks, field visits, a 29-permission security-profile model, live updates.

    JS BUNDLE:
    -33%
    TTI:
    -52%
    STACK:
    ANGULAR / NX / RXJS
  • COMMERCE_EDGE

    Nike Brazil & Centauro storefronts: SSR/SSG/ISR, BFF gateway, shared Nx monorepo, 20+ A/B experiments.

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

    12-agent GitHub Copilot engineering system across generation, review, debugging, testing and architecture validation. Every automated action reviewable. Adopted team-wide at Betsson.

    REVIEW:
    EVERY ACTION
    SCOPE:
    TEAM-WIDE
    STACK:
    GITHUB COPILOT
  • EDTECH_OMNI

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

    SHARED:
    ~80% CODE
    DESKTOP BUILD:
    -40%
    STACK:
    IONIC / ANGULAR / ELECTRON
  • drwxr-xr-x

    REACT_GOOGLE_MAPS_API (opens in a new tab)

    Fixed an infinite React re-render loop in the Directions API example. The loop cost the docs site 61K+ unwanted Google Maps API calls. Stable-callback fix, merged by the maintainer.

    LIBRARY:
    ~1.8M WEEKLY NPM DOWNLOADS
    CAUSE:
    NEW CALLBACK IDENTITY EVERY RENDER
    STATUS:
    MERGED
  • drwxr-xr-x

    ERIKUNHA.DEV (opens in a new tab)

    This portfolio, a governed Anthropic endpoint and its eval harness. A prompt-injection gate rejects before inference, a streaming leak detector survives chunk boundaries, and a kill switch is in place. CI grades the endpoint with an LLM judge calibrated on human labels (0.85 agreement floor), with correctness gated at 0.9, jailbreak resistance at 1.0 and a $2 per-job cost cap.

    LLM JUDGE:
    AGREEMENT >= 0.85
    JAILBREAK GATE:
    1.0
    PER-JOB CAP:
    $2
  • drwxr-xr-x

    LAIBEMAGE (opens in a new tab)

    Open-source TypeScript CLI (MIT) classifying images across seven LLM vision providers: self-elicited confidence, local-to-cloud escalation below 0.70, two-provider consensus, active-learning queue.

    PROVIDERS:
    7
    CI:
    8 WORKFLOWS
    GATE:
    5% REGRESSION
  • drwxr-xr-x

    LEDGERLENS (opens in a new tab)

    Open-source Python agent (MIT) that investigates payment complaints: read-only text-to-SQL behind a guard, policy search, reference exchange rates and a Decimal calculator, then a verifier checks every claim against its cited evidence and escalates to human review by rule. It never changes data and runs offline with no keys. On thirty cases, 0.82 correctness against 0.55 for a ReAct agent, but tool trajectory 0.73 against a 0.80 target. Thirty cases show a trend, not significance.

    CORRECTNESS:
    0.82 VS 0.55 REACT
    HUMAN REVIEW:
    9.3 OF 30
    STACK:
    PYTHON / LANGCHAIN

PERF_RECEIPTS --HARD-NUMBERS

  • API_LATENCY40s → <1s@ VENTURUSreporting API at a client platform. Query rewrite + PostgreSQL indexes.
  • BUNDLE_CSS-98%@ INDEPENDENT_CONSULTANTPrimeFlex utility refactor on the layout shell, plus lazy load
  • INITIAL_LOAD-25%@ INDEPENDENT_CONSULTANTLazy-loaded modules and route-level code splitting
  • CONVERSION+10%@ GRUPO_SBF20+ A/B experiments.
  • DESKTOP_BUILD-40%@ MB_LABSone Ionic + Angular + Electron codebase, ~80% shared across 5 OSes.
  • LCP2,544 → 1,308ms@ RAYLUpipelines route, data-platform migration measured as a production build against its parent commit.

Career

erik@portfolio:~$ git log --oneline --decorate --graph ~/career

  1. RAYLU (opens in a new tab) SENIOR SOFTWARE ENGINEER New York, US (remote) Jun 2026 - Present

    wanted AI-native product scale; rebuilt the investor workflow screens of a private-markets platform for 50+ funds holding $500B+ in assets.

  2. BETSSON_GROUP (opens in a new tab) SENIOR SOFTWARE ENGINEER Malta (hybrid) Mar 2025 - May 2026

    wanted regulated multi-market scale; worked on a PCI-DSS payment platform that handles 40M+ tx/yr across 15+ jurisdictions, for a group with 31.1M customers.

  3. INDEPENDENT_CONSULTANT SENIOR SOFTWARE ENGINEER Remote Mar 2023 - Mar 2025

    rebuilt a hospital equipment service platform for a medical imaging equipment company: service orders, specialist scheduling, field visits; Angular 17 to 19.

  4. GRUPO_SBF (opens in a new tab) (NIKE / CENTAURO) SOFTWARE ENGINEER São Paulo, BR (remote) Dec 2021 - Mar 2023

    Next.js storefronts for Nike Brazil and Centauro (8M+ MAU); lifted conversion ~10% through 20+ A/B experiments and cut page load -32%; mentored four junior engineers; R$7.9B gross revenue, R$2.5B digital.

  5. ENCORA (opens in a new tab) (FORMERLY DAITAN) FRONTEND DEVELOPER · ASSIGNED TO VMWARE Campinas, BR Jan 2021 - Dec 2021

    VMware Pathfinder lab portal on Angular 11; NgRx effects, Reactive Forms, 2.1M+ labs.

  6. ZUP_INNOVATION (opens in a new tab) (ITAÚ UNIBANCO) FRONTEND DEVELOPER Campinas, BR Apr 2020 - Jan 2021

    first regulated / banking work; Angular Elements micro-frontends for Itaú's business insurance (24.2M digital clients).

  7. VENTURUS (opens in a new tab) FULL STACK ENGINEER → FRONTEND DEVELOPER Campinas, BR Feb 2019 - Apr 2020

    cut teeth on backend; reporting API 40s → <1s; MongoDB → PostgreSQL migration with a Node.js ETL pipeline.

  8. MB_LABS (opens in a new tab) FULL STACK ENGINEER → SOFTWARE ENGINEER Campinas, BR Jul 2018 - Feb 2019

    shipped 5-OS cross-platform from one Ionic + Angular + Electron codebase (~80% shared code).

Certifications

  • cert/ANGULAR_DEVCERTIFIEDcertificates.dev · 2024
  • cert/ENGLISHIELTS_GENERAL_TRAININGC1 · 2023
  • cert/INTL_DEGREEWES_VERIFIEDWorld Education Services · 2022

Education

  • edu/MBA_AI_ENGInstituto Infnet (online)expected Dec 2027
  • edu/CO_OP_DIPLOMACICCC, Vancouver2023-2024
  • edu/BS_INFO_SYSTEMSUNISAL, Campinas2015-2020

Community

community/DEVOPSDAYS_CAMPINAS · 2024 · ORGANIZER (opens in a new tab)

  • curated 8 talks across DevOps, cloud and platform engineering.
  • 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 2027 · open to volunteer / organizer roles.

VIEW_CV

Opinions

cat ~/hottest_takes.md // opinions i'll defend in a whiteboard interview
  1. 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. 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. 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 Betsson cashier, Playwright and WireMock flows told me whether payments were at risk.

  4. AISpec-first is the only disciplined way to ship with LLMs and agents.

    Vibe-coding generates output nobody can review. Spec-driven development inverts it: write the contract, expected behavior, and failure modes first, then the agent implements against a legible target. The spec is the review artifact, not the generated code. That is how I ran an AI-assisted engineering system at Betsson: every automated action reviewable. Without the spec, you have a black box you cannot audit, cannot roll back, and cannot hand off.

# things i'm actively learning

  • knowing when AI-assisted engineering is a force multiplier vs a debt accelerator
  • writing specs that someone else can ship without me in the room
  • 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.

the design-system opinion lives in the design system docs

Guitar and mixer

LEAD · Gretsch G5655TG → HX Stomp XL → IR cab → FOH

● SIGNAL_CHAIN.LIVE · SIGNAL OKTAIL -F ~/.RIG
// INPUT

GRETSCH G5655TG

Bigsby · hollow body
// AMP

MODELED CAB

no tube · IR sim
// OUT

FOH / IEM

XLR stereo · in-ear

INFLUENCES John Mayer · Mateus Asato · Jimmy Page · John Frusciante · Iron Maiden's three now obsessing: Coldplay's "Yellow": simplicity is hard.

STYLE
dynamics > drive
space is the note
TUNING
standard E
sometimes drop D
ALT RIG
Martin
acoustic
GIGS
venues
church · wedding · open mic
▶ REC · LIVECAM/01 · STAGE
Erik playing guitar on stage, live show
./GIGS --LIVE · SACRED + SWORN · FEEL OVER NOISE

[ .. ] loading the mixer channels

Contact

LS -L ~/CHANNELS

start
available now
mode
open to any arrangement: remote worldwide, hybrid or on-site
type
full-time or contract
reply
within 48h
lang
PT-BR (native) · EN (C1) · ES (B1) · FR (A2)