ignacio@portfolio:~$
Back to Work

Founder & Lead Engineer

EKORU

May 2025 - Present
Santiago, Chile
Beta Launch: In active development
Visit Landing PagePlatform in active development

Overview

As Founder and Lead Engineer at EKORU, I'm building a sustainable marketplace platform from scratch that connects eco-conscious consumers with environmentally responsible vendors. The platform focuses on promoting sustainable products while providing a seamless shopping experience.

Currently architecting the entire technical infrastructure as sole technical developer (alongside business co-founder) using modern microservices architecture with GraphQL Federation, ensuring scalability and maintainability as the platform grows. The system is designed to support multiple languages and markets from day one.

Current Stage: Actively building toward a beta: the federation gateway, subgraphs, and Rust image pipeline are in place, with the web marketplace, admin panel, and React Native mobile app all in progress. Full e-commerce functionality (payments, orders) is planned for the production launch targeted in October 2026. Visit our landing page to learn more about the vision.

Features Completed & In Development

Federated GraphQL Gateway

NestJS Apollo Federation v2 gateway that composes multiple independent subgraphs into a single typed graph consumed by every client

Microservices / Subgraphs

Independent NestJS services (users, marketplace, stores, transactions, search, community...), each owning its own domain models and resolvers

Single Source of Truth Schema

A master Prisma schema generates each subgraph's schema and runs all migrations from one place, so the federated data model never drifts

Rust Image Processing Service

Internal Rust (Axum) service that resizes uploads, re-encodes them to WebP, and stores them in a Cloudflare R2 bucket served over a CDN — private, with shared-token service-to-service auth

Web Marketplace & Admin Panel (in progress)

A Next.js customer storefront and a separate web admin panel for catalog, vendor, and operations management

React Native Mobile App (in progress)

Expo + Apollo Client app (Expo Router, NativeWind) that shares design tokens with the web client and talks to the same federation gateway

Authentication & Authorization

JWT auth with short-lived access tokens, refresh tokens, HTTP-only cookies, bcrypt hashing, and environment-aware cookie security

Environmental Impact Tracking

Hierarchical scoring system computing environmental metrics (carbon footprint, water usage, recyclability) across 15+ product categories using PostgreSQL recursive CTEs

Roadmap & In Progress

React Native Mobile App, Web App and Admin Dashboard

In progress

A Next.js web marketplace, a web admin dashboard, and a React Native (Expo) mobile app — all built against the same federation gateway and sharing design tokens through a common UI package

Payments & Orders

Planned

Transbank / Mercado Pago integration plus end-to-end order and transaction flows with status tracking

Observability & Monitoring

Idea

Exploring a Grafana / Prometheus stack (Alloy, node and Postgres exporters) for metrics and logs — not yet enabled

Kubernetes Orchestration

Planned

Migrate from Docker Compose to Kubernetes for production-grade scaling and orchestration

Technical Achievements

  • Architected a federated GraphQL platform — a NestJS Apollo Federation v2 gateway composing multiple independent subgraphs
  • Built a single-source-of-truth schema system: a master Prisma schema that generates per-subgraph schemas and runs all migrations from one place
  • Wrote a dedicated Rust (Axum) image microservice that resizes, re-encodes to WebP, and stores assets in Cloudflare R2 behind a CDN
  • Building three clients against the same graph (all in progress) — a Next.js web marketplace, a web admin panel, and a React Native (Expo) mobile app
  • Designed a hierarchical environmental impact scoring system using PostgreSQL recursive CTEs across 15+ product categories
  • Built JWT authentication with refresh tokens, HTTP-only cookies, and environment-aware security
  • Set up a Jenkins multibranch CI/CD pipeline: build → test → staging deploy → manual E2E approval → production, with a full deploy cycle under 4 minutes
  • Run GitHub Actions for CI checks (lint, type-check, tests) on pull requests, separate from the Jenkins deploy pipeline
  • Containerized every service with Docker across isolated dev, staging, and production environments
  • Built multi-language infrastructure (Spanish, English, French) designed to expand without database schema changes

Tech Stack

NestJSApollo Federation v2GraphQLPrismaPostgreSQLNext.jsReactReact Native (Expo)TypeScriptRust (Axum)Cloudflare R2DockerJenkinsGitHub ActionsZustandJWT Auth

System Architecture

Federated Microservices

A NestJS Apollo Federation v2 gateway composes a set of independent subgraphs — users, marketplace, stores, transactions, search, and community — each owning its own domain and resolvers. Services are developed, tested, and deployed independently; adding a new subgraph only touches the gateway composition.

