{
  "identity": {
    "name": "Juan R. Figueroa",
    "handle": "juancrfig",
    "role": "AI Engineer (DevOps background)",
    "headline": "AI Engineer in training — shipping agent harnesses & LLMOps pipelines",
    "location": "Colombia",
    "languages": [
      {
        "name": "Spanish",
        "level": "Native"
      },
      {
        "name": "English",
        "level": "C1"
      },
      {
        "name": "Portuguese",
        "level": "B1"
      }
    ],
    "bio": "I love computers. I love prompting ideas into existence. I love terminals. In this rapid evolving tech landscape, I focus on fundamentals — What is an API? What is Linux? What are engineering principles? Strong belief in polymaths in the AI era: building is easier, taste on what to build marks the difference."
  },
  "contact": {
    "site": "https://juanes.garden",
    "github": "https://github.com/juancrfig",
    "linkedin": "https://linkedin.com/in/juancrfig",
    "x": "https://x.com/juancrfig",
    "email": null
  },
  "availability": {
    "open_to_work": true,
    "looking_for": [
      "AI Engineer",
      "AI Platform Engineer",
      "LLMOps",
      "Agent Harness"
    ],
    "work_mode": "remote",
    "locations": [
      "LATAM",
      "EU",
      "US-async"
    ],
    "freelance": true,
    "full_time": true
  },
  "skills": {
    "ai_llm": [
      "RAG",
      "agent harness",
      "agentic loop",
      "context engineering",
      "MCP",
      "prompt engineering",
      "eval harness",
      "Hermes Agent",
      "Grok Build",
      "Gemini 2.5 Pro",
      "Claude 3.5 Sonnet",
      "GPT-4o mini"
    ],
    "languages": [
      "Python",
      "TypeScript",
      "JavaScript",
      "Go",
      "Bash",
      "Lua",
      "SQL"
    ],
    "infra_devops": [
      "Linux",
      "Docker",
      "Kubernetes (k3s)",
      "CI/CD (GitHub Actions)",
      "Vercel",
      "Astro",
      "Neovim"
    ],
    "frontend": [
      "React",
      "Next.js",
      "Astro",
      "Tailwind v4"
    ],
    "vault_topics": [
      "eBPF",
      "networking",
      "OS internals",
      "testing",
      "system design"
    ]
  },
  "projects": [
    {
      "name": "devopstutor",
      "date": "2026-10",
      "description": "DevOps Gym",
      "story": "A terminal-based warm-up and review tool to practice and solidify your Linux skills everyday",
      "stack": [
        "bash",
        "linux",
        "neovim"
      ],
      "status": "building",
      "tags": [
        "cli",
        "devops"
      ],
      "url": null,
      "githubUrl": "https://github.com/juancrfig/devopstutor",
      "private": false
    },
    {
      "name": "My Devcontainer",
      "date": "2026-09",
      "description": "My Devcontainer",
      "story": "My own portable development environment with everthing I need to build stuff.",
      "stack": [
        "linux",
        "neovim",
        "herdr:Herdr"
      ],
      "status": "building",
      "tags": [
        "tool"
      ],
      "url": null,
      "githubUrl": "https://github.com/juancrfig/nvim",
      "private": false
    },
    {
      "name": "halegro",
      "date": "2026-09",
      "description": "Halegro",
      "story": "An AI that reads with you. The book talks back. The pages stay in the dark.",
      "stack": [
        "neovim"
      ],
      "status": "paused",
      "tags": [
        "ml/ai",
        "archive"
      ],
      "url": null,
      "githubUrl": null,
      "private": true
    },
    {
      "name": "mimir",
      "date": "2026-09",
      "description": "Mimir Agent",
      "story": "A tutor that grows with you. Sometimes a sentence. Sometimes a whole interface.",
      "stack": [
        "hermes-agent",
        "chatgpt:ChatGPT-6 Astra",
        "neovim"
      ],
      "status": "building",
      "tags": [
        "ml/ai"
      ],
      "url": null,
      "githubUrl": null,
      "private": true
    },
    {
      "name": "orama",
      "date": "2026-09",
      "description": "Orama",
      "story": "It measures agents where the company can see. The instruments are classified.",
      "stack": [
        "neovim"
      ],
      "status": "paused",
      "tags": [
        "ml/ai",
        "archive"
      ],
      "url": null,
      "githubUrl": null,
      "private": true
    },
    {
      "name": "pais",
      "date": "2026-09",
      "description": "PAIS",
      "story": "It keeps the lesson after the ticket is closed. The extractor stays in-house.",
      "stack": [
        "neovim"
      ],
      "status": "paused",
      "tags": [
        "ml/ai",
        "archive"
      ],
      "url": null,
      "githubUrl": null,
      "private": true
    },
    {
      "name": "readground",
      "date": "2026-09",
      "description": "Readground",
      "story": "An AI conversation you can cut mid-thought. What it hears is not in the log.",
      "stack": [
        "neovim"
      ],
      "status": "paused",
      "tags": [
        "ml/ai",
        "archive"
      ],
      "url": null,
      "githubUrl": null,
      "private": true
    },
    {
      "name": "sublime",
      "date": "2026-09",
      "description": "Sublime",
      "story": "A kit for conjuring professional web apps from a vibe.",
      "stack": [
        "neovim"
      ],
      "status": "paused",
      "tags": [
        "web",
        "tool",
        "archive"
      ],
      "url": null,
      "githubUrl": null,
      "private": true
    },
    {
      "name": "vicarious-embarrassment-meter",
      "date": "2026-09",
      "description": "Vicarious Embarrassment Meter",
      "story": "It reads brain patterns through META TRIVE v2. The meter is not for public eyes.",
      "stack": [
        "neovim"
      ],
      "status": "paused",
      "tags": [
        "ml/ai",
        "archive"
      ],
      "url": null,
      "githubUrl": null,
      "private": true
    },
    {
      "name": "The Workbench",
      "date": "2026-09",
      "description": "The Workbench",
      "story": "I am all-in with AI-assisted development, this is my attempt build a system that makes AI produce beautiful and robust software with less human supervision.",
      "stack": [
        "herdr:Herdr",
        "neovim"
      ],
      "status": "paused",
      "tags": [
        "web"
      ],
      "url": null,
      "githubUrl": "https://github.com/juancrfig/workbench",
      "private": false
    },
    {
      "name": "OpenLibrary",
      "date": "2026-05",
      "description": "A beautiful, interactive GUI for your personal library of digital books",
      "story": "An open-source project to have a beautiful and easily interactive GUI to your personal library of digital books.",
      "stack": [
        "typescript",
        "next",
        "neovim"
      ],
      "status": "paused",
      "tags": [
        "web",
        "archive"
      ],
      "url": null,
      "githubUrl": "https://github.com/juancrfig/OpenLibrary",
      "private": false
    },
    {
      "name": "reading-plugin",
      "date": "2026-05",
      "description": "Live AI reading companion with Hermes Agent",
      "story": "Live AI reading companion with Hermes Agent",
      "stack": [
        "typescript",
        "next",
        "neovim"
      ],
      "status": "paused",
      "tags": [
        "tool",
        "archive"
      ],
      "url": null,
      "githubUrl": "https://github.com/juancrfig/reading-plugin",
      "private": false
    },
    {
      "name": "aGUI",
      "date": "2026-04",
      "description": "A GUI that adapts to each person's needs, priorities, and usage patterns",
      "story": "A GUI adapting to each person's unique needs, priorities, and usage patterns.",
      "stack": [
        "typescript",
        "neovim"
      ],
      "status": "paused",
      "tags": [
        "web",
        "ml/ai",
        "archive"
      ],
      "url": null,
      "githubUrl": "https://github.com/juancrfig/aGUI",
      "private": false
    },
    {
      "name": "dac-pipeline",
      "date": "2026-04",
      "description": "CI pipeline that treats AI-facing documentation as code",
      "story": "A CI pipeline that treats your AI-facing documentation as code — automatically scanned, validated, and kept in sync with your actual codebase",
      "stack": [
        "python",
        "neovim"
      ],
      "status": "paused",
      "tags": [
        "devops",
        "archive"
      ],
      "url": null,
      "githubUrl": "https://github.com/juancrfig/dac-pipeline",
      "private": false
    },
    {
      "name": "goalboard",
      "date": "2026-04",
      "description": "Gamified life progression dashboard",
      "story": "Gamified life progression dashboard",
      "stack": [
        "neovim"
      ],
      "status": "paused",
      "tags": [
        "web",
        "archive"
      ],
      "url": null,
      "githubUrl": "https://github.com/juancrfig/goalboard",
      "private": false
    },
    {
      "name": "legacia",
      "date": "2026-04",
      "description": "AI-powered interface for old software (GeneXus 18)",
      "story": "My abandoned attempt to add an AI-powered interface to old software (GeneXus 18).",
      "stack": [
        "python",
        "claude-code"
      ],
      "status": "abandoned",
      "tags": [
        "ml/ai",
        "tool",
        "archive"
      ],
      "url": null,
      "githubUrl": "https://github.com/juancrfig/legacia",
      "private": false
    },
    {
      "name": "OpenBureau",
      "date": "2026-04",
      "description": "Hermes plugin for government bureaucracy",
      "story": "Hermes plugin for government bureaucracy",
      "stack": [
        "python",
        "neovim"
      ],
      "status": "paused",
      "tags": [
        "tool",
        "ml/ai",
        "archive"
      ],
      "url": null,
      "githubUrl": "https://github.com/juancrfig/OpenBureau",
      "private": false
    },
    {
      "name": "read-book",
      "date": "2026-04",
      "description": "Take a book and an AI agent as input, receive pure knowledge",
      "story": "Take a book and an AI agent as input, receive pure knowledge.",
      "stack": [
        "neovim"
      ],
      "status": "paused",
      "tags": [
        "ml/ai",
        "archive"
      ],
      "url": null,
      "githubUrl": "https://github.com/juancrfig/read-book",
      "private": false
    },
    {
      "name": "anima",
      "date": "2025-10",
      "description": "Encrypted command-line journal: local AES-256 entries for today, yesterday, or any date",
      "story": "A Proof of Concept of a personal journal built as a command line tool",
      "stack": [
        "go",
        "gemini:Gemini 2.5 Pro",
        "neovim"
      ],
      "status": "shipped",
      "tags": [
        "cli"
      ],
      "url": null,
      "githubUrl": "https://github.com/juancrfig/anima",
      "private": false
    },
    {
      "name": "contacty",
      "date": "2025-10",
      "description": "Contact manager with overview, favorites, and card actions",
      "story": "The end-of-course project at Globant. I got assigned to the Frontend Path. I started coding this project manually but ended up using LLMs to fix some bugs and create some tricky visuals on the frontend that I was having difficulty with. I learned how painful was wiring up a Google login.",
      "stack": [
        "react",
        "next",
        "python",
        "gemini:Gemini 2.5 Pro",
        "vscode"
      ],
      "status": "shipped",
      "tags": [
        "web"
      ],
      "url": "/projects/contacty",
      "githubUrl": "https://github.com/juancrfig/contacty",
      "private": false
    },
    {
      "name": "dataForge",
      "date": "2025-09",
      "description": "Proof-of-concept ETL pipeline: migrate historical files to RDS, batch-ingest via FastAPI, backup and restore with Parquet",
      "story": "Built during my internship at Globant. I got assigned a friendly Senior Data Engineer tutor and she recommended me to build this. I learned that programming is more than creating websites or console programs.",
      "stack": [
        "python",
        "docker",
        "sql",
        "gemini:Gemini 2.5 Pro",
        "vscode"
      ],
      "status": "shipped",
      "tags": [
        "data"
      ],
      "url": null,
      "githubUrl": "https://github.com/juancrfig/dataForge",
      "private": false
    },
    {
      "name": "autoQuery",
      "date": "2025-02",
      "description": "VS Code extension that turns a selected HTML element into a querySelector variable",
      "story": "Absolutely coded by leveraging LLMs. I noticed that creating JavaScript variables for HTML elements was very time-consuming (or I was very slow at typing?), so I decided to create an extension to automate this process. It got 75 installs!",
      "stack": [
        "typescript",
        "chatgpt:GPT-4o mini",
        "vscode"
      ],
      "status": "shipped",
      "tags": [
        "tool"
      ],
      "url": "https://marketplace.visualstudio.com/items?itemName=JuanFigueroa.autoquery",
      "githubUrl": "https://github.com/juancrfig/autoQuery",
      "private": false
    },
    {
      "name": "weatherApp",
      "date": "2025-02",
      "description": "Minimal weather site that looks up cities via the Visual Crossing API",
      "story": "I started to learn what APIs are and how to use them. I was still coding by hand, but letting loose AI on my last commit so I could see its changes and learn something.",
      "stack": [
        "html",
        "css",
        "javascript",
        "python",
        "claude:Claude 3.5 Sonnet",
        "vscode"
      ],
      "status": "shipped",
      "tags": [
        "web"
      ],
      "url": "https://juancrfig.github.io/weatherApp/",
      "githubUrl": "https://github.com/juancrfig/weatherApp",
      "private": false
    },
    {
      "name": "calculator",
      "date": "2025-01",
      "description": "Browser calculator with the four operations, coded by hand then finished with Claude",
      "story": "I tried to do this project again coding by hand. At the end I had some stubborn bugs, so I decided to give it a try to a new LLM called \"Claude\". I was amazed, and started to take more seriously the potential of using AI to accelerate productivity.",
      "stack": [
        "html",
        "css",
        "javascript",
        "claude:Claude 3.5 Sonnet",
        "vscode"
      ],
      "status": "shipped",
      "tags": [
        "web"
      ],
      "url": "https://juancrfig.github.io/calculator/",
      "githubUrl": "https://github.com/juancrfig/calculator",
      "private": false
    },
    {
      "name": "etch-a-sketch",
      "date": "2025-01",
      "description": "Mouse-drawn Etch-a-Sketch grid with hover and random colors",
      "story": "A simple Etch-a-Sketch style drawing app where you can sketch using your mouse. Coded by hand. This was particularly fun to develop. I remember thinking on the hover condition for each square, and using random numbers to produce the colors.",
      "stack": [
        "html",
        "css",
        "javascript",
        "vscode"
      ],
      "status": "shipped",
      "tags": [
        "web"
      ],
      "url": "https://juancrfig.github.io/etch-a-sketch/",
      "githubUrl": "https://github.com/juancrfig/etch-a-sketch",
      "private": false
    },
    {
      "name": "jarvis",
      "date": "2025-01",
      "description": "Jarvis v1: Linux CLI program that configures Git, wipes session traces, fills forms, and runs local LLMs",
      "story": "My first tool to automate something. It configures your Git files, erases evidence of anything about you, fills an online form, and runs local LLMs on the bootcamp's Linux computers (all without sudo but it brought some problems).",
      "stack": [
        "linux",
        "bash",
        "python",
        "chatgpt:GPT-4o mini",
        "vscode"
      ],
      "status": "shipped",
      "tags": [
        "cli",
        "ml/ai"
      ],
      "url": null,
      "githubUrl": "https://github.com/juancrfig/jarvis",
      "private": false
    },
    {
      "name": "passGenerator",
      "date": "2024-11",
      "description": "Browser password generator with length and character-set controls",
      "story": "A personal project I took the initiative to build because I wanted to improve my Javascript skills. Coded by hand, I was still fighting against LLMs (they were not too good yet anyways).",
      "stack": [
        "html",
        "css",
        "javascript",
        "claude:Claude 3.5 Sonnet",
        "vscode"
      ],
      "status": "shipped",
      "tags": [
        "web"
      ],
      "url": "https://juancrfig.github.io/passGenerator/",
      "githubUrl": "https://github.com/juancrfig/passGenerator",
      "private": false
    },
    {
      "name": "wedding-page",
      "date": "2024-10",
      "description": "One-page wedding photography site, HTML and CSS written by hand",
      "story": "The first frontend project during the bootcamp. I forced myself to code the HTML and CSS by hand, it was stressing but rewarding once I got some practice.",
      "stack": [
        "html",
        "css",
        "vscode"
      ],
      "status": "shipped",
      "tags": [
        "web"
      ],
      "url": "https://juancrfig.github.io/wedding-page/",
      "githubUrl": "https://github.com/juancrfig/wedding-page",
      "private": false
    },
    {
      "name": "sisgesa",
      "date": "2024-09",
      "description": "CLI attendance system for a fake school: groups, modules, students, teachers, and reports",
      "story": "The first project I built when I enrolled in a Full Stack Development Bootcamp. A CLI program for a fake school to track attendance and more. Here I learned that you first focus on the functionality, and then in the aesthetics. I shipped a good-looking but buggy project.",
      "stack": [
        "python",
        "vscode"
      ],
      "status": "shipped",
      "tags": [
        "cli"
      ],
      "url": null,
      "githubUrl": "https://github.com/juancrfig/SISGESA",
      "private": false
    },
    {
      "name": "hangman",
      "date": "2024-05",
      "description": "CLI hangman with four difficulty levels and ASCII stages",
      "story": "From Harvard's CS50, this was my first coding project. It was fun, challenging, and written by hand.",
      "stack": [
        "python",
        "vscode"
      ],
      "status": "shipped",
      "tags": [
        "cli"
      ],
      "url": null,
      "githubUrl": "https://github.com/juancrfig/hangman",
      "private": false
    }
  ],
  "project_stats": {
    "total": 30,
    "shipped": 12,
    "building": 3,
    "paused": 14,
    "abandoned": 1
  },
  "writing": {
    "posts": [
      {
        "slug": "an-engineering-mindset",
        "title": "an-engineering-mindset",
        "date": "2026-09-21",
        "tags": [],
        "readTime": "3 min",
        "excerpt": "",
        "url": "/blog/an-engineering-mindset"
      }
    ],
    "rss": "/blog/rss.xml",
    "total_posts": 1
  },
  "learning": {
    "current_focus": "AI agent harnesses, LLMOps, networking fundamentals, RAG",
    "vault": {
      "learned_count": 98,
      "zettelkasten_count": 2,
      "total_notes": 100,
      "recently_learned": [
        "eBPF Ring Buffers",
        "Agent Harness",
        "Agentic Loop",
        "Context Engineering",
        "Context Window",
        "MCP",
        "e2e test",
        "execution harness"
      ]
    },
    "books": [
      {
        "id": "A Philosophy of Software Design.md",
        "title": "A Philosophy of Software Design.md",
        "author": null,
        "progress": null,
        "deadline": null,
        "tags": []
      },
      {
        "id": "Artificial Intelligence - A Guide for Thinking Humans.md",
        "title": "Artificial Intelligence - A Guide for Thinking Humans.md",
        "author": null,
        "progress": null,
        "deadline": null,
        "tags": []
      },
      {
        "id": "Linux and the UNIX Philosophy.md",
        "title": "Linux and the UNIX Philosophy.md",
        "author": "Mike Gancarz",
        "progress": "47/249",
        "deadline": "30/09/2026",
        "tags": [
          "active"
        ]
      },
      {
        "id": "Peopleware - Productive Projects and Teams.md",
        "title": "Peopleware - Productive Projects and Teams.md",
        "author": null,
        "progress": null,
        "deadline": null,
        "tags": []
      },
      {
        "id": "The Mythical Man-Month - Essays on Software Engineering.md",
        "title": "The Mythical Man-Month - Essays on Software Engineering.md",
        "author": null,
        "progress": null,
        "deadline": null,
        "tags": []
      },
      {
        "id": "The Pragmatic Programmer.md",
        "title": "The Pragmatic Programmer.md",
        "author": "Andy Hunt, Dave Thomas",
        "progress": "92/497",
        "deadline": "30/09/2026",
        "tags": [
          "active"
        ]
      }
    ],
    "certificates": [
      {
        "id": "Cloud Practitioner.md",
        "title": "Cloud Practitioner.md",
        "author": "AWS",
        "progress": "1/100",
        "deadline": "31/10/2026",
        "tags": [
          "active"
        ]
      }
    ]
  },
  "site": {
    "routes": [
      {
        "path": "/",
        "url": "https://juanes.garden/",
        "purpose": "Home — hero, bio, reading, certs"
      },
      {
        "path": "/projects",
        "url": "https://juanes.garden/projects",
        "purpose": "30 projects grid — shipped/building/paused"
      },
      {
        "path": "/blog",
        "url": "https://juanes.garden/blog",
        "purpose": "Long-form MDX from vault"
      },
      {
        "path": "/vault",
        "url": "https://juanes.garden/vault",
        "purpose": "Zettelkasten — learned + zettel notes"
      },
      {
        "path": "/setup",
        "url": "https://juanes.garden/setup",
        "purpose": "Gear, OS, editor, LLM toolchain"
      },
      {
        "path": "/how-this-works",
        "url": "https://juanes.garden/how-this-works",
        "purpose": "Interactive CI/CD pipeline"
      },
      {
        "path": "/llms.txt",
        "url": "https://juanes.garden/llms.txt",
        "purpose": "LLM crawl manifest"
      },
      {
        "path": "/llms-full.txt",
        "url": "https://juanes.garden/llms-full.txt",
        "purpose": "Full RAG dump"
      },
      {
        "path": "/api/me",
        "url": "https://juanes.garden/api/me",
        "purpose": "This JSON profile"
      },
      {
        "path": "/blog/rss.xml",
        "url": "https://juanes.garden/blog/rss.xml",
        "purpose": "RSS feed"
      },
      {
        "path": "/sitemap.xml",
        "url": "https://juanes.garden/sitemap.xml",
        "purpose": "Sitemap"
      }
    ]
  },
  "meta": {
    "generated_at": "2026-10-19T07:42:41.076Z",
    "site": "https://juanes.garden",
    "adr": "docs/adrs/ADR-AGENT-PARSEABLE-WEBSITE.md",
    "version": "1.0-pareto",
    "note": "This site is optimized for AI agent reading. All content SSR and crawlable. See /llms.txt and /llms-full.txt."
  }
}