AI Software Architect

AI, computer vision and data-at-scale systems, from architecture to production.

L'Hospitalet de Llobregat (Barcelona) · Remote
Edgar Alarcón
About

From idea to production.

AI Software Architect in Barcelona. What defines me is taking an idea all the way to production: complex architecture, pioneering R&D and product that works in the real world, not in a demo.

  • Where I come from: electronics, robotics and 3D vision
  • Where I am strong: industrial-scale computer vision
  • Where I am heading: agentic AI and massive data
Experience

Where I have worked

Currently

Co-founder & Tech Lead

Baboon Technologies

2024 – present

I co-founded Baboon Technologies, whose flagship product is SVInvesting. I lead the software architecture, deployments, batch jobs and monitoring, plus the infrastructure (Proxmox, Docker) and the scaling of its 5 TB+ database.

AI Software Architect & Consultant

Freelance

2021 – present

End-to-end consulting and product development (applied AI, backend and infrastructure) for clients. The umbrella under which I co-founded Baboon Technologies and Rackety TV.

Previously

Software Architect & Tech Lead

Infinity Neural

2017 – 2024

Over six years at Infinity Neural across two phases: from Computer Vision developer and architect to the team’s Tech Lead.

  1. Tech Lead & Software Architect Jul 2022 – Apr 2024 · Full-time

    I led the production rollout of a Computer Vision system across 200+ servers, plus the team’s technical leadership, architecture, scaling and monitoring.

  2. Software Architect & Computer Vision Developer Nov 2017 – Jul 2022 · Full-time

    Architecture and development of the Computer Vision core: real-time computer vision systems for object detection and tracking.

VR & Robotics Developer

Altran · Barcelona

2017 · 9 months

VR and robotics proofs of concept for the Barcelona showroom: robot code in C and virtual-reality environments in Unity/C#, including remote control of a robotic arm from VR over WebSockets.

Robotics & Computer Vision Researcher

Univ. der Bundeswehr München · Munich, Germany

Sep 2016 – Jan 2017

Final degree project: research in 3D computer vision and robotics. I developed the object and distance detection algorithm and the camera-robot synchronization for grasping with a robotic arm.

Projects

Selected work

Baboon Technologies 2024 – present

SVInvesting

PythonPolarsPostgreSQLFastAPIProxmox

A systematic value investing platform that values 60,000+ companies a day over a 5 TB+ database.

The problem
Methodically and systematically valuing every company in the market at once, with daily recomputation on price changes plus quarterly/annual reports, without the system buckling.
Stack decision
Re-architecting the stack from MySQL to PostgreSQL and from Pandas to Polars to make real-time computation viable; billion-row tables with a partitioning scheme to optimize queries.
The technical challenge
Designing a generic data module that generalizes to any asset type and its edge cases (different markets, reporting frequencies) over a 5 TB+ database.
Impact
Real-time daily valuation of 60,000+ companies on a dedicated server with 300+ GB of RAM and 10+ TB of disk. The backbone of Baboon Technologies’ investment fund.
Rackety TV 2023 – Jun 2025

WhatsApp booking chatbot for clubs

LLMToolingWhatsAppAgentes

A WhatsApp chatbot that lets any club member manage their bookings by chatting, powered by an LLM and tooling.

The problem
Give any club user a natural way to book courts, check when the next ones are free or do any booking task, without apps or forms.
Stack decision
An LLM + tooling (function calling) mechanism: the model interprets the natural-language conversation and calls tools that query and operate the club’s booking system, all over WhatsApp.
The technical challenge
Turning free-form requests ("when can I play tomorrow afternoon?") into reliable actions on the booking system — resolving availability, slots and confirmations inside the chat itself.

AI sports video analytics — Rackety

Demo de la analítica de vídeo de Rackety
PythonYOLO PoseComputer VisionRunPodMultithreading

Gesture-based highlight detection and player heatmaps from each match’s footage.

The problem
Automatically extracting a match’s best moments and player analytics from already-recorded footage, optimizing cost and processing time.
The technical challenge
Telling the chosen highlight gesture (raised arms) apart from similar in-game moves (smashes, volleys): an algorithm over the joints (YOLO Pose) that catches true positives without adding false ones.
Impact
Processed with GPU workers on RunPod to optimize cost and time, with a strong focus on multithreading.

Edge streaming & recording app for clubs

NUCRTMPSNGINXWireGuardEdge computing

An edge device (NUC/Raspberry) in each club that streams, records and uploads video, orchestrated over VPN.

The problem
Efficiently live-streaming and recording each club’s video, uploading it to the platform and knowing what every NUC should do at any moment.
The technical challenge
Building the VPN architecture (OpenVPN → WireGuard) and a centralized RTMPS server with NGINX to remotely monitor camera and process connectivity in each club.
Freelance 2021 – present

Chat Engine

PythonLangGraphRAGpgvectorMCP

A multi-client agentic chat engine with RAG, external tools and generative BI, isolated per client.

The problem
Give each client an assistant that answers any question about their documents and data, connects to their tools and generates charts and dashboards, while keeping data isolated.
Stack decision
FastAPI + LangChain/LangGraph, RAG indexing with pgvector and Cohere Rerank, orchestration of several LLMs by quality/price (OpenRouter, Gemini, Deepseek) and tools via MCP/FastMCP. Fully traceable with Langfuse.
The technical challenge
During indexing, automatically clustering information, detecting discrepancies and allowing manual curation; and isolating data by project_id in a reusable multi-tenant engine.
Impact
A reusable engine in production for several clients (financial Q&A, margin and profitability monitoring with charts).

