Skip to content
Skip to content

Eduardo Inerarte

Staff Frontend Engineer
& Technical Leader

Cuban in Copenhagen. Eight years writing code in Cuba, eleven in Denmark, and the same job in both places: make it load fast and keep it from breaking. Everything below is live. Touch it.

Hiring & Engagement Status
TIMELINEQ3 2026 Ready
LOCATIONCopenhagen, DK
ENGAGEMENTRemote / Hybrid
Scroll
/ CURATED TECHNOLOGIES

124

Vetted systems I have actually shipped with, catalogued in the registry.

/ LIGHTHOUSE PERFORMANCE

98%

Average Core Web Vitals score across the systems still running.

/ END USERS SERVED

40k+

People using the consumer networks and SaaS products behind these numbers.

/ ENGINE UPTIME

99.95%

Serverless architecture, no SLA breaches so far.

/ ENTERPRISE MIGRATIONS

16+

Legacy codebases pulled apart into something a team can move in.

REEL 02Signature projects

Things I builtEnd to end.

7 products of my own. For each: the problem it started from, the architecture I chose, and the path I turned down to get there.

22 in total. The 7 at the top are my own — open a row to read the case study.

01

HunterReady

Full Stack
Every design read back, every build
HunterReady interface
/ Metric Outcomes

Every design read back, every build

Fabrication is blocked in code rather than asked for in a prompt: numbers, names and acronyms must be grounded in the source document, and refused claims come back marked as refused.

Context

CV tools are either pretty and unparseable or parseable and ugly. Both sell the same promise — "ATS-friendly" — and neither can show you what an automated screen actually read back.

Complexity

A PDF that looks correct proves nothing: the text layer can arrive out of reading order, or be an image with no text at all. And the render path is WASM, which a green build silently drops — the bundler cannot see a file read at runtime, so dev and CI both pass while production has no renderer.

Decisions

Every design renders in a test that reads the PDF back with an independent parser and asserts each critical field survived in reading order, so the build fails rather than the applicant. A second test fails if any template has no round-trip test, and health checks assert the WASM binary and fonts are present instead of merely that the server is up.

Results

In beta at €12/month with checkout still closed. 28 structures across 17 themes, 60 bundled font families, five input formats including scans, and a public API of eight endpoints with its own OpenAPI reference.

ARCHITECTURAL TRADEOFF LEDGER
✓ PATH CHOSEN

An independent parser as the judge, and a per-structure honesty rating: one of the 28 is labelled design-first rather than verified, because it is.

✗ PATH REJECTED

Right-to-left PDF support. The glyphs and layout come out right and the text layer comes back reversed — a document that looks perfect and silently fails the one thing this product sells. The endpoint answers 422 and names the formats that do work.

02

enForma

Full Stack
A server that cannot read a workout
enForma interface
/ Metric Outcomes

A server that cannot read a workout

17 collections behind an opt-in sync server, and 2,076 movements bundled for offline use — held in separate files by licence, so share-alike attribution never leaks into a generated programme.

Context

A training log is health data, and the box where you describe your situation is where somebody writes about an injury. Every tracker asks for an account first and holds that in plain text on its own server.

Complexity

Encrypting on the device is the easy half. One encrypted blob per account is fine on one device and destroys data on two: train on the phone, open the laptop holding a stale copy, and the session is gone. Syncing without ever letting the server read a workout means the merge has to work on data it cannot see.

Decisions

Rows, not blobs: one workout is one record with its own id and timestamp, and the server moves envelopes whose metadata is plaintext for merging while the body stays the same AES-GCM ciphertext that sits on the device. A random data key wrapped by the passphrase-derived key means a password change re-wraps one blob instead of re-encrypting every row. Sync is opt-in, and the active workout never leaves the device.

Results

In production as an installable offline PWA, with web push and a paid panel gyms use to publish announcements, events, menus and programmes to their members. Pricing is published at €200 to €1,000 a month and invoiced by hand.

