skip to content

dossier · no. 001 — luis osio chico · colombia, utc-5

LUISOSIO.

ai engineer — software engineer

— for the systems that can't afford to be wrong.

I build AI systems on a production full-stack spine: agents, retrieval, and the guardrails that keep them honest — plus the screens people touch.

open to remote roles · utc-5 overlap·api · pinging…

PythonFastAPITypeScriptReactNode.jsPostgreSQLAWS
Luis Osio
fig. 01 — the engineerremote-first

Selected work

Everything here is running. No screenshots-only exhibits: each one links to something you can execute, read, or query.

ex. 01

mdingest

live

Turns blog articles and newsletters into clean Markdown for LLMs. One ingestion core behind four entry points: HTTP API, CLI, and an MCP server over stdio + HTTP.

live on cloudflare · 4 entry points · mcp + llms.txt ready

TypeScriptBunCloudflare WorkersAstro
fig. 1 — system mapdeployedrequest in flight
GET /v1/*?url=http apimdingest <url>climcp · stdiolocal agentsmcp · httpremote agentsworker → doproxy · no logicingest(url)workers · one coredevtojson apisubstack/api/v1mediummirror
idle live request
—ingests served
ex. 01a — run it live
$
detected from url

> calls the production api at mdingest.knightker.workers.dev — real article in, markdown out. the url is yours to change.

ex. 02

italki-cli

live

italki has no official API, so I built one from the outside: a Zod-validated CLI + MCP server to search, compare, and book lessons, with layered architecture enforced by custom lint rules.

13 mcp tools · 50+ fields zod-validated · arch enforced by lint

TypeScriptBunZodMCP

$ bun run index.ts mcp # stdio server · 13 tools

$ bun run verify # typecheck + 5 arch lint rules

recorded run · real api response0ms

$ _

Found 645 english teachers (type=pro, max=$20.00, native)   #32651986  Ethan M [PRO] from US — from $16.00 ★5 20 sessions trial $10.00  #4611201  Matt [PRO] from GB — from $15.00 new trial $8.00  #1084019  Lewella [PRO] from US — from $20.00 ★5 20178 sessions trial $5.00  #855323  Teacher Jong [PRO] from PH — from $12.00 ★5 19581 sessions trial $5.00  #953117  Regina Esther [PRO] from PH — from $12.00 ★5 9819 sessions trial $8.00   Next page: italki search english --type pro --max-price 20 --native --page 2  View profile: italki teacher <id>

captured sep 28 — 645 real matches, real teachers, real prices

How a request travels

What happens when someone clicks a button in one of my apps. Left to right: the visitor's browser, the edge, the API, the database.

live render · request anatomyrunning
Clientwhat people seeEdgeclosest serverAPIthe logicPostgreSQLthe truthRediscacheQueuejobs
click in the browser → edge → api → lands in postgres.

The record

TXEN

AI Engineer

dec 2025 · present

~150ms

selector load time, down from 5-8s

Software consultancy. Full-stack engineer on Péntica (B2B SaaS for municipal tax compliance across Colombia's 1,103 municipalities), then AI Engineer on Doru (AI clinical-records SaaS for veterinary clinics).

  • Engineered Doru's AI consultation-to-clinical-record pipeline (speech-to-text, LLM structured extraction, Pydantic schema validation with automatic retries, and veterinarian human-in-the-loop review before records are saved); owned its event-driven automated reminders, AWS infrastructure, and React frontend optimizations.
  • Built a hybrid RAG service in Python and FastAPI over Colombian tax regulations for accountant lookup: keyword + pgvector retrieval fused with RRF, article-aware chunking preserving each regulation's hierarchy, cross-encoder reranking, exact citations to the regulation, superseded-norm detection, and deterministic abstention on out-of-corpus or superseded norms — validated against a golden dataset curated by the accounting team.
  • Cut company-selector load time from 5-8s to ~150ms across 14 frontend modules by designing a lightweight endpoint returning only required fields (replacing ~150K-line JSON responses), measured via CloudWatch.
  • Designed and executed a 19-phase PostgreSQL migration (Simplica → Péntica): schema mapping across differing names and types, idempotent re-runs via natural-key deduplication, dry-run mode, and per-municipality validation.
  • Implemented continuous production reverse sync from Péntica back to Simplica via SQS, and automated the ICA tax-matrix update workflow (replacing manual email dispatches and hand-attached normativity files).
  • Migrated production to a new AWS account in under 12 hours (RDS snapshot + S3 sync), configured RDS Proxy + Lambda init-phase TypeORM loading to cut cold starts, and reduced 3,400 ESLint warnings to zero with Prettier across the team.
TypeScriptNode.jsPythonFastAPIReactPostgreSQLTypeORMSST v3OpenAPIGitHub Actions

aws — lambda · api gateway · rds proxy · s3 · sqs · cloudfront · cognito · eventbridge · cloudwatch

Nord Tech

Software Engineer

dec 2024 · dec 2025

<12mo

to promotion from Junior

Promoted from Junior inside a year on a real-time reservation and streaming platform.

  • Delivered backend work on a real-time reservation and streaming platform in Scala + Kafka, under a senior lead's direction.
  • Reviewed code and assigned tasks for two junior developers, supporting their delivery.
ScalaKafkaWebSocketsTypeScriptNode.jsPython
↑ promoted

Junior Software Engineer

jan 2024 · dec 2024

100+

endpoints migrated off Node 14

First role. Migrated a lending platform's backend off end-of-life Node 14.

  • Migrated 100+ endpoints (Node.js/TypeScript on AWS Lambda): built the unit + integration test foundation around business-critical endpoints, deployed to production.
  • Earned the promotion on code quality, autonomy, and consistent delivery.
TypeScriptNode.jsPythonReactAWS AmplifyAWS Lambda

No Country

Frontend Developer (Intern)

jun 2023 · sep 2023

2

project builds during internship

Project-based internship: real team deliverables on two LATAM community builds.

  • Urban Move (urban mobility): responsive UIs in React, TypeScript, Tailwind CSS, Vite; frontend testing with Vitest.
  • UVA (developer-project matching): frontend in React, Vite; code quality via ESLint + Prettier.
ReactTypeScriptTailwind CSSViteVitest

Field notes

Short technical essays on things I actually shipped. Being written now.

Migrating an ingestion API off Containers to pure Workers

the mdingest deploy, honestly

drafting

Why vector-only RAG fails on municipal tax statutes

hybrid retrieval, citations, and abstention — lessons from Péntica work, in Python

drafting

What 3,400 ESLint warnings taught me

team hygiene is a migration problem too

outlined

Statements

LinkedIn recommendations. Translated from Spanish, originals on file ↗

“Luis showed strong technical judgment building with AI-assisted tools — he's always at the leading edge. His professional ethics and his ability to communicate across teams and with clients stand out.”

Jose Daniel Posso Garcia

Jose Daniel Posso Garcia

CTO & Founder · Doru, TXEN

managed luis directly

“One of the best developers I know. Before implementing anything he evaluates the options, understands the context, and makes informed decisions. I'd recommend him to any team, remote included.”

Jhovani Moreno

Jhovani Moreno

Full Stack Developer

same team · pentica

“High technical ability and excellent problem-solving skills, with real commitment to the quality of the work. Responsible, proactive, with strong professional ethics.”

Michel Andrey Gallo Perez

Michel Andrey Gallo Perez

Software Engineer

same team · pentica

“Across Next.js, AWS Lambda, TanStack and DynamoDB he showed real capacity for technical challenges, and proposed solutions oriented to what the project actually needed.”

Mateus Tegue

Mateus Tegue

Full Stack Developer

different team · doru

Credentials

Software Engineering (BSc)

UniHorizonte, Colombia

in progress · 2022 — exp. 2027

Oracle Next Education, Back-End

Alura LATAM · 286h · 6 courses

earned · 2024

view credential ↗

Web Development & Programming

Platzi

earned

This file answers
in JSON.

Every page in this dossier also exists as structured data. Agents and recruiters read the same truth:/v1/me.json, /v1/projects.json, llms.txt, openapi.json, .well-known/ai-catalog.json. And it is callable, not just readable:POST /v1/mcp — this dossier is itself an MCP server.

mdingest api live · v1 · checked at build

verified at build

specimen · response body

$ curl luisosio.dev/v1/me.json

{
  "name": "Luis Osio",
  "handle": "losiochico",
  "role": "AI Engineer — Software Engineer, Backend & Full Stack",
  "stack": [
    "Python",
    "FastAPI",
    "TypeScript",
    "React",
    "Node.js",
    "AWS",
    "PostgreSQL",
    "MCP"
  ],
  "focus": "AI systems: agents, retrieval-augmented generation (RAG), guardrails — on a production full-stack foundation",
  "location": "Colombia",
  "timezone": "America/Bogota (UTC-5)",
  "status": "open_to_work",
  "links": {
    "github": "https://github.com/LOsioChico",
    "linkedin": "https://linkedin.com/in/losiochico",
    "email": "[email protected]",
    "cv": "https://luisosio.dev/cv.pdf"
  },
  "endpoints": [
    "/v1/me.json",
    "/v1/projects.json",
    "/v1/experience.json",
    "/llms.txt",
    "/.well-known/ai-catalog.json"
  ]
}

↳ that command actually works

Building something
that has to stay correct?

Open to AI engineer, backend, and full-stack roles — remote, LATAM and US time zones. Agents, retrieval, and guardrails on a production spine.

[email protected]
github linkedindownload cv ↗