Cristian Carreño
Portrait of Cristian Carreño

Cristian Carreño “Kiel”

Software architect · Chile

Open to co-founding and advising

I ship production software at full speed with a team of AI agents, and build the tools that keep them under control.

Hi, I'm Cristian, or Kiel, and I've been building software for 14 years. I founded Snup, a pet-care marketplace in Chile, and I've been its only engineer since 2025. I'm also a software architect at Enara Health. How do I keep up with both? I write the plan and the rules, and a team of AI agents writes most of the code.

Agents Control Center 2 machines · 4 accounts
  • Snup working macbook test suite · 3,772 tests in 344 files
  • Snup Vets working desktop brief-005 · live daily schedule · merged
  • Agents Control Center needs approval macbook git push --force-with-lease · high risk, asks twice
  • QA Console passed desktop criterion held · screenshot and trace attached
  • PR Review Console idle desktop 49-PR queue · 47 decided by rules, 0 tokens
  • Maquila idle macbook 66 MCP tools · row-level security applies
A still of the control center, with this page's projects as the sessions. Each activity line comes from that project's repository.

Work

Selected work

A product I run end to end, the tools I built to run it with agents, and the company I architect for.

Pet-care marketplace in Chile

Snup

Founder · only engineer since 20252023 – now

Snup connects pet owners with vetted sitters across Chile. After the merger with Kahu I took over its platform, and since March 2025 I have run it alone: product, architecture, releases and production.

  • An installable web app and a separate admin app, with a chat rebuilt in 2026: photos, reactions, replies, read receipts and offline sending.
  • Pricing engine, Mercado Pago payments, sitter ranking, cancellation policies and open care requests with offers.
  • An MCP connector so admins can run Snup from Claude with their own permissions.
  • A store app for iOS and Android, in progress, that wraps the web app with native sign-in, push and deep links.
  • A guide and git hooks that let teammates outside engineering open pull requests safely.

Agent tooling

Built in 2026 to run many agents at once and to trust what they hand back.

Control room for AI agents

Agents Control Center

Sole author

Oct 2026 Work private repo

A local web app and phone app to run many Claude Code sessions at once, across accounts and any number of machines, and to answer them from one place.

  • One inbox for every permission prompt and question, with a risk assessment. Force pushes, merges and migrations need a second confirmation.
  • Machines join over an encrypted channel, as many as you pair. A session moves to another account or machine with its uncommitted work, on its own when a plan runs out.
  • An MCP server inside every session lets agents find each other, send messages, request files and ask for a QA run.
  • Secrets reach agents without entering a conversation, and a voice loop dictates, reads replies aloud and takes spoken commands.
  • Built around adapters: Claude Code is the agent it drives today, and others plug in behind the same UI.
  • v0.76
  • 149 commits in 11 days
  • 565 tests
  • TypeScript
  • Bun
  • React
  • SQLite
  • tmux
  • MCP
  • Web Push
  • whisper.cpp

Self-triaging review queue

PR Review Console

Lead author, with two teammates

Aug 2026 – now Work private repo

For each pull request waiting on you, it answers one question: what should I do about this? Then it does the part it can.

  • Collects the queue from GitHub and Bitbucket and sorts each PR into act, review, delegate or wait, with the reason stated.
  • Runs headless Claude reviews with about eight specialist agents and streams them to the browser.
  • The console posts to GitHub or Bitbucket, never the model. Automatic posting is a switch per repository and per verdict.
  • Supervised workers, admission control and load balancing across several Claude accounts.
  • wrote 330 of 420 commits
  • 2,827 tests
  • 47 of 49 PRs sorted without AI
  • Python
  • FastAPI
  • SQLite
  • Claude Code
  • GitHub
  • Bitbucket

QA that agents can call

QA Console

Sole author

Oct 2026 Personal private repo

Give it QA instructions and acceptance criteria. It works out which personas to test as, has Claude write Playwright scripts, runs them itself and reports criterion by criterion.

  • The model writes the script and the console runs it in a fresh process. Only an assertion that held makes a criterion pass.
  • Untrusted runs execute in a sandbox, and secrets are masked in reports and screenshots.
  • CI jobs, other agents and claude.ai reach it over MCP, each with its own revocable token, policy and budget.
  • Criteria only a person can judge go to the operator's inbox in Agents Control Center.
  • v0.11
  • 24 commits in 3 days
  • 136 tests
  • 11 MCP tools
  • Python
  • FastAPI
  • Playwright
  • MCP
  • bubblewrap
  • Tailscale

MCP connectors

Claude working inside real systems, with each user's own permissions and nothing more.

Architecture and decisions

Inside the Phoenix app, for Snup's admins

Snup

Admins connect Claude with OAuth and choose what each connection may do: which tools, whether it can write, whether it sees contact data. Every call re-checks that they are still an admin. Writes run as a dry run by default; applying one takes a confirmation token bound to the person, the tool and the arguments, valid for five minutes, plus a stated reason. Text written by users reaches the model marked as untrusted.

  • 17 tools
  • 85 tests
  • OAuth 2.1
  • rate limits and audit log