ARCHITECTURAL TRADEOFF LEDGER
✓ PATH CHOSEN

Deterministic arithmetic owns the timeline and the model only picks movements, so the plan can refuse a date instead of flattering one. Ask for one month to lose 60 kg and it still says twenty.

✗ PATH REJECTED

A payment processor. A subscription state machine with no payments behind it is a mechanism pretending to be a fact, so the gym plan is a field a human sets and the invoice is a human writing one.

03

Plans Explorer

Frontend
927 plans, zero servers
Plans Explorer interface
/ Metric Outcomes

927 plans, zero servers

An 813 KB index searched in the browser with Fuse.js, and each plan’s SPEC, PRODUCT, PLAN, DESIGN and TASKS loaded only on open.

Context

A corpus of 927 product plans, five documents each, sitting in folders. Deciding what to build next meant opening directories one at a time, and a corpus you cannot search is a corpus you rewrite by accident.

Complexity

The facets a reader wants are buried in prose written by successive generations of tooling: the country is a loose line, what someone will pay is free text, the stack is a bold label halfway down a plan. Faceted search over that means parsing prose reliably — and the whole thing had to keep running on a static file server.

Decisions

The index is built once at build time into JSON, and search runs in the browser over it. Each plan’s five documents are their own file, fetched only when a plan is opened, so the first paint carries the index rather than the corpus.

Results

Live and free with no account. 927 plans faceted by 58 categories, 318 tags, 1,821 technologies and 45 countries, ranked on three axes, with every plan shareable as its own URL.

ARCHITECTURAL TRADEOFF LEDGER
✓ PATH CHOSEN

Build-time indexing and client-side search, so hosting is a static file server and there is nothing to keep running.

✗ PATH REJECTED

A search backend. It would have handled a corpus ten times the size, and added a service to operate for a reader count that will never need one.

04

BuilderHunt

Full Stack
13 sources, one ranked list
BuilderHunt interface
/ Metric Outcomes

13 sources, one ranked list

GitHub, Reddit, Hacker News, DEV.to, Lobsters, Stack Overflow, npm, Hugging Face, GitLab, Codeberg, Hashnode and SourceHut, deduplicated and scored by recency.

Context

Hiring and open-source sourcing both run on GitHub stars, which reward what was popular years ago rather than who is shipping this month.

Complexity

Thirteen platforms expose activity in thirteen shapes, the same person appears under different handles on each, and every signal ages at a different rate. Ranking them together means reconciling identity and freshness before a single result can be trusted.

Decisions

I modelled recency as a half-life decay instead of a raw count, so a commit from last week outranks a three-year-old star pile, and put deduplication ahead of scoring so one person is one result. Contact stays manual: the product surfaces people, it never messages them.

Results

In public beta with a free tier of 3 saved searches and 50 saved builders. Keyword alerts by email or RSS, private notes per profile, and CSV/JSON export, so a shortlist leaves the product in whatever tool the team already uses.

ARCHITECTURAL TRADEOFF LEDGER
✓ PATH CHOSEN

Decay-weighted scoring over lifetime totals, and deduplication before ranking, so freshness and identity are settled before anything is shown.

✗ PATH REJECTED

Automated outreach. It would have been the obvious growth lever and would have turned a discovery tool into another cold-email machine.

05

GeoLocal CPH

Full Stack
25,000 listings on one map
GeoLocal CPH interface
/ Metric Outcomes

25,000 listings on one map

Properties, vehicles, services and experiences across eight neighbourhoods, clustered so a district is legible before you filter anything.

Context

Finding anything in Copenhagen means four different sites: Boliga for flats, DBA for cars, Facebook groups for services, Airbnb for the rest. Each one is a feed, and a feed cannot tell you what is ten minutes from your door.

Complexity

