ANTON · my own pages
Looking for the app? praviel.com. PRAVIEL's other pages are further down, under What I am building.
I am building PRAVIEL, an app that rests on one small heresy: the old languages are not dead, only unspoken, and unspoken is a curable condition.
- Founder and lead engineer of PRAVIEL, a lessons-first app that teaches ancient languages as living, speakable systems. I designed it, I built it, and I run it.
- Trained in artificial intelligence at the Institute of Science Tokyo. Before PRAVIEL: speech recognition on supercomputers, LLM agents, production document AI at Quantiphi, and a startup or two. These days the models report to the languages.
- Native in English, Russian, and Ukrainian; Japanese earned over four years in Tokyo; Chinese barely past counting to ten. Five living languages is decent training for reviving the silent ones, which these days I am learning myself: Latin, Ancient Greek, Hebrew, Sanskrit, and the rest of the syllabus.
- I care about pronunciation, provenance, and shipping. Order depends on the day.
- My test for a lesson is plain: not whether you can parse an old language, but whether you can say it aloud and be understood. PRAVIEL has to pass it every time.
- I also build small open-source tools: for engineers who work with language models, for speedrunners, and for anyone who wants to know what time it is in Babylon. They are below, under Opera minora.
- In San Francisco, in person. Open to good engineering work, full time or contract, and always open to a conversation about languages. anton@praviel.com
Under the hood: one Flutter and Dart codebase carries the app to iPhone, Android, and the web; the marketing site is Next.js on Node at praviel.com; the AI tutors keep their sources in order. The languages remain the hard part.
Also on the bench. A private research stack for systematic trading, under QuantGenAI: seven repositories that keep market data, research, laboratory, execution, and monitoring apart, with versioned contracts between them and a risk kernel allowed to refuse anything the laboratory approved. The interesting part is not a strategy. It is that the apparatus is calibrated against planted effects and against deliberately contaminated data, so it can tell a real result from an artifact of how the panel was assembled, and I have turned it on my own best finding more than once and lost. Nothing there has earned the right to trade, and nothing claims to have.
A growing shelf of small tools, MIT-licensed, and most of them run in the browser with nothing to install. Some serve PRAVIEL's world, some serve the people who build with language models, and a few are for players who suspect the game is lying to them. The whole shelf, with pictures: antonsoo.github.io/officina.
horologium What time is it in Babylon? Thirteen ancient calendars, live, on an Antikythera-style dial. |
planisphere A printable star wheel for any latitude and any century, the sky over Babylon included. |
tracelens Every model call, tool call, token, and dollar of an agent run, on one timeline. |
errorbars Error bars for LLM evals, and how many questions you actually need. |
veil Reversible masking of personal data in LLM calls, restored even mid-stream. |
splitscope Reads a speedrunner's splits and prices the odds of the next personal best. |
The rest of the shelf:
| Repository | What it is |
|---|---|
| gnomon | Designs a working sundial for any place on Earth, ready to print or laser-cut. |
| tonemirror | Draws your pitch contour over a reference voice, for tones and pitch accent, Ancient Greek among them. |
| contextscope | What fills an LLM context window, and why the prompt cache keeps missing. |
| fieldproof | Document extraction that shows its work: every field tied to the words it came from. |
| mcplint | Lints an MCP server's tools the way the model reads them. |
| trainspotter | Reads a training run's logs and names what went wrong. |
| ghostchars | Finds the characters you cannot see: Trojan Source, invisible Unicode, smuggled prompts. |
| logdelta | Diffs logs by meaning, to show what the failing run did that the good one did not. |
| flakemap | Finds the flaky tests in a CI history, with honest error bars. |
| stutterscope | The stutter that an average frame rate hides. |
| am-i-unlucky | Exact drop-rate and pity math: unlucky, or is it the system? |
Editors print Tacitus' shorter works together as his opera minora: the Agricola, the Germania, the Dialogus. These are mine, and a good deal cheerier.
Earlier, from the machine-learning years. A few public pieces:
| Repository | What it is |
|---|---|
| pneumonia-detection-xray-resnet | A ResNet that reads chest X-rays for signs of pneumonia. |
| DiplomAI | An LLM and speech-recognition assistant that defuses an argument in real time. |
| LLM-Powered-Text-Enhancement-Suite | An LLM toolchain for rewriting, correcting, and sharpening prose. |
| customer-churn-prediction-streamlit | Predicting who is about to leave, while there is still time to ask them to stay. |
| codegen-llm | Experiments in teaching models to write code worth keeping. |
Every script baked to vector paths: the Arabic joins, the Sanskrit ligates, the Hebrew runs right to left. Egyptian hieroglyphs live in the app.
The first row's adjective is Pliny's: he files Archimedes under machinalis scientia (Natural History 7.125).
A new line each morning, set by a script in this repo, from people considerably wiser than me. The small word in the lower margin is the catchword: tomorrow's first word, the way scribes kept their quires in order.
GitHub sees only my open half; the busiest repositories are private. Roman numerals make any figure look deliberate.
A serpent once grazed the offerings at Anchises' tomb, and Aeneas wondered if it was the spirit of the place (Aeneid 5.84-96). This one grazes on commits.
Two ideas sit in the drawer and receive the occasional weekend visit: a proper game for learning ancient languages, with a world in it rather than flashcards with confetti, and an app that finally teaches music theory the way theory deserves. Neither has moved to the bench; PRAVIEL holds the floor. Good seeds keep.









