# Rafael Rojas

Backend Software Engineer · Valdivia, Chile · Open to remote, hybrid or relocation

- Email: rafarojasv6@gmail.com
- Phone: +56 9 9123 9800
- Phone: +44 7821 734197
- Portfolio: https://rafaelrojasvi.github.io
- GitHub: https://github.com/rafaelRojasVi
- LinkedIn: https://www.linkedin.com/in/rafael-rojas-001906263
- PDF: https://rafaelrojasvi.github.io/cv/Rafael_Rojas_CV_EN.pdf

## Summary

Backend software engineer and CTO of two Chilean companies. Since January 2026 I have designed, built and run the software behind three businesses in three industries, mostly on my own: construction and earthworks, forestry, and laboratory equipment. I learn how each trade actually works (how an estimator prices a cubic metre of fill, how a forestry permit expires) and turn it into Python and TypeScript systems over PostgreSQL, with tested migrations and a person in the loop wherever money, messages or permits move. I work with AI agents every day and build the tools they use. First Class Honours in Computer Science, University of Westminster, London.

## Domain expertise

- Construction, earthworks and aggregates: Unit-price analysis (APU), quantity take-off (cubicación), general expenses, machinery rental tariffs, aggregate supply and delivery, supplier price history, geotechnical reports, municipal (DOM) permits, Mercado Público earthworks tenders, CYPE price databases.
- Forestry: Estates (predios) and stands (rodales), harvest reporting, CONAF permit requests and their expiry, shapefiles and ArcMap workflows, PostGIS, LiDAR timber volume.
- Laboratory equipment: Equipment catalogue by family and manufacturer, public procurement on Mercado Público / ChileCompra, sales to universities and laboratories, supplier and quotation history.
- AI agents: Claude Code as a daily tool, MCP servers split by permission, agent instructions and skills per repository, human review before anything is sent or paid.

## Experience

### Chief Technology Officer, OrigenLab

Jan 2026 – Present · Valdivia, Chile

Laboratory-equipment supplier. Sole engineer, responsible for all of the company's software.

- Built the CRM the sales team works in: a React dashboard with Google Workspace sign-in covering opportunities, organisations, people, suppliers and a Drive archive, with contact details masked by role.
- Designed the V2 data platform on Supabase PostgreSQL 17: 36 tables in seven private schemas, four database roles, 139 row-level-security policies and insert-only domain events. 23 migrations, 408 pgTAP assertions and 308 unit tests.
- Wrote the FastAPI operator API behind a Cloudflare Worker proxy. Its only write path is a set of commands with Idempotency-Key receipts and optimistic concurrency, a CI test fails if any other write endpoint appears, and the browser never holds a token.
- Built the email-intelligence pipeline in Python 3.12: years of PST and Gmail history ingested into SQLite business marts, with an outbound safety memory that blocks repeat or suppressed contacts. Nothing is sent automatically.
- Built tender intelligence on Mercado Público / ChileCompra that picks out capital laboratory equipment from public tenders, and rebuilt origenlab.cl as a static Astro catalogue behind a CI gate for catalogue accuracy, contrast and keyboard access.

Case study: https://rafaelrojasvi.github.io/projects/origenlab

### Chief Technology Officer, BENKER

Aug 2026 – Present · Remote

Heavy civil works and earthmoving contractor. Building the estimating and commercial system the office quotes from.

- Built the estimating software (Cotizador) in Next.js and TypeScript over PostgreSQL: each study in tabs for quotation, quantity take-off, APU, background documents and summary, with the client's PDF shown beside the budget before it goes out.
- Turned the company's history into a price book: 503 estimate workbooks from 409 past studies read into 18,311 dated price observations for machinery, haulage, labour, materials and disposal, and the office's unit-price template re-implemented formula by formula and checked against past studies.
- APU per line item with labour and machine yields, materials with waste, and market references from CYPE price databases and awarded Mercado Público earthworks tenders. Catalogues of aggregates (delivered cost of 1 m³, supplier offers), machinery and suppliers.
- Reads what each tender comes with: DWG plans drawn by layer with terrain levels, borehole logs and water table from geotechnical PDFs, the client's itemised quantities and rental letters, all searchable.
- CRM and marketing on one identity layer with consent rules and a gated send path, plus MCP servers split by capability (Drive read, Gmail read, Gmail send) so an agent's permissions are visible at a glance.

Case study: https://rafaelrojasvi.github.io/projects/benker

### Software Engineer, Geospatial Platform, Campo Digital (contract)

Aug 2026 – Present · Remote

Forestry and geospatial services company. One platform for three products that used to live in shapefiles and Excel.

- Built a FastAPI modular monolith over PostgreSQL/PostGIS, live in production with Google Workspace sign-in, per-product access grants and audited role changes. Production refuses unsafe configuration such as a database connection without TLS.
- Forestry GIS used by the client's forestry team: validated shapefile ingestion with SHA-256 provenance, a map dashboard, harvest reports with published versions, and CONAF permit status synced every night. Invalid polygons are pinpointed where their edge crosses itself.
- Excel import for a utilities project that finds columns by their header, keeps source row numbers, blocks on ambiguous mappings and saves a review report with every import.
- LiDAR research: LAS/LAZ inspection and timber-pile volume estimators benchmarked against reference measurements. 1,500+ Python tests, 20 migrations and 11 architecture decision records across the platform.

Case study: https://rafaelrojasvi.github.io/projects/campo-digital-platform

### Freelance Software Engineer, Self-employed

Nov 2025 – Present · London / Remote

Small-business backends and integrations.

- Built a WhatsApp booking assistant for a tattoo studio, in production: FastAPI, PostgreSQL, Stripe deposits, Google Calendar slot suggestions and Google Sheets logging.
- Modelled each booking as a state machine: idempotent webhooks, row locking for concurrent transitions, signed-webhook verification, Stripe reconciliation and single-use action tokens.

Case study: https://rafaelrojasvi.github.io/projects/tattoo-booking-bot

### Member, NewDev, software development cooperative

2026 – Present · Valdivia, Chile

Valdivia's cooperative of local software engineers, sharing practice and client work.

- Built the cooperative's reference company knowledge base in Git, readable by people and agents alike: one owner per fact, provenance on every claim and a validator that fails the build when the documents drift.

## Projects

### LedgerBank API, Elixir, Phoenix, PostgreSQL, Oban

Banking-style API with JWT auth, a transactional ledger and background jobs, tested against double spends and concurrent transfers.

https://rafaelrojasvi.github.io/projects/ledger-bank-api

## Education

### Computer Science BSc, First Class Honours, University of Westminster, London

Sep 2022 – Jul 2025

Selected results: Database Systems 91%, Software Development 87%, Algorithms 80%, Client-Server Architectures 74%.

### International Foundation Year in Computing, University of Brighton International College

Sep 2021 – Aug 2022

Pass with Distinction. Student Representative; supported international students.

## Skills

- Languages: Python, TypeScript, SQL. Working knowledge of Elixir and Go.
- Backend: FastAPI, Pydantic, SQLAlchemy, Alembic, Next.js, REST APIs, webhooks
- Data and GIS: PostgreSQL, PostGIS, Supabase, row-level security, pgTAP, SQLite, shapefiles, DWG, LAS/LAZ
- Frontend: React, Astro, Playwright
- Infrastructure: Docker, GitHub Actions, Cloudflare Workers, Railway, Linux
- Integrations: Stripe, WhatsApp Business API, Google Workspace APIs, MCP servers
- AI agents: Claude Code, Claude API, MCP server authoring, agent skills, permission design

## Languages

Spanish (native), English (C1, degree completed in London)
