Software Engineer · Medellín, Colombia

Yonatan Valencia

Senior Ruby on Rails Engineer · Agentic AI & Cloud Infra

yo.valenciat@gmail.com +57 302 854 3356 linkedin.com/in/yvalenta github.com/yvalenta
Ruby on Rails Agentic AI & LangChain Docker & Cloudflare Anthropic Claude Amazon Bedrock Node.js & TypeScript React & Vite PostgreSQL Kamal 2 Ed25519 & x402

Summary

Senior Ruby on Rails engineer with over 10 years of experience, specializing in the convergence of distributed systems, Artificial Intelligence, and secure cloud infrastructure. Proven expertise in architecting enterprise-grade agentic workflows (LangChain, Claude) and designing Zero Trust infrastructure topologies utilizing Docker, Cloudflare Tunnels, and real-time telemetry. Alongside client work I design, ship and operate my own production systems — most recently NomiCheck, a Colombian payroll engine whose every result is cryptographically signed and independently verifiable, sold agent-to-agent behind an on-chain payment wall.

Skills

Software Engineering

Ruby on Rails Node.js TypeScript React Microservices RSpec / Vitest

Cloud, Infra & Data

Docker Engine Cloudflare Tunnels Cloudflare Workers Kamal 2 PostgreSQL MongoDB Atlas

AI & Automation

Agentic Workflows LangChain Anthropic Claude Amazon Bedrock Google Gemini n8n Automation

Fundamentals

Vue.js GraphQL AWS / Heroku Grafana Sentry

Verifiable & Machine-Payable Systems

Ed25519 signatures Canonical JSON x402 payment wall USDC on Base & Avalanche (EIP-3009) ERC-8004 agent identity ERC-8128 request signing A2A agent cards MCP servers IPFS

Independent Work — ynt-labs, my own systems in production

Colombian payroll law as a dated, verifiable catalog — plus the engine that applies it

A deterministic payroll and withholding-tax engine built on a dated legal catalog: every statutory parameter — minimum wage, transport allowance, UVT, night and Sunday premiums, the ordinary-hour divisor, social security rates, garnishment and withholding caps — resolves on any date since 2020, each carrying the decree or resolution that set it and the window it was in force. Five calculators sit on top of it (payroll, withholding tax, payslip verification, final settlement, USDC payout). Stateless by design: request payloads are computed in memory and never written to a database, per Colombia's habeas data law. Built as a pnpm monorepo — Express + Prisma + TypeScript API, React 19 + Vite front end, a shared rules package — with CI typechecking and testing all three workspaces on every push.

  • Signed results. Every response cites its legal basis, carries the SHA-256 of the catalog that produced it and is signed with Ed25519, so a third party can verify it offline without trusting the issuer. The signing format is an open CC0 spec — the sobre — with a frozen canonicalization, published test vectors and a conformance suite that any new implementation can run against: Ruby, Node and the browser already produce byte-identical signatures, and the spec includes a section on what a signature does not assert.
  • Machine-payable API (x402). Priced endpoints answer HTTP 402 with an on-chain payment requirement and serve only once the transfer settles — USDC via EIP-3009 on Base and Avalanche, each network routed to its own facilitator, and the server refuses to boot if a network is routed to one that cannot settle it. Charge-before-serve is enforced at the wall, not in the handler.
  • Free triage, priced report. A free precheck endpoint runs the same engine and tells you upfront whether a payslip is clean, at no cost — you only pay for the full report, and pricing never depends on what it finds.
  • Agent commerce. ERC-8004 identity #59771 on Base mainnet, an A2A agent card and an ARD catalog for federated discovery — all served by a single Cloudflare Worker, with the AI-usage policy pinned to IPFS and attested by digest. Requests to Execution Market are signed with ERC-8128, and the service is listed and sold there agent-to-agent, with delivery returned inline and signed. An MCP server gives any agent five tools to discover, verify and buy — including a cross-check of the payment address in the live 402 against the published agent card, so an intercepted wall cannot silently redirect funds.
  • Documentation that is audited, not trusted. Each published constant has exactly one place where it is asserted; auditors sweep the whole tree, compare it against the chain and against what the servers actually return, and fail when prose drifts from reality.

Verify a signed result yourself — no signup, no install, nothing to pay. One URL carries everything: the page fetches the live sample from the API and checks its signature in your browser:
ynt.codes/verificar?url=https://nomicheck.ynt.codes/api/batch/verificar/ejemplo
…or open the raw signed sample straight from the API:
nomicheck.ynt.codes/api/batch/verificar/ejemplo

