Skip to content
Rafael Rojas

About

I’m Rafael (they/them), a backend software engineer based in Valdivia, Chile. I’m CTO of two companies, OrigenLab and BENKER, a contract engineer for Campo Digital and Heavy Ops, and a member of NewDev, Valdivia’s software development cooperative. I’m open to remote or hybrid backend roles.

I’m a Computer Science graduate with First Class Honours, focused on backend development, data platforms, and operator tools. I like work where the hard parts are clear: relational models, webhook and REST integrations, validation, migrations, idempotency, and tests that protect the fragile paths.

Since 2026 I have been building, mostly alone, the software behind four businesses. For OrigenLab, a laboratory equipment supplier, an email-intelligence pipeline, a read-only operator API, and a CRM dashboard with Google Workspace sign-in. For Campo Digital, a geospatial platform: LiDAR timber-volume measurement, forestry GIS for properties and stands, and a company portal. For Heavy Ops, a platform that matches construction companies with eligible, credentialed machine operators. For BENKER, a heavy-civil-works contractor, a commercial database that replaces spreadsheets and a PDF quotation archive. Each one ships with architecture decision records and a status document derived from the code, so nobody has to guess what works.

Outside engineering I read, write, and pay attention to art and music. That mostly shows up as patience for ambiguity and a bias toward clear explanations in code and runbooks.

Brilliant and flawed, combining rare engineering talents with ridiculous public displays of ostentation, Musk is our era’s Thomas Edison, the man who, you may recall, electrocuted an elephant in order to discredit a rival.
Yanis Varoufakis, Technofeudalism: What Killed Capitalism

Stack

Languages
Python, TypeScript, Elixir, SQL, Go
Backend
FastAPI, Pydantic, SQLAlchemy, Alembic, Next.js, React, Phoenix, REST APIs
Databases
PostgreSQL, PostGIS, SQLite, Supabase, Row-level security
Tools
Git, Docker, GitHub Actions, uv, pnpm, Playwright, Stripe, Google Workspace APIs, WhatsApp API, MCP servers
Practices
API integrations, Authentication flows, Backend validation, Relational modelling, Geospatial data and LiDAR, Automation with guardrails, Architecture decision records, Testing, Migrations, Idempotency, Operational reliability
Agents
Claude Code, Claude API, MCP server authoring, Agent skills and slash commands, Context engineering, Agent permission design, Human-in-the-loop review

Working with agents

I build with agents every day, and I build the things agents need: servers with legible permissions, documents they can trust, and a human on anything that moves money or messages.

Claude Code is my daily driver. Each repository carries its project instructions, custom skills and slash commands, so a session starts with the architecture decisions, the status document and the test commands already in context. The agent reads the same canonical documents a new engineer would.

When an agent needs to touch a real system I write the MCP server myself and split it by capability. For BENKER that means Drive read-only, Gmail read-only and Gmail send as three separate servers, so what an agent may do is visible in which server it was given, not buried in a config flag.

Company knowledge gets the discipline of code: one owner per truth, provenance on every claim, recorded unknowns, and a validator that fails the build when the documents drift. The language model is not the memory. Git is. Outbound email, payments and migrations keep a person in the loop and tests on the fragile paths.

A Claude Code session: a request to add a row-level-security policy, the agent reading and editing a Supabase migration, running the pgTAP tests, and reporting 408 passing assertions.