Operations app for a family business

Maquila

Orders, production, stock and finance, built on Next.js and Supabase. The MCP server uses Supabase Auth as its OAuth server and runs every tool with the user's own token, so row-level security applies to an agent exactly as it does in the app. Printed production sheets carry codes an agent can read from a photo.

  • 66 tools
  • row-level security
  • Next.js
  • Supabase

Enara, and what is new

US digital health company

Enara Health

Software architect

2022 – now Work

Enara runs insurance-covered medical weight-management programs in the United States, where patient data falls under HIPAA. I work across its platform, from the original Rails core to the new TypeScript services.

  • Designed the authorization model and the auth SDK for the new platform, and led its rollout across services.
  • AI pipelines: transcription and note generation for clinical visits with AWS Transcribe and Bedrock, and document extraction with Textract.
  • Serverless and NestJS services on AWS for onboarding, appointments, eligibility and billing exports.
  • The team's Claude Code setup: shared skills, specialist review agents and an internal dev-tools package.
  • about 8,000 commits
  • about 50 repositories
  • since 2022
  • TypeScript
  • NestJS
  • Ruby on Rails
  • AWS Lambda
  • ECS
  • Bedrock
  • PostgreSQL
  • Terraform

Software for veterinary clinics

Snup Vets

Sole author

Started Oct 25, 2026 Product private repo

Schedule, clinical records, reminders and billing for clinics, linked to the pet owners who already use Snup. The first day shipped five briefs: the project base, multi-clinic tenancy, sign-in with a Snup account, patients and a live daily schedule.

  • 5 briefs on day one
  • 191 tests
  • Elixir 1.20
  • Phoenix 1.8
  • LiveView
  • PostgreSQL 18
  • Oban

Method

How I work with agents

Agents write most of my code: in 2026, 2,015 of Snup's 2,219 commits list Claude as co-author. These six rules decide what the agents may do. Each one is enforced in code, in a repository I can point to.

  • The brief comes first

    Every change starts as a written brief with acceptance criteria, and every repository has a CLAUDE.md that states its rules. Agents build to the brief, and review checks against it.

    enforced in Snup · 105 briefs · 7 ADRs · rules in every repo

  • Rules before models

    If a script can compute the answer, no model is asked. A model handles the ambiguous remainder within strict limits, and its answer is validated again before anything uses it.

    enforced in PR Review Console · 47 of 49 PRs decided by rules, zero tokens

  • A verdict is evidence

    The model writes the test. A fresh process runs it, and only an assertion that held marks a criterion as passed. One failure is flaky; failed takes two identical runs.

    enforced in QA Console · six verdict states · lint rejects checks that cannot fail

  • No model posts anything

    Agents draft and the software acts, through one guarded path. A write requested by an agent runs as a dry run first and needs a short-lived token bound to the exact arguments.

    enforced in Snup MCP · 5-minute confirmation tokens · audit log on every call

  • Measure it before trusting it

    Before a model gets a decision, it competes with the rules on real data. Where they disagree, the case becomes a test.

    enforced in 49 real PRs · 45 agreed · the rules won the other 4

  • One operator, many sessions

    Parallel agents need an operator's tools: one inbox for every permission prompt, a second confirmation before risky commands, and sessions that move to another account or machine when a plan runs out.

    enforced in Agents Control Center · 149 commits in 11 days · 565 tests

Stack

What I build with

Everything here runs in production today. Each row says where.

AI and agents

  • Claude Code across accounts and machines
  • Headless claude -p pipelines
  • MCP servers with OAuth 2.1
  • AWS Bedrock
  • AWS Transcribe and Textract
  • Agent-written Playwright tests

Agents Control Center, QA Console, PR Review Console, Snup, Enara

Languages

  • Elixir
  • TypeScript
  • Ruby
  • Python
  • SQL

Every project on this page

Backend

  • Phoenix, LiveView and Channels
  • NestJS
  • Ruby on Rails
  • FastAPI
  • Express on Lambda
  • Oban, BullMQ, Sidekiq

Snup, Snup Vets, Enara, the consoles

Frontend and mobile

  • React
  • Next.js
  • Astro
  • Tailwind
  • Zustand
  • Expo and React Native
  • Installable web apps

Snup apps and admin, Enara funnels and dashboards, Maquila

Data

  • PostgreSQL
  • MongoDB
  • Redis
  • DynamoDB
  • SQLite
  • Supabase

Snup, Snup Vets, Enara, Maquila

Cloud and delivery

  • AWS Lambda and SAM
  • ECS Fargate
  • SQS, S3, RDS
  • Terraform
  • Docker
  • GitHub Actions
  • Railway
  • Vercel

Enara infrastructure, Snup environments