Properties, vehicles, services and experiences have almost nothing in common as data: different prices, different units, different lifespans. Putting all four on a single map means one schema flexible enough to hold them and one interface that does not turn into a filter panel.

Decisions

I made the map the primary surface rather than a feature of the list, and clustered by neighbourhood so a district reads at a glance before anything is filtered. Curation is deliberate and human, not a scraper firehose.

Results

25,000 listings across four verticals pinned over eight Copenhagen neighbourhoods, each with its own count. Free to browse, no ads, no dark patterns.

ARCHITECTURAL TRADEOFF LEDGER
✓ PATH CHOSEN

Map first, list second, clustered per neighbourhood, so proximity is the primary filter and the rest is optional.

✗ PATH REJECTED

An infinite ranked feed. Higher engagement, but it answers "what is popular" when the question is "what is near me".

06

AI-OS

Full Stack
~300 skills across 6 AI CLIs
AI-OS interface
/ Metric Outcomes

~300 skills across 6 AI CLIs

One repository, symlinked into every CLI, with 10 MCP servers as declarative YAML and an installer that is safe to run twice.

Context

Every AI CLI keeps its own config, its own skills folder and its own MCP list. Six of them means six copies of the same setup, drifting apart from the day you install the second one.

Complexity

A dev environment is not just dotfiles: it is CLIs, runtimes, language servers, model endpoints and the prompts themselves, spread across macOS, Linux and Windows. Making it reproducible means it has to be safe to run twice on a machine that is already half configured.

Decisions

I made one git repository the source of truth and symlinked out of it, so a skill is written once and every CLI sees it. MCP servers are declarative YAML rather than six hand-edited JSON files, and the installer is idempotent with a dry-run mode and CI validation on all three platforms. Karpathy's Spec → Verifier → Environment loop is encoded as three verifier gates per task.

Results

A new machine reaches a full working setup with one command: npx @edd_remonts/create-ai-os. Roughly 300 skills, 10 MCP servers, 45 CLI tools, 43 global node packages and 28 python packages, restored the same way every time.

ARCHITECTURAL TRADEOFF LEDGER
✓ PATH CHOSEN

Symlinks from one repository over per-tool copies, so there is exactly one place a skill can be wrong.

✗ PATH REJECTED

A sync daemon watching each tool. Less setup up front, but it turns config drift into a background process nobody can debug.

07

ai-schadcn-chat

Frontend
8 providers behind one config
ai-schadcn-chat interface
/ Metric Outcomes

8 providers behind one config

Anthropic, OpenAI, OpenRouter, MiniMax, Together, Groq, vLLM and Ollama, all the same integration for the component.

Context

shadcn/ui gives you every primitive a chat interface needs and no chat interface. Everyone rebuilds the same streaming panel, and everyone rebuilds it welded to one provider.

Complexity

Streaming, markdown, code blocks, file upload and virtualised history are each easy alone and awkward together, especially while tokens are still arriving. Doing it once for Anthropic and again for every OpenAI-compatible gateway would have meant maintaining the same panel eight times.

Decisions

I put the provider behind an adapter so the panel only knows about a stream of tokens, which makes Anthropic, OpenAI and every OpenAI-compatible gateway the same integration. Configuration is deep rather than a prop soup, and the component ships as a package you install instead of a template you fork.

Results

MIT, on npm as @edd_remonts/ai-schadcn-chat. Works with Anthropic, OpenAI, OpenRouter, MiniMax, Together, Groq, vLLM and Ollama through one config object, and drops into an existing shadcn/ui app without a theme fight.

ARCHITECTURAL TRADEOFF LEDGER
✓ PATH CHOSEN

One adapter boundary between the panel and the provider, so adding a gateway is configuration rather than a fork.

✗ PATH REJECTED

A copy-paste template in the shadcn tradition. Easier to publish, impossible to fix once it is in fifty codebases.

08

Zunzun.io

Full Stack
Systems Integration
09

HBO - Be Notified

Frontend
Systems Integration
010

