jgvilchezc.dev
statusbooting…uptime99.98%p5042msregionsa-east-1nodev24
Available for senior IC roles · Remote· Mérida, VE

I build software withnot better-written prompts.

Typed contracts, isolated subagents, verifiable state. I'm shipping ExpandCast, ProductReel, AgroAsistente and Flow solo. Founder and lead engineer on all four.

Stack
Next.js · TS · Supabase
Specialty
AI agents · MCP servers
Status
Shipping solo, 2026–now
Based
Mérida, VE · UTC−4
GET/healthz.JSON
{
"status": ,
"service": ,
"p50_ms": 42,
"region": ,
"build": ,
"uptime": // 90d
}
01 · Identity

José Gabriel Vilchez Carrasquero. AI engineer and fullstack operator in Mérida, Venezuela. I build production SaaS as a solo founder.

I treat AI agents as runtime components, not as cleverness amplifiers. The work runs on spec-driven contracts, deterministic state transitions and test-driven verification. The agent is the implementation. The system is mine.

Next.js 16TypeScriptSpec-driven devContract-based interfacesArtifact-drivenSupabaseFirebaseStripeMCP
Portrait of José Gabriel Vilchez CarrasqueroPortrait of José Gabriel Vilchez Carrasquero
02 · Selected work

Four projects, in production.

Solo product work, 2026–present.

proc/01expandcast

ExpandCast

≈2 min
Episode → content kit

One podcast episode, a week of derivative content. Tenant isolation by Postgres RLS.

Turnaround
2 min
Formats out
5+
Grounding
Own transcript
See case study
proc/02productreel

ProductReel

< 60 s
URL → rendered video

Paste a Shopify product URL. Get a 36-second video in under 60 seconds.

Time to render
< 60s
Entry points
3
Pipeline
1 orchestrator
See case study
proc/03agroasistente

AgroAsistente

NDVI
Sentinel-2 field signal

Agronomic advice grounded in this farm's own dirt. Per-parcel weather, soil, land-cover and NDVI assembled into every answer.

Satellite source
Sentinel-2
Platforms
2 (web + mobile)
See case study
proc/04flow

Flow

0 cloud
On-device dictation

Hold a hotkey, speak, release. The text lands in whatever app you're in. Entirely offline, $0/mo.

Runtime
Native
Cloud required
0
See case study

Three years shipping an AI SaaS.

AI-Integrated Software Engineer · mAI Depot · 2023–2026 · South Korea · Remote

Scope · 01

LLM integrations

Feature work wiring language models into a production SaaS — the integration layer between providers and product.

ai services saasllm apis

Scope · 02

Stripe billing

Subscription and payment flows — the billing lifecycle that keeps a SaaS running.

stripesubscriptions

Scope · 03

Firebase Cloud Functions

Server-side logic and event-driven backends, shipped as managed functions.

firebasecloud functions

Internal architecture, product detail and metrics withheld under NDA.

Runtime discipline over prompt cleverness.

I treat AI agents as runtime components. They get contracts, isolation, verifiable state, a tool registry, and a documented path back from every failure. Then I own the system end-to-end. Seven practices below, each tied to a shipping project.

  1. 01 · Harness

    Result Contract

    Predictable state transitions. Callback architecture beats polling at the 60-second wall.

    Vercel Hobby caps function maxDuration at 60s. Shotstack renders run 40–90s. The pipeline submits and returns immediately. The function never polls. When Shotstack is done, its callback writes the job state to KV, and that's the only place the state can change.

    $ submit → 200 → callback
  2. 02 · Harness

    Verify

    Don't close the loop without evidence the work happened.

    A render job stays incomplete until Shotstack's callback fires with the MP4 URL. The UI reads state from KV, which is the system of record, not from optimistic client memory.

    $ callback → kv → ui
  3. 03 · Harness

    Permission Boundary

    Storage, network and DB each enforce their own scope. Nothing trusts anything by default.

    ExpandCast runs Supabase RLS, so every row read or write goes through a policy check. The service-role admin client stays strictly behind the server boundary. ProductReel HMAC-validates each Shopify webhook before any pipeline work begins.

    $ rls · hmac · service-role
  4. 04 · Harness

    Subagent Isolation

    One pipeline, many entry points. Each caller hits the same orchestrator under the same contract.

    /api/scrape, /api/backfill and /api/webhook all converge on lib/pipeline.ts. The pipeline doesn't know who called it. The contract is the same for all three. Behaviour can't drift between entry points, and there's only one place to fix bugs.

    $ scrape · backfill · webhook → pipeline
  5. 05 · Harness

    Skill Registry

    Capabilities live as explicit, modular sources. Adding knowledge is editing a folder, not retuning a model.

    Modular RAG over docs/cultivos, docs/plagas, docs/fertilizacion. External integrations like SoilGrids, MapBiomas and Weather wire into the agent as discrete skills. New domain knowledge ships as a text file.

    $ rag(docs) + skills(soil, climate)
  6. 06 · Harness

    Execution Mode

    Constraints drive technical choices. The market is the spec.

    Built for Android phones on 2G/3G in rural Venezuela. No Tailwind to keep the bundle small, native Web Speech instead of Whisper for zero network cost, localStorage queue instead of IndexedDB. The stack is the user's reality, not mine.

    $ 2g/3g · android · pwa
  7. 07 · Harness

    Rollback

    Every failure mode has a documented path back to a working state.

    The offline queue flushes automatically when the signal returns. Mid-response streaming cuts surface a 'continue' button. Camera permission denials show a banner with a re-grant path. Failure modes are part of the spec, not an afterthought.

    $ online → flush · cut → continue

Inspired by Alan Buscalas' Agent Harnesses framework.

Every tool here shipped something real.

No logo dump. Select a project and see exactly what it was built with — the same four products from the case studies above.

$stack--all51 / 51 matched

01·Frontend

[ 14 ]
  • Next.js
  • React
  • React Native (Expo)
  • TypeScript
  • Tailwind CSS
  • SASS
  • Framer Motion
  • GSAP
  • shadcn/ui
  • Radix UI
  • TipTap
  • Monaco Editor
  • Three.js
  • Leaflet

02·Backend

[ 07 ]
  • Node.js
  • Rust
  • Tauri
  • Route Handlers
  • Edge Runtime
  • Firebase Functions
  • Zod

03·Data & APIs

[ 08 ]
  • Firestore
  • Supabase
  • pgvector
  • SQLite
  • Sentinel-2 / SoilGrids
  • Redux Toolkit
  • Elasticsearch
  • Axios

04·Cloud & Infra

[ 04 ]
  • Vercel
  • Firebase
  • Azure Functions
  • Upstash Redis

05·AI & Automation

[ 11 ]
  • Vercel AI SDK
  • Claude
  • OpenAI
  • Gemini
  • Groq / Whisper
  • Ollama
  • whisper.cpp
  • HuggingFace
  • OpenRouter
  • AI Gateway
  • RAG

06·Tooling

[ 07 ]
  • Stripe
  • Resend
  • ESLint
  • Prettier
  • Playwright
  • ffmpeg (WASM)
  • pnpm
06 · Contact
POST /contact · 202 accepted

Best reached by email. I respond within 24h.

josegabrielvilchezc@gmail.com
Location
Mérida, VE · UTC−4