Schema & Database Strategy

A single master Prisma schema is the source of truth: a generator produces each subgraph's schema (stripping cross-service relations while keeping scalar foreign keys), and all migrations run from one place against PostgreSQL. Cross-service references resolve at the federation layer. Hierarchical categories and environmental scoring use recursive CTEs.

Image Pipeline — Rust + Cloudflare R2

A dedicated Rust (Axum) microservice receives uploads from the gateway, resizes them per entity type, re-encodes to WebP, and stores them in a per-environment Cloudflare R2 bucket served over a CDN. It runs only on the internal Docker network, authenticated with a shared token using a constant-time comparison.

CI/CD & Environments

Each service runs a Jenkins multibranch pipeline: install → build → test → deploy to staging → a manual E2E approval gate → deploy to production, tagging each environment release in git. GitHub Actions runs CI checks on pull requests. Everything is containerized with Docker Compose across isolated dev, staging, and production environments, with a full deploy cycle under four minutes.

Clients & Frontend

A Next.js web marketplace (SSR), a web admin panel, and a React Native (Expo) mobile app — all currently in progress, consuming the same federation gateway and sharing design tokens through a common UI package. Internationalization supports Spanish, English, and French.

Environmental Impact Tracking System

Measurable Environmental Impact

Designed and implemented a comprehensive environmental impact scoring system that quantifies the sustainability of products across multiple categories. The system uses a hierarchical database structure with PostgreSQL recursive CTEs to track and calculate environmental metrics at product, subcategory, and category levels.

Technical Implementation

Database Schema:

Category

↳ environmental_impact_factors (JSON)

↳ sustainability_metrics (JSON)

SubCategory

↳ inherits parent category factors (via recursive CTE)

↳ category-specific overrides available

Product

↳ computed_impact_score (0-100, calculated on-demand)

↳ impact_breakdown (detailed metrics)

💡 What is Recursive CTE?

A Common Table Expression (CTE) that references itself to traverse hierarchical data. In EKORU, when a product is in "Android Smartphones", a recursive CTE walks up the tree (Android → Smartphones → Electronics → Root) to inherit environmental factors from parent categories, with optional overrides at each level.

Impact Calculation:

  • Carbon Footprint: Calculated based on product materials, production process, and transportation distance
  • Water Usage: Estimated water consumption during manufacturing and product lifecycle

User-Facing Impact Dashboard (Planned)

Planning interactive dashboard allowing users to:

  • Compare Products: Side-by-side environmental impact comparison within the same category
  • Track Personal Impact: Cumulative environmental savings based on sustainable purchases vs. conventional alternatives
  • Filter by Sustainability: Search and filter products based on specific environmental criteria
  • Educational Tooltips: Contextual explanations of each environmental metric

Technical Challenges Solved

Hierarchical Data Inheritance with Recursive CTEs

Implemented efficient PostgreSQL queries with recursive Common Table Expressions to inherit environmental factors from parent categories while allowing subcategory-specific overrides. Optimized query performance with proper indexing on category hierarchy and materialized paths.

Multi-language Data Architecture

Architected internationalization (i18n) system for environmental impact descriptions, category names, and tooltips. Currently supporting Spanish, English, and French (using AI translation tools for French) with infrastructure designed for easy expansion to additional languages without database schema changes.

Scalable Microservices with GraphQL Federation

Architected federated GraphQL schema allowing independent microservices to expose their own types and resolvers. Each service owns its domain (catalog, auth, future: orders, payments) and can be developed, tested, and deployed independently without affecting others. When adding a new service, only the gateway configuration requires updating - existing services remain untouched. This separation enables parallel development and reduces deployment risk.

Target Metrics (Beta Launch)

300+

Products with impact scores for beta

15+

Product categories with custom environmental metrics

3

Languages supported (ES, EN, FR)

Project Status & Timeline

Beta Launch - In Active Development

Minimum Viable Product with core functionality: product catalog, vendor onboarding, environmental impact scoring, and basic search/filtering. Focus on validating market fit and gathering user feedback.

Beta Features: Catalog browsing, vendor listings, sustainability scores, multi-language support, user accounts (no payments yet)

📍 Visit www.ekoru.cl to learn more about our mission and vision

Full Production Launch - October 2026 (Target)

Complete e-commerce platform with payment processing, order management, vendor dashboards, and enhanced security features. Migration to Kubernetes for production-grade orchestration.

Additional Features: Transbank/Mercado Pago integration, order tracking, vendor analytics, customer reviews, advanced admin tools