José Ulate — software engineering, independently from Costa Rica
José Ulate Independent · Cartago, Costa Rica

Some problems don't get solved by adding engineers.

Data that will not fit a schema. An LLM feature that was fine in the demo and is not fine under load. A pipeline that costs more every month than it did the last. A question nobody has yet framed precisely enough to have an answer.

I take those on, as a one-person practice registered in Costa Rica for the export of software services. The person you talk to is the person who does the work.

17 years engineering · RAG and LLM systems in production · Backcountry · Route · Thoropass · MSc Computer Science · MSc Applied Mathematics, in progress · Spanish and English

What I take on

Five problems, described the way they usually arrive.

01

“We have the data. We can't use it.”

Text, documents or records that carry real information and no schema that fits them. At Route I built the clustering that turned unstructured merchant data into reusable templates — locality-sensitive hashing, tokenization, a spatial index over text, a combinatorial search on top — and the Spark pipelines on Databricks to run it at volume. Deduplication, entity resolution and search over messy text are the same family of problem, and they respond to the same tools.

02

“We built the demo. It falls over in production.”

Anyone can get a retrieval-augmented prototype answering questions in an afternoon. Keeping it standing is a different job: concurrency, rate limits that differ per provider, retries that do not stampede, and token accounting precise enough to tell you what a feature actually costs before the invoice does. At Thoropass I designed and built these pipelines end to end — the vector store on pgvector, the retrieval layer, the integration across GPT-4 and 5, Gemini 3 and Claude Opus 4 and 5, and the load control and accounting underneath. Retrieval quality is a data problem before it is a model problem, which is the half most teams skip.

03

“It worked fine last year.”

The job was comfortable at a tenth of the data. Now the batch window is missed and the bill grows faster than the traffic does. Usually the cause is access patterns that stopped matching the queries, or a design decision that was correct three years ago and has not been revisited since. This work is unglamorous and it is where the money usually is.

04

“We need this secure, and we can't rewrite it.”

I designed and built the company-wide role-based access control at Thoropass, alongside multi-factor authentication, dependency and vulnerability remediation, and database routing so tenants cannot reach each other's data. Access control is the kind of thing nobody budgets for at the start and everybody needs by the middle — and it is far cheaper to design once than to retrofit twice.

05

“We're not even sure what to ask.”

Sometimes the blocker is not the code — it is that the question has not been posed in a form that admits an answer. This is the cheapest point at which to fix a project and the easiest one to skip past. I am comfortable working here, and I will tell you when I think the approach is wrong before it gets built.

Why the mathematics is on this page

Most engineering problems have a known recipe. The ones worth hiring for don't.

A mass spectrum gives you the weights of the fragments. It does not give you the order they were in.

That was my master's thesis: de novo peptide identification. Many orderings are consistent with the same evidence, and the search space grows faster than any amount of patience. I approached it structurally — applying topological analysis to change the shape of the problem, rather than widening the search and buying more compute.

That is the same move as most of the work above. When the obvious approach does not scale, the useful question is rarely “how do we run it faster” and usually “what is this problem actually shaped like”. I am reading for a second master's, in applied mathematics, for exactly that reason — and the instinct came from six months at the Karolinska Institutet in Stockholm doing statistical analysis of ChIP-seq experiments, which is the shortest line on my CV and the one that decided the rest of it.

2024 — present Magister Scientiæ, Applied Mathematics Universidad de Costa Rica
2018 Magister Scientiæ, Computer Science Instituto Tecnológico de Costa Rica · Read the thesis
2009 Bachelor of Engineering, Computer Engineering Instituto Tecnológico de Costa Rica, Cartago

Track record

Seventeen years, mostly on systems where the data was the hard part.

Each peak is an engagement; its height is how long it ran. The short red one is six months in Stockholm — the smallest peak on the chart and the one that set the direction of the rest.

Thoropass — platform and data engineering

December 2022 — present · remote from Costa Rica

Shared Services. Designed and built the company-wide role-based access control, and the retrieval-augmented generation pipelines end to end — vector store on pgvector, retrieval layer, the integration across GPT-4 and 5, Gemini 3 and Claude Opus 4 and 5, and the load control, concurrency and token accounting they run on. Alongside that: version upgrades across Python, Django and Graphene, vulnerability remediation, database routing for performance and tenant isolation, and multi-factor authentication.

Python 3.10 · Django · Graphene · PostgreSQL · AWS · RDS · PostgreSQL · pgvector · Okta · RAG · LLM APIs

Route — Senior Software Engineer

October 2021 — December 2022 · remote from Costa Rica

Data Comprehension. Clustering techniques that build templates out of unstructured data — both the algorithms and the infrastructure to run them.

Scala · Spark · Databricks · Go · AWS · RDS · SQS · CloudWatch

Backcountry — Senior Software Engineer

January 2015 — October 2021 · San José

Marketing and Merchandise Technologies. Content management, email service provider and ERP integrations; data analysis and distribution. Almost seven years, which is long enough to watch your own decisions age.

Java · Scala · Python · Spring Boot · Tomcat · Maven · Jenkins · Oracle · PostgreSQL · MongoDB · GCP

Hewlett Packard — Systems / Software Engineer

January 2012 — December 2014 · R&D Center, Heredia

Embedded Linux in C and C++. Firmware for MSM v6 wireless controllers and access points — the layer where a memory leak is a field return, not a restart.

C · C++ · SQLite · Make · Linux · wireless networking

Artinsoft Migrations — Consultant and Researcher

January 2009 — December 2011 · San José

Migrating source code between languages, and prototyping new migration targets. A first job spent reading other people's programs very closely, which turned out to be the right training.

.NET · VB6 · JavaScript · automatic code generation · TFS · SVN

How this works

One person, which is the point — and a short list of things I don't do.

Engagements run under my own registered activity in Costa Rica, for the export of software services. There is no account manager, no bench, and no handover to someone junior once the contract is signed. I work remotely and have done since 2021, in Spanish or English.

I am a Certified ScrumMaster and have spent enough years inside delivery teams to treat process as a tool rather than a belief. I will tell you when I think an approach is wrong before it is built, and I am comfortable owning a problem end to end, including the parts nobody scoped.

What I don't take

Design, front-end-only work, or marketing sites. If that is what you need, I would rather say so now than three weeks in.

Start here

me@julatec.name

Write with a description of the problem — the messier the better, since the framing is usually part of the work. If it is a fit I will say so, and if it is not I will try to point you somewhere better.