CAT README.MD
// 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 software engineer, frontend specialization 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 software 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). Senior/Staff/Principal track. OPTIONS --seniority Senior through 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-13 ERIK(1)
CAT ~/.NOW
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
12-agent multi-agent system + orchestration — codegen, review, debugging, architectural validation.
- AGENTS:
- 12 + ORCHESTRATOR
- SCOPE:
- TEAM-WIDE
- STACK:
- CUSTOM TOOLING
- 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
GIT LOG ~/CAREER --PRETTY=FULLER --DECORATE --GRAPH
* commit 7f3a2bc09f8e1d4c2b6a5d3e8c1f2a7b9d4e6c0a (HEAD -> main, tag: v8.0, origin/main) | Author: | 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: | 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: | 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: | 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: | 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: | 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: | 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: 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.
NPM LIST --GLOBAL
- ANGULAR
- REACT
- NEXT.JS
- TS
- NODE
- RXJS
- STENCIL
- NX
- JEST
- PLAYWRIGHT
- A11Y
- PCI-DSS
SYS_HEALTH_MONITOR
./EXEC INTERACTIVE_SHELL
commands: help · whoami · whoami --recursive · ls · cat skills.md · cat ~/.now · contact · face · hire · clear · ask <question>
LIVE_PERF.JSON
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
$ 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
- 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.
CAT ~/HOTTEST_TAKES.MD
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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
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
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.