Resights

Full Stack
Systems Integration
011

Voirlematch.fr

Frontend
Systems Integration
012

Schilling Publishing

Full Stack
Platform Decoupling
013

HBO - Sign up

Frontend
Systems Integration
014

Sportal.se

Full Stack
Systems Integration
015

Live-fodbold.dk

Full Stack
Systems Integration
016

Radio Guama

Frontend
Systems Integration
017

Livefodboldstreams.dk

Frontend
Systems Integration
018

Counties App

Frontend
Systems Integration
019

Watch Online Horse Racing

Full Stack
Systems Integration
020

Sefodbold.dk

Frontend
Systems Integration
021

Windows Terminal Config Generator

Full Stack
Systems Integration
022

Sesport

Frontend
Systems Integration
/ WHAT MAKES ME DIFFERENT

Why you should
hire me?

Plenty of people write UI code. Mine is a different thing: I learned to make software work when there was nothing to work with, and I have spent eleven years applying that where there is.

/01

18 years, two countries

Started full stack in Havana, ended up doing frontend architecture in Copenhagen.

  • February 2007, the National Library project at UCI. From there, whatever the work needed: hand-written JavaScript, PHP, Drupal, MySQL.
  • I still write code. I do not lead from a spreadsheet.
  • I care how it looks and how it holds up. Those are the same job.
/02

I learned to optimise on 56kbps

In Cuba the weight of a page was not a metric. It was whether it loaded.

  • Eight years writing code in Cuba: Havana first, then Pinar del Río. The National Library, ONEI, GEOCUBA.
  • On that bandwidth you learn to count bytes before you learn to lay things out. It does not wear off.
  • So performance never looked like a final polish to me. It was the condition for the thing existing at all.
/03

May 2015, Copenhagen

Eleven years in Denmark, seven places.

Plan DenmarkRebel PenguinsGIG MediaWundermanNovo NordiskResightsSchilling
  • The joke is that I went from fighting 56kbps to arguing about milliseconds. It turned out to be the same job.
  • I cut one platform's initial bundle by 94% and sped delivery up 30% across several teams at once.
  • Strict module boundaries so twenty engineers can touch the same system without breaking it.
/04

Product-Minded Systems Architect

Translating product vision and design system maturity into structured code.

  • I align technical decisions, product metrics, and design-system aesthetics.
  • I model type-safe domain layers, coordinate client-side caching strategies, and manage database schema alignments.
  • Interfaces that look right, answer immediately, and someone else can maintain.
/05

Active Technical Leadership & Governance

Orchestrating teams and mentorship cultures that scale.

  • I governed technical standards adopted by 20+ engineers across 4 autonomous product teams.
  • I replaced siloed engineering practices with active mentoring, clear system contracts, and collaborative workshops.
  • Distributed squads ended up shipping daily without waiting on me.
/ LEADERSHIP & PHILOSOPHY

Engineering
Leadership

Writing the code is the easy half. The rest is deciding where the boundaries go, getting twenty people to agree on them, and being able to show what it bought the business.

/ MATURITY

Lessons From 18 Years

  1. /01

    Architecture is People

    Conway's Law is not something you read about. If two teams have to coordinate on every release, that shows up in the code as coupling, and no amount of refactoring fixes it until the teams change.

  2. /02

    Governance Enables Velocity

    Strict boundaries and semantic versioning look like bureaucracy from the outside. They are what lets a team ship on a Friday without asking anyone.

  3. /03

    Performance is a Business Metric

    Core Web Vitals, page-load latency, and interaction responsiveness directly determine user-retention and business-conversion rates. Treating performance as post-launch polish is a costly operational tax.

  4. /04

    Complexity Compounds

    The most expensive line of code is the one written without a contract around it. A fully typed codebase where everything reaches into everything is still spaghetti. It just compiles.

  5. /05

    The Best Systems are Boring

    Predictable and decoupled beats clever and fragile. How boring a team's software is turns out to be a decent proxy for how mature the organisation is.