Experience

14 years, eight companies

Newest first. I first wrote Elixir in 2017, built a cryptocurrency exchange on it, and came back to it for Snup.

  1. Nov 2023 – Present 3 yrs

    Snup

    • Co-founder · Head of engineering

    A pet-care marketplace in Chile, built around trust. I co-founded it, and since 2025 I've been its only engineer.

    • Elixir
    • Phoenix
    • React
    • MongoDB
  2. Oct 2022 – Present 4 yrs 1 mo

    Enara Health

    • Head of architecture Aug 2024 – Present · 2 yrs 3 mos
    • Senior backend engineer · Tech lead Oct 2022 – Aug 2024 · 1 yr 11 mos

    I design the software across Enara's engineering teams, including AI tools like a scribe for clinical notes and automated insurance claims. Before that, as tech lead, I led cross-team work on new services and libraries, and on a new CRM fed automatically from our own data.

    • NestJS
    • Prisma
    • Ruby on Rails
    • AWS Bedrock
    • Terraform
  3. Feb 2021 – Oct 2022 1 yr 9 mos

    SUDA Outdoors

    • Agile team facilitator Jul 2021 – Oct 2022 · 1 yr 4 mos
    • Lead backend engineer Feb 2021 – Oct 2022 · 1 yr 9 mos

    A mobile app for sharing outdoor sports routes. I led the backend architecture, helped on the frontend, and later also ran Scrum for the engineering team.

    • Parse Server
    • Elasticsearch
    • Ansible
    • Terraform
  4. Dec 2019 – Jan 2021 1 yr 2 mos

    Noken

    • Senior backend engineer

    An all-in-one trip builder: activities, lodging and transport. I led backend-heavy projects, worked across the whole stack and mentored junior developers.

    • Go
    • NestJS
    • TypeScript
    • React
    • MongoDB
    • AWS ECS
  5. Nov 2017 – Nov 2019 2 yrs 1 mo

    Instanz

    • Lead software engineer

    A cryptocurrency exchange built from scratch on distributed Elixir nodes. I designed the architecture, the crypto integrations and both APIs, and we opened trading in Chile, Argentina and Peru with two banks and five cryptocurrencies.

    • Elixir
    • Erlang
    • CQRS
    • WebSockets
    • Angular
  6. May 2017 – Nov 2017 7 mos

    Rayoslab

    • Senior software engineer

    Full-stack work on a web app for managing water resources and a geomarketing system built from scratch. It's where I first wrote Elixir.

    • Elixir
    • Angular
    • PostgreSQL
  7. Jan 2017 – May 2017 5 mos

    AIM Manager

    • Software engineer

    Resource planning with real-time tracking on 2D maps. I built AIM Viewer, the canvas engine for layered map data that became the core of the product.

    • Ruby on Rails
    • Ember.js
    • HTML Canvas
  8. Feb 2012 – Dec 2016 4 yrs 11 mos

    Acid Labs

    • Software engineer

    My first job: web apps in Ruby on Rails and Ember.js, mostly for AIM Manager, the company's spin-off. Along the way I picked up JavaScript, PHP, CoffeeScript and four flavors of SQL.

    • Ruby on Rails
    • Ember.js
    • PostgreSQL
    • MySQL

The long version is on LinkedIn

History

Release notes

The same format I use for Snup's changelog, newest first.

  1. 2026 Agents as a team

    • added Agents Control Center, QA Console and PR Review Console: the tools for running agents in parallel and trusting what they produce.
    • added MCP connectors for Snup and Maquila, so Claude works with each user's own permissions.
    • changed Snup reaches App 2.0, with a new chat, a store app for iOS and Android on the way, and 145 versioned releases between May and October.
    • changed Claude co-wrote 91% of Snup's commits. Headcount: still one.
    • added Snup Vets, software for veterinary clinics.
  2. 2025 One engineer, one platform

    • changed Took over the Elixir codebase Snup inherited from its merger with Kahu, and became Snup's only engineer, which also makes me its entire on-call rotation.
    • added Enara: the new TypeScript platform monorepo, appointments with video visits, and AI document extraction.
  3. 2024 Merger and mobile

    • changed Snup merges with Kahu. Rewrote the mobile app with Expo.
    • added Enara: transcription and note generation for clinical visits with AWS Bedrock.
  4. 2023 Snup, first version

    • added Snup's first platform: a NestJS API, a Next.js web app, a typed SDK and Terraform on AWS.
    • added Enara: the patient onboarding funnel, CRM integration and automated billing exports.
  5. 2022 Enara Health

    • added Joined Enara, on the Rails core and its first serverless services.

Contact

Let's talk

I'm building new companies and products, and I'm not looking for a traditional job. If you're starting something and want a co-founder or an advisor, or just want to talk about putting agents to work, write to me. LinkedIn is the best way, in English or Spanish.

Reach me on LinkedIn

linkedin.com/in/kielcristian