Skip to content
Available for projects

I build software that runs restaurants

Full-stack developer based in Lleida, Spain. I own the whole cycle, from the first meeting to deployment, and I stay on for support after launch.

TypeScriptNext.jsReactNode.jsPostgreSQLPrismaDrizzleRedisBullMQStripe ConnectTypeScriptNext.jsReactNode.jsPostgreSQLPrismaDrizzleRedisBullMQStripe ConnectTypeScriptNext.jsReactNode.jsPostgreSQLPrismaDrizzleRedisBullMQStripe ConnectTypeScriptNext.jsReactNode.jsPostgreSQLPrismaDrizzleRedisBullMQStripe Connect
RedsysExpoCapacitorMapboxDockerPlaywrightVitestTurborepoMCPClaude APIRedsysExpoCapacitorMapboxDockerPlaywrightVitestTurborepoMCPClaude APIRedsysExpoCapacitorMapboxDockerPlaywrightVitestTurborepoMCPClaude APIRedsysExpoCapacitorMapboxDockerPlaywrightVitestTurborepoMCPClaude API

● In production, with real users

apps in production
+
orders a month on Vialika
~
commits on a single product
+
attendees at one QuickVoucher event
native apps on the App Store and Google Play
01Selected work

Systems that can't go down

01 / 04Restaurant operations

Vialika

Online ordering, kitchen, delivery, inventory and driver settlement in one system. ~500 orders a month in production.

  • Web store and WhatsApp Flows ordering on the same pricing, coupon and offer engine
  • Real-time front desk and kitchen screens, with delivery times estimated from the queue
  • Native driver app with background GPS, Mapbox turn-by-turn and an offline queue
  • Custom print agent replacing QZ Tray: every printer in the venue, with retries
  • Inventory with suppliers, delivery notes, stock counts, waste and per-dish recipe costing
  • Daily close to Holded, geofenced clock-in with rotating QR, AI assistant with permission-scoped SQL
Next.jsPrismaCapacitorMapboxRedsysPlaywrightDocker
Cocina · Impresora 2
VIALIKA#0427
1×Quattro formaggi
2×Coca-Cola
REPARTO21:49
02 / 04Time-tracking SaaS

Gremial

Multi-tenant SaaS for Spanish time-tracking law. Two apps on the App Store and Google Play, tamper-proof audit trail.

  • Turborepo monorepo: REST API, company panel, internal admin, public site and an Expo native app
  • GPS geofence clock-in, a kiosk tablet with single-use QR codes, and offline mode that syncs later
  • Double acceptance: every correction is a proposal from the company that the employee accepts
  • Shift planner, absences, labour-agreement alerts and a monthly report in PDF, Excel and CSV
  • Temporary read-only access for labour inspectors
  • Stripe billing and a public demo that spins up a company per visitor and deletes it two hours later
TurborepoExpoNode.jsPostgreSQLStripeVitest
✓
Entrada registrada · 08:00:12
Dentro de zona · 18 m
QR · 30s
03 / 04Event ticketing

QuickVoucher

Multi-tenant ticketing platform. Selling access to a 2,000-attendee event in November 2026.

  • A store per organiser on their own subdomain, with an embeddable widget for their site
  • Tickets, season passes and paid guest lists
  • Stripe Connect with separate charges & transfers and batched payouts to each organiser
  • A virtual waiting room for the highest-demand on-sale moments
  • Background jobs with BullMQ and Redis
  • PWA and native scanners that validate QR tickets at the door, even offline
Next.jsStripe ConnectBullMQRedisCapacitorPWA
Acceso · Puerta A
1284 / 2.000
QuickVoucher
Festa Major 2026
14 NOV · 22:00 · General
QV-8F2K-91XA
Ruben L.
VÁLIDA ✓
04 / 04Ride-hailing fleet ops

Luxxo

Management panel for an electric ride-hailing fleet in Barcelona: 24/7 telemetry, licences, GPS-matched fines and invoicing.

  • 24/7 daemon over the SOAP tracking API, with an in-house history that can be recomputed
  • Live map, trips, utilisation and driving style per vehicle
  • VTC licences and driver assignments with their validity
  • Fines matched by GPS to whoever was driving the car at the time
  • In-house invoicing and PDF/CSV reports
  • AI assistant on a read-only database role
Next.jsPrismaPostgreSQLSOAPLeafletDocker
Private projectCase study→
VTC 4821 · Tesla Model 3
km/h32batería78%señalSOAP ● live
Uber …
Cabify …
Bolt …
02More work

And other projects

03Lab

What I build when nobody's asking

claude · google-ads-mcp

Google Ads MCP

A Python MCP server that lets Claude audit and manage Google Ads, Business Profile, Search Console and GA4. Google validates every change, and nothing is applied without confirmation.

● lost friendyou ●

Festival Locator

A people-finder for festivals with no phone coverage: ESP32, 868 MHz LoRa mesh and GPS. Currently in phase 0, validating the hardware.

04How I work

From first coffee to production

012345678/08
  1. 01 Requirements

    I sit with the people who use the system, not just the ones paying.

  2. 02 Data model

    Get the schema right and everything else gets simpler.

  3. 03 Backend

    APIs, permissions, multi-tenancy, queues, integrations.

  4. 04 Frontend

    Fast interfaces for people in a hurry.

  5. 05 Mobile

    Expo or Capacitor, shipped to the stores.

  6. 06 Testing

    Unit, API smoke and Playwright end-to-end.

  7. 07 Deploy

    Docker, VPS, Cloudflare Tunnel.

  8. 08 Support

    Still around when something breaks on a Saturday night.

05Experience

Where I've been

2024 —01
Autónomo · Lleida · Remoto

Freelance Full-Stack Developer

I design, build, deploy and maintain production apps for small and mid-sized businesses. 10+ apps with real users.

2024 —02
CSB-System · Lleida

ERP Consultant

Implementing CSB-System for food manufacturing and logistics: production, QA and cutting/deboning. Integrations via flat files and web services.

2022 — 2303
eCityclic · Lleida

Web Developer

Joined as an intern, then hired. Websites on Plone 4, 5 and 6, frontend work and technical docs.

202204
Comcubed · Derry, UK

Web & IT (internship)

Designed and built the company website; hardware and software support.

06About

I did the jobbefore coding it

Before writing code I delivered pizzas, ran shifts and waited tables in Denver and Austin. That's why I build software for the people who use it every day: the driver in a hurry, the manager closing out the till, the mechanic clocking in with greasy hands.

Spanish · nativeCatalan · nativeEnglish · fluent
Ruben Lechosa, full-stack developer
Ruben LechosaLleida
Places I've lived and worked
Lleida
Derry
Denver
Austin
4 cities3 countries2 continents
Home Lived
07Contact

Got a process that lives in a spreadsheet, a WhatsApp group and someone's head? That's exactly the kind of problem I like to solve.