Experience

I build systems that let people ask questions of messy engineering data. This is the list version; the keepers in the village tell the same story at walking pace.


Things I've built

Astral

2025 · Semantic knowledge graph retrieval platform · full-stack

JLR's engineering knowledge lives in RDF graphs. The graph answers precise questions well; people rarely ask precise questions. Astral is the retrieval platform I built on Google Genkit to close that gap.

The core idea is vector search over embeddings of the OWL ontologies themselves. When a question is underspecified, the platform first works out which part of the graph it is about, then generates SPARQL against that. I also authored ontologies that brought parts databases and cross-business datasets into the graph, which is what made component dependency tracking and capacity planning possible.

Google Genkit ·RDF ·OWL ·SPARQL ·Jena Fuseki ·Vector search ·TypeScript

The coding agent

2025 · Agents · MCP integrations

Once Astral could retrieve the right context, the next step was letting it act. I integrated the GitLab and Jira MCP servers into the platform, which turned it into an internal coding agent: it pulls the relevant code across repositories, evaluates it against the ticket, and pushes updates back.

It is the work I am most drawn to. Multi-step workflows that cross tool boundaries and still have to be trustworthy at every step.

MCP ·GitLab ·Jira ·Genkit

Operational metrics

2024 – 2025 · Data · ETL

Core operational metrics were scattered across CSV exports and SQL databases in BigQuery. I built the ETL pipelines, orchestrated through GitLab, that ingest them and land clean tables for Tableau, so the numbers people make decisions from update themselves.

GitLab CI/CD ·GCP BigQuery ·SQL ·Tableau

Vehicle data tooling

2024 – 2025 · Phone-as-a-Key · CAN · internal tools

Phone-as-a-Key decides whether you mean to unlock the car from where your phone is. I extended its trilateration from 2D to 3D, which improved positional accuracy for the intention recognition model.

Evaluating corrupted CAN log runs was slow and one file at a time; I made it parallel across files, an 8x speed-up. I also refactored a WERS automation tool on Win32 APIs, a 4x per-sheet speed-up that ended its dependence on one maintainer.

Python ·CAN ·Win32

On the side

Shared Photo Map

A collaborative photo map that plots geotagged uploads on a 3D globe and hands out shareable links. Invite tokens split view-only from upload access. Uploads go straight to S3 through presigned PUT URLs to sidestep Vercel's payload limits, then EXIF GPS is indexed in libSQL. It is the idea behind the footpaths page here.

Next.js ·TypeScript ·Mapbox GL ·Deck.gl ·Turso ·AWS S3

FluidPaper

A Rust CLI that turns academic PDFs into clean reading-order text using Pdfium's character-level bounding boxes: line and paragraph grouping, heading detection, and suppression of headers, footers and tables. Built so papers could be read aloud by TTS without the furniture.

Rust ·Pdfium

Where I've been

About

I like problems where the hard part is making information findable: a knowledge graph, a shelf of books, a folder of photos with coordinates buried in them.

This site is that instinct pointed at my own life. It is built with Astro, the writing is published straight from my Obsidian vault, and the bookshelf is generated from a folder of markdown files. Away from a keyboard I read, walk, and photograph the places I end up in.

Say hello

Open to conversations about knowledge graphs, retrieval, agents, and the multi-step workflows that tie them together. Email is the fastest route.

adi@palve.dev · GitHub · LinkedIn