TypeScriptNode 22ExpressPrismaPostgreSQL 17React 19Vitepnpm monorepoRubyPythonviemEd25519USDC / Base · AvalancheMCPDocker

Home Lab & Zero Trust Infrastructure

homelab.ynt.codes ↗

Two hosts behind one front door, neither with an inbound port open

Since August 2026 every publicly reachable hostname is served from AWS Lightsail (us-east-2): the payroll API, the Rails platform across its four tenants, the static apps, and the only cloudflared actually running. Static IP, port 80 closed, container-level self-healing I measured by freezing the process on purpose — 47 s to recovery. Because both hosts reach the internet through outbound-only Cloudflare Tunnels, moving production between them did not change a single DNS record. The single-node home lab in Medellín — Intel i5-4570T, 7.2 GB RAM, Ubuntu 25.04 — now has its tunnel stopped and publishes nothing: it holds the agent fleet, the read-only panels, host monitoring, and a standby whose containers are up but unreachable, carrying the same commit, the same signing key and the same database. The Rails half of that standby stays deliberately off, and that is the most useful thing the migration taught me: with both copies running they exhausted the database pooler's connections and split traffic across two versions of the app, which is how one tenant's login started rendering another tenant's brand. Failover is manual and one-way now. The payroll database sits on an isolated Docker network neither the tunnel daemon nor any sibling container can reach. Agent sessions across machines coordinate through sigilo, a self-hosted IRC rendezvous authenticated by a pinned TLS fingerprint rather than a CA — regenerate the cert and the client refuses to speak until a human updates the pin — with channel content always treated as data, never as instructions. The ops panels are read-only and bound to loopback, reached over an SSH tunnel instead of a homemade login. The architecture is published as a live, clickable diagram at the address above.

AWS LightsailCloudflare Zero TrustCloudflare WorkersDockerKamal 2nginxPostgreSQL 17Uptime KumaUbuntu

The measuring house

nagual.ynt.codes ↗

Five collectors that settle a circulating claim with my own numbers

Each one exists because something was being repeated as fact and the honest way to settle it was to measure it. rezago tests a viral thread's "~2.7 second repricing window" by timing Polymarket's CLOB against Binance spot, and reports the edge net of taker fees at the book's real depth. brecha tests "send USDC to Arbitrum and you get more" by quoting executable swaps — not index prices — across seven chains at three sizes, and counting how many opportunities survive every cost. cazadores tests "follow the wallets with 80%+ win rates" by computing those rates myself over resolved trades, with the size of the rare losses kept in view, and produces a calibration curve as a by-product: does a share bought at 80¢ actually win 80% of the time? timon is a small control plane that knows each project's closing criterion, checks it against real data, and opens a gate when one is met — a decision only the human takes, served with its evidence. They share one rule that shaped the whole design: they measure, they never execute — no signing, no funds moved, no API key, and they listen on no port at all. Findings land in a vault where dated, sourced state outranks every other note, and every signal carries an expiry so nothing that already closed can be displayed as an opportunity.

Python 3.14asyncioaiohttpWebSocketsRuby stdlibJSONLsystemd

sobre — an open format for provable output

github.com/yvalenta/sobre ↗

Released into the public domain, with a conformance suite that lets anyone check their own implementation

A minimal format for making an agent's output checkable by a third party without trusting whoever issued it and without reaching its server. Signing alone was not enough: a signed document proves who said it, not that it is right — without knowing which rules produced it and from when, a valid signature is just an opinion with a seal. The spec has a frozen canonicalization, published test vectors, an implementer's guide and an explicit section on what a signature does not assert. Ruby, Node and the browser produce byte-identical signatures; the real validation came when another team wrote a fourth implementation in Python from the spec alone and reached identical bytes without ever seeing my code. Their one point of friction — Windows stdin decoding as cp1252 — was paid the same day as a documented toll.

Ed25519Canonical JSONRubyNodePythonCC0 / public domain

Multi-tenant gym-management SaaS — one codebase, one subdomain per gym

Rails 8.1 monolith on Ruby 4.0: memberships and access control, biometric progress tracking, a nutrition calculator, and training plans generated by a multi-provider AI adapter (Gemini by default, Claude as an alternative) running as background jobs. Server-rendered with Hotwire and Tailwind — no JavaScript build. Solid Queue, Solid Cache and Solid Cable all run on Postgres, so there is no Redis to operate. Native Rails 8 authentication plus Google OAuth, authorization by role with Pundit, tenant scoping in the request cycle, and zero-downtime deploys with Kamal 2.

Rails 8.1Ruby 4.0HotwireTailwind + DaisyUISolid QueuePostgreSQLPunditGoogle OAuthGemini / ClaudeKamal 2