PrismaRiders

PrismaRiders
Next.jsFastAPIPostgreSQLStripeOpenRouteService

A platform for at-home therapists with a slot optimizer that minimizes travel and waiting time.

The problem
Cutting travel and waiting time for at-home therapists, bringing several roles (therapists, patients, centers, guardians, admin), clinical records, calendar and payments into a single platform.
Stack decision
Next.js/React + FastAPI/SQLAlchemy on PostgreSQL; Stripe (recurring payments and Connect), Google Calendar (two-way sync) and OpenRouteService for real distances/times.
The technical challenge
The slot optimizer: it scores (0–100) each therapist’s gaps and places every patient in the best one using real locations, penalizing dead waiting time and travel.

Ecosystem infrastructure & observability

DokployDockerTraefikCloudflareUptime Kuma

The cross-cutting infrastructure that orchestrates, deploys and monitors every service and project.

The problem
Managing multiple services and platforms in a reproducible, well-monitored way, with continuous deployment, backups and alerts.
Stack decision
Dokploy + Docker for orchestration, Traefik as reverse proxy, DNS on Cloudflare, WireGuard VPN, SSH tunnels with socat, daily S3 backups and job monitoring with Uptime Kuma plus centralized observability.
Infinity Neural 2017 – 2024

Remote diagnosis & repair MCP

MCPLLMAgentesRedesLoad balancing

An MCP that navigates the 250+ server ecosystem to diagnose and fix remote incidents with the power of LLMs.

The problem
Diagnosing and fixing incidents across a 250+ server ecosystem where many resources are only reachable by hopping through the network: cameras accessible only from their remote server, and local databases with temporary data on each server.
Stack decision
An MCP (Model Context Protocol) that exposes tools to the LLM to navigate the network of servers and load balancers, inspect remote servers and cameras, query the local databases and apply fixes, on top of the video-analytics ecosystem’s 443 reverse-proxy/load-balancing architecture.
The technical challenge
Reaching deeply nested resources (cameras and local DBs only accessible by hopping server to server through the load balancers) and exposing that navigation as reliable tools so the LLM can diagnose and repair autonomously.
Impact
Monitoring and diagnosis of a 250+ server production ecosystem, speeding up the resolution of errors on remote servers and cameras.

Crowd-counting system

C++CUDAYOLOOpenCVMultithreading

The first crowd-counting system homologated by the Spanish Metrology Center, with >99% accuracy and real-time multi-camera fusion.

The problem
Certifiably accurate crowd counting in massive venues (trade fairs, casinos, street festivals), where a single camera can’t cover wide entrances and overlap between cameras causes double counting.
Stack decision
Python prototype (YOLOv2 + a custom tracking algorithm) rewritten in C++ with CUDA to scale performance; multithreading to process many cameras on a single GPU.
The technical challenge
Fusing and synchronizing up to 12 aligned cameras in real time into a single view where analytics run, with fine overlap configuration so the same person is never counted twice.
Impact
Over 99% accuracy homologated by the Spanish Metrology Center — the first certified counting system. Robust with up to 200 people under a single camera (San Fermín festival).

Access & platform analytics — Renfe

Computer VisionC++Multicámara

Turnstile counting, fraud detection and platform occupancy deployed across the entire Renfe network.

The problem
Monitoring accesses and platforms across an entire rail network: turnstile counting, fraud (two people at once, jumping the gate), people carrying objects, track intrusions and occupancy.
Impact
Deployed across the whole Renfe network and periodically audited by the client, recurrently validating its accuracy.
Univ. der Bundeswehr München Sep 2016 – Jan 2017

Object tracking & grasping with a 3D camera + robotic arm

C++OpenCVPCLCinemática inversaOdometría

Final degree project: a 3D camera and a robotic arm that detects an object, approaches it and grabs it.

The problem
Assembling a 3D camera with a motorized robotic arm and a vision algorithm to detect an object and its distance, follow it, approach and grab it automatically.
The technical challenge
The 3D camera loses depth below 0.5 m; solved by interpolating with wheel odometry to estimate position in the near range, plus the arm’s inverse kinematics.
Other projects

Drug dispenser prototype — Valls Hospital

ArduinoElectrónicaJavaMySQL

An electromechanical dispenser that logs and authorizes morphine extraction via fingerprint.

The problem
In an emergency, staff took morphine products without leaving a record; regulators penalized this because everything had to be logged.
The technical challenge
Coordinating a full electromechanical system: an Arduino board with sensors across 40 slots, a stepper motor, a servo-driven hatch and a fingerprint reader, all tied to a tablet (Java app + MySQL).
Education & languages

Education

  • Master's in Data Science Univ. Oberta de Catalunya (UOC) · 2019 – 2021
  • BEng Industrial Electronics & Automation Univ. Politècnica de Catalunya (UPC) · 2012 – 2017

Languages

  • Spanish Native
  • Catalan Native
  • English B2/C1
Contact

Got something in mind?

Drop me a line and we talk. I answer projects, collaborations and technical questions.