/ EXECUTION

How I Work

Pragmatic Decision-Making

I pick the boring option and write down why. Strict module boundaries and explicit schemas mean fewer decisions to relitigate later, and fewer things that break when the tooling shifts underneath you.

Active Mentorship & Trust

Developers working in silos write code nobody else dares change. I run interface contracts through workshops instead of documents, so the twenty-odd engineers touching the system agree on it before it ships, not during review.

Product-Minded Alignment

I sit with the people who own the number, not just the ticket. Turning an architecture decision into what it costs and what it buys is usually the difference between the work getting approved and not.

Debt-Minimization Strategy

Coupling is far cheaper to prevent than to unpick. Isolated sub-apps and exact API schemas cut query overhead by 60% and turned upgrades into something we did on a Tuesday instead of scheduling for a quarter.

Empowered Autonomy

Autonomy without guardrails is just risk with a nicer name. Automated quality gates and monorepo boundaries let distributed squads deploy daily without asking permission, because the checks say no before a person has to.

/ PARTNERSHIP

Looking for a Staff Engineer who coordinates systems, governs boundaries, and mentors squads? Let’s talk.

Start a conversation

/ TECHNICAL EXPERTISE

Architectural
Capabilities

Technologies are commodities; architectural alignment and organizational governance are competitive differentiators. Here is how my capabilities are marshaled to deliver verified business speed and performance stability.

/ WORKSPACE SYSTEMS
Capability 01

Architecture & Governance

/ VALUE PROOFEnables distributed product teams to release features independently without breaking shared core architectures.

Monorepo BoundariesDesign-System ContractsDecoupled Modules
/ LATENCY & CONVERSION
Capability 02

Performance Engineering

/ VALUE PROOFSecures perfect Core Web Vitals and sub-12ms interaction responsiveness for enterprise-scale platforms.

Interaction LatencyOptimistic State SyncCore Web Vitals
/ ORG SYNCHRONIZATION
Capability 03

Technical Leadership

/ VALUE PROOFAccelerates feature-delivery cycles by 30% across 20+ active engineers via active mentorship.

Developer ExperienceActive MentorshipAutomated Quality Gates
/ FULL-STACK STRATEGY
Capability 04

Product Systems Alignment

/ VALUE PROOFBridges execution gaps between engineering teams, product managers, and executive stakeholders.

Domain ModelingStakeholder CoordinationState & Cache Contracts

Professional
Experience & History

18+ years of building, scaling, and architecting resilient digital products from Havana to Copenhagen.

2022 — PRESENT

Staff Frontend Engineer & Technical Leader

Schilling ApSResights
Milestone Stack

Design Systems Governance · Monorepos · Decoupled Contracts · API Design

/ Tech Stack & Scope

Vite Monorepos · TypeScript · React · Next.js · Design-System Governance · Micro-Frontends

/ Core Leadership & Contributions
  • Led the modular decoupling of a 6.2MB legacy console platform into sub-app partitions.
  • Owned design-system governance, establishing shared module boundaries, standardizing contracts, and templates.
  • Mentored cross-functional engineering squads, standardizing coding practices and setting rigorous CI/CD quality gates.
/ Verified Business Outcomes
  • Slashed initial bundle size by 94%, resulting in a LCP reduction to a perfect 1.4s.
  • Accelerated feature delivery by 30%, onboarding 20+ active engineers with zero regression incidents.
2015 — 2022

Lead Frontend Developer

Novo NordiskWundermanGiG MediaRebel Penguins
Milestone Stack

Virtualized DOM · Event-Driven State · Optimistic Caching · Performance SLAs

/ Tech Stack & Scope

TanStack Query · Virtualized DOM · Event-Driven Architecture · React · Optimistic Cache Synchronization

