JOSEMI

/xo'se.mi/

AI & Backend Engineer

Python · LLM Systems · Backend · Cloud

I'm an AI Engineer at Sngular. I build production LLM systems in Python on GCP: document extraction with Gemini, evaluation against golden datasets, human-in-the-loop feedback, and the event-driven backends that run them.

Before that, I spent five years on backend and cloud: a permissions platform for a major Spanish bank at Intelygenz, and Kubernetes and AWS infrastructure for Wazuh's SaaS.

I also co-build Arche, run Magua, a web studio in Lanzarote, and lead technology at Tinasoria Consulting.

Experience

  1. Oct 2024 — Present

    Sngular · Senior Software Engineer / AI Engineer

    Main developer of the document pipeline below. Earlier, a multi-agent proof of concept with Google ADK and client migrations to GCP with Terraform and Cloud Run.

    Stack: Python, Gemini, Vertex AI, Google ADK, Kafka, MongoDB Atlas, GCP, Terraform

  2. Mar 2022 — Oct 2024

    Intelygenz · Backend Developer

    The only backend engineer on a three-person team building a permissions platform for a major Spanish bank, used by more than 1,000 people.

    Stack: Python, FastAPI, PostgreSQL, MongoDB, NATS, GCP

  3. Feb 2019 — Mar 2022

    Wazuh Inc. · Cloud Computing Engineer / Backend Engineer

    Built and operated Wazuh Cloud, described below, and was the main backend engineer for its console. Most of what I know about Kubernetes and the cloud, I learned here.

    Stack: Python, Flask, AWS, Kubernetes, Docker

How things work

Each project comes with a small map of how it actually runs. It walks through the steps on its own; pick one to stop on it.

Document pipeline

Main developer · Sngular · Sep 2025 — Present

An LLM pipeline that reads financial documents for a fund distribution platform. It runs in production and handles hundreds of documents a day.

Stack: Python, Gemini, Vertex AI, Kafka, MongoDB Atlas

Document in event stream Extraction LLM, structured Validation second LLM pass Learning prompt hints Quality gate risk score Human review editors correct Published clean results
Document pipeline, simplified
  1. Each financial document enters as an event on a stream, so the services that read it, check it and learn from it stay independent.

  2. One LLM pass extracts every field into a fixed schema. A second pass checks the result against the source before anything moves on.

  3. A weighted risk score, tested against a golden set of annotated documents, decides what publishes on its own and what goes to a person.

  4. Editors' corrections turn into versioned prompt hints. A person approves them before they reach extraction, so the pipeline improves without retraining a model.

Arche

Co-founder · Peaberry Studio · Jan 2026 — Present

An open-source AI agent platform I co-build with Alberto Perdomo and Iñaki Tajes. Teams get specialized agents with shared knowledge, self-hosted or on the desktop. I work mostly on the backend.

Stack: TypeScript, Next.js, PostgreSQL, OpenCode SDK, Podman

User browser Next.js BFF auth, API routes Spawner Podman via proxy Git KB reviewed changes Workspace OpenCode, per user Connectors MCP, encrypted LLM gateway keys server-side
Arche request and workspace flow
  1. The Next.js backend asks a spawner to start a separate OpenCode container for each user through Podman, with the knowledge base mounted inside.

  2. Workspaces call models through an internal gateway that adds the provider credentials on the server, so keys never live inside the container.

  3. Integrations such as Linear, Notion or Slack are stored encrypted and reach the agents as MCP servers.

  4. Agents only propose changes to the shared knowledge base. A person reviews and publishes them, file by file, to a git repository.

Wazuh Cloud

Cloud & Backend Engineer · Wazuh · Feb 2019 — Mar 2022

The managed version of Wazuh, an open-source security platform. Customers get their own hosted Wazuh without running it themselves. I built and operated its infrastructure and was the main backend engineer for its console.

Stack: Python, Flask, AWS, Kubernetes, Docker

Cloud Console customer web app Console API Python services Kubernetes on AWS Console data RDS Customer env isolated Wazuh Wazuh agents customer endpoints Archive S3 bucket
Wazuh Cloud, simplified
  1. Customers create and manage their environments from the Cloud Console. I moved its backend from a monolith to Python microservices.

  2. Each customer gets an isolated Wazuh environment running on Kubernetes on AWS, with resources sized for that customer.

  3. The customer's endpoints run Wazuh agents that enroll with their own environment and stream security events to it.

  4. Events stay searchable in the environment's dashboard and are also archived to S3 for long-term retention.

PodTap

macOS utility · Aug 2026

A menu-bar app that turns the button on USB-C EarPods into a reliable dictation switch.

Stack: Swift, IOKit, CoreGraphics

EarPods USB-C remote HID monitor seizes the device State machine idle ↔ dictating Dictation app Wispr, Superwhisper Key emitter CGEvent down/up
PodTap input flow
  1. The app takes exclusive hold of the EarPods remote, so macOS never treats a press as play or pause.

  2. Holding the button mutes the microphone, so a small tested state machine treats each press as a toggle.

  3. While dictating, the app keeps your chosen key held down until the next press, which is what dictation apps expect.

Tinasoria

Technology lead · Tinasoria Consulting · 2026 — Present

A Lanzarote consultancy for independent accommodation. I build the direct-booking sites, including Tinasoria Apartments and Villa Alcalde.

Stack: Astro, TypeScript, Vercel Functions, Google Sheets, Resend

Owners’ sheet every booking Availability free nights Booking page calendar + quote iCal feed fails closed Enquiry plain form POST Airbnb / Vrbo poll the feed Email to the owners
Tinasoria Apartments booking flow
  1. The owners keep every booking in a Google Sheet. The server reads it, so guests' names and phone numbers never reach the browser.

  2. If the sheet can't be read, the site calendar blocks nothing, while the Airbnb and Vrbo feeds fail closed, so a night is never wrongly freed.

  3. Guests send a plain form that works without JavaScript. It reaches the owners by email, priced by the same function as the page.

Side projects

  1. Jul 2026 — Present

    Moonglade · Native macOS app

    A quiet status indicator around the MacBook notch that tracks Claude Code, Codex and OpenCode sessions and takes you back to the terminal that needs attention. Swift, SwiftUI and Metal.

  2. Apr 2026 — Present

    WODFEST · Event registration backend

    A serverless backend for a fitness event: Stripe checkout and signed webhooks, server-side pricing, atomic seat reservations in Upstash and reconciliation against the organisers' sheet, with automated tests.

  3. Sep 2026 — Present

    Magua · Independent web studio

    A studio I run from Lanzarote, building fast, static websites with a clear visual point of view for local businesses.

Education

  1. 2015—2020

    Universidad de Granada · BSc in Computer Science

    Thesis: benchmarking NLP and machine-learning models to detect signs of depression and PTSD in Twitter data.