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
erikcorefrontend-architectureerikcoreperformance-optimizationerikcoresecurity-mindseterikteammentoring-juniorserikteamwritten-knowledge-systemerikteamai-toolingerikselftaste-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)
loading…
MEASURED · LIGHTHOUSE
> 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
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
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
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
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
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
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.
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.
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.
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.
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.
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).
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.
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
Education
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.
Opinions
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.
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.
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.
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 docsGuitar and mixer
LEAD · Gretsch G5655TG → HX Stomp XL → IR cab → FOH
GRETSCH G5655TG
MODELED CAB
FOH / IEM
INFLUENCES John Mayer · Mateus Asato · Jimmy Page · John Frusciante · Iron Maiden's three now obsessing: Coldplay's "Yellow": simplicity is hard.

[ .. ] 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)