/ Core Leadership & Contributions
  • Engineered high-frequency DOM memoization queues to handle logistics operational tracking dashboards.
  • Integrated clientside query virtualization to prevent DOM thrashing over unstable mobile networks.
  • Coordinated 12+ developers across agile sprints, leading audits and setting performance SLAs.
/ Verified Business Outcomes
  • Slashed query overhead by 60%, dropping server-socket query costs significantly.
  • Maintained steady 60FPS UI performance on commercial viewports serving over 2,000,000 active European users.
2007 — 2015

Full-Stack Software Engineer & R&D Lead

UCI National LibraryONEIGEOCUBAViruta Studio
Milestone Stack

Extreme Byte Optimization · Lightweight Parsers · Dial-up DB Sync · Primitives

/ Tech Stack & Scope

Vanilla JavaScript Primitives · Extreme Byte Compression · Lightweight Parsers · Relational DBs

/ Core Leadership & Contributions
  • Engineered lightweight, custom JavaScript engines under Havana's severe 56kbps dial-up limits.
  • Cultivated rigid codebase-hygiene habits, counting every byte to secure asset delivery on legacy networks.
  • Built custom vanilla JS data and state registers from first principles without modern dependencies.
/ Verified Business Outcomes
  • Achieved extreme asset compression, enabling instant application loading on Cuba's legacy networks.
  • Successfully delivered GIS applications and core data portals with zero external framework dependencies.

What clients say

Direct Architectural SponsorCollaborated 4 years (2014 – 2018)
Eduardo will be an asset for any company that employs him – in particular tech companies with a multitude of cultures – and he has my highest recommendations.
Context: Microfrontend core & team refinement at GiG

Jonas Warrer

Managing DirectorMedia Gaming Innovation Group

REEL 03Ways in

What you'd hand meAnd what comes back.

Four shapes this work usually takes. Each one is something I have already shipped, with the number it came with.

A platform that got heavy

One deploy, four teams, and every release turns into a negotiation. I put the boundaries where the teams already are, split the frontend into sub-apps that own their own data, and leave the contracts written down. The test is whether a framework upgrade stops being a project.

Performance, with the number attached

Not a Lighthouse screenshot. I measure what the page actually costs: bundle, interaction latency, server render. Then I cut the expensive part and report the difference. The one I keep citing: 94% off the initial bundle, LCP down to 1.4s, interactions under twelve milliseconds. Measured before and after, not estimated.

A design system people reach for

A component library nobody adopts is a second codebase to maintain. I build it against the screens that already exist, migrate the first ones myself, and count adoption instead of components. The last one went out to twenty engineers and took thirty percent off delivery time.

Data-heavy product UI, end to end

Twenty-five thousand listings that filter without a spinner. Thirteen platforms reconciled into one ranked feed. I build the schema, the server functions and the interface as one piece, because in a product like that the seams are where it gets slow.

/ GET IN TOUCH

Let's Build
Something Together

Ready to discuss a project, hire a staff engineer, or book technical consulting? Send a message and let's start a conversation.

Hiring & Engagement Parameters
STATUS: AVAILABLE
AVAILABILITY STATUSActive & ReadyImmediate Q3 2026 Engagement
GEOGRAPHY & MODECopenhagen, DKEU Remote-Friendly (GMT+2/1)
PREFERRED TARGET ROLESStaff Engineer · Technical Leader · Frontend Architect · Systems ConsultantSpecialized in enterprise-SaaS scaling and platform decoupling
LocationCopenhagen, DenmarkLocation
Send a Message

* PRIVACY NOTICE: Your details are processed strictly to respond to your direct inquiry, and are never shared or used for marketing.

Eduardo Inerarte.

Platforms & Systems Engineer

Building resilient product systems since 2007. From Cuba to Copenhagen. Still obsessed with fast, clear interfaces.

© 2026 Eduardo Inerarte. All rights reserved.

Engineered with React 19, hand-rolled WebGL & editorial minimalism.