Resplandor POS & Simulador de Abonos a Capital

resplandor.ynt.codes ↗

Two smaller products, both shipped and in use

  • Resplandor POS — touch point-of-sale for a Medellín restaurant: table management, invoicing and daily close, with multi-device realtime sync and Google sign-in. Alpine.js and Tailwind over Supabase (Postgres, Realtime, Auth). The design document is written against what actually ships, not the original plan: backend and authentication were explicitly out of scope in v1.0 and had to be added once several devices were in play at once.
  • Simulador de Abonos a Capital — loan_calculator.ynt.codes — a mortgage prepayment simulator that projects one-off and recurring extra principal payments against the base schedule, under either reduce-the-term or reduce-the-payment, with a full amortization table. React 19, Vite, Recharts, containerized behind nginx.
SupabaseAlpine.jsTailwindRealtimeReact 19ViteRechartsnginx

Experience

Sr. Ruby Developer

Globant Aug 2025 – Present

Dojo — internal enablement pod / AI Pod

Node.js/TypeScript service migration from Elasticsearch to MongoDB Atlas (standard, Lucene search and vector indexes), working in pairs inside Globant's internal enablement pod. Large-scale job processing with AWS Batch. Automation workflows with n8n integrating LLMs, Google Sheets, Neon (PostgreSQL) and Upstash (Redis).

MongoDB Atlasn8nAWS BatchLangChainClaudeReactTypeScript

Sr. Ruby Developer

Globant Aug 2024 – Aug 2025

Panorama Education — Surveys SEL

Agentic AI workflows within the Solara chat ecosystem using LangChain and Anthropic Claude via Amazon Bedrock — multi-step reasoning and autonomous tool execution over educational data. Refactored frontend components; built data export features and class roster selection workflows.

Amazon BedrockLangChainClaudeRuby on RailsVue.jsRSpecPostgreSQLSidekiq

Sr. Ruby Developer

Globant Sep 2023 – Mar 2024

Atria Wealth Solutions — Groove Point & SCF Integration

Enterprise SSO integrations with FinTech vendors (Investigo, Docupace, BRACS, Okta, Orion, Advice Pay) via SOAP. Developed Rake tasks for bulk contact uploads and provided ongoing support for legacy Rails applications.

Ruby on RailsRSpecPostgreSQLSidekiqSOAPTravis CI

Sr. Ruby Developer

Globant Apr 2023 – Aug 2023

GoNoodle Platform

Developed the "Hero Units" module — an interactive educational CMS with Active Admin — allowing teachers to create slide-based content for high-volume student traffic.

Ruby on RailsRSpecSemaphore CIGCP

Sr. Ruby Developer

Globant Jul 2021 – Apr 2023

Atria Wealth Solutions — Commissions & Money Movement

New functionalities across commissions and money movement workstreams. Twilio API integration for automated commission notifications. Legacy code support and RTB ticket resolution.

Ruby on RailsTwilioSidekiqTravis CIPostgreSQL

Sr. Software Engineer

Skydropx May 2022 – Feb 2023 · Remote

Monolith-to-microservices migration with large-scale distributed PostgreSQL schema design for transactional delivery loads. CI/CD via CircleCI; deploys to Heroku and AWS. Rigorous TDD with RSpec throughout.

Ruby on RailsMicroservicesPostgreSQLCircle CIAWSHeroku

Software Developer / Engineer II

Runa Jun 2019 – Jun 2021 · Remote

Grew RSpec test coverage from 8% to 40% on a data-intensive HR application. SLI/SLO definition and monitoring with New Relic, Datadog, and Grafana. AWS task automation reducing resolution times and ensuring continuous high availability.

Ruby on RailsRSpecAWSNew RelicDatadogGrafanaPagerDuty

Developer

Sapiencia · Agencia de Educación Superior Sep 2018 – Jun 2019

Maintained two internal Rails apps (Minotauro and SIIS), adding features and telemetry tools. Oracle Cloud infrastructure, Oracle DB (PL/SQL), deployment pipelines, and automated backup protocols.

Ruby on RailsOracle CloudPL/SQLLinuxNginx

Senior Ruby Developer

Visionamos Apr 2014 – Nov 2017

Banking network application for Red Coopcentral in Ruby on Rails. Deployment automation via Capistrano. Managed CentOS Linux servers (Apache, Nginx) across testing and certification environments.

Ruby on RailsCapistranoNginxApacheCentOSMS SQL Server

Education

B.Sc. Systems Engineering

Universidad Católica del Norte, Medellín · 2015 – 2017

Languages

Spanish

Native · C2

English

Upper-Intermediate · B2

Certifications