Founding engineer at G8R Security · ML engineer at GDX

Saratoga, CA

I build ML systems that real people use, and side projects that get a little out of hand.

Right now I'm a founding engineer at G8R Security, working on cryptographic security for AI agents. I'm also an ML engineer at GDX, where my code runs behind sites with well over a million visitors.

On the side: a game with friends became a multiplayer app with its own geographic data pipeline, and a Wordle habit became a solver for 32 boards at once.

Rome Drori standing in a shopping street in Japan
that's me

Rome Drori

Where I've worked
  • G8R Security
  • GDX
  • Verbit
  • Mozilla
  • Boostability
  • Nobias Therapeutics
Hackathons I've won
  • Stanford Sushi Hackathon
  • GDX Sushi Hackathon
$30KStanford Sushi Hackathon grand prize, chosen from 1,500+ applicants
80%Less compute for speech-model evaluation after my rebuild at Verbit
1M+Visitors on the sites my GDX code runs behind
50%+Accuracy gain on binding-prediction models at Nobias Therapeutics

Where I'm most useful

The short version: hand me a messy problem and I'll get it all the way to something people can use.

Raw data to working product

I like owning the whole path: cleaning the data, building and evaluating the model, and making the screen someone actually uses. Polaris went from raw engine telemetry to a crew dashboard over one hackathon.

$30K Stanford grand prize, 1,500+ applicants

Models that are cheaper to run

I treat compute like a budget. At Verbit I rebuilt speech-model evaluation so it needed 80% less of it, and when Python got too slow for StatAtlas, the hot path moved to C.

80% less evaluation compute at Verbit

Vague ideas into shipped software

At GDX I work directly with executives in English and Japanese. A lot of the job is asking the right questions early, then turning a loose idea into a roadmap and a production system.

Code behind sites with 1M+ visitors

Selected work

Six things I'm proud of: the security work I'm doing at G8R, what I ship at GDX, a game I built for my friends, a hackathon winner, a puzzle I refused to lose at, and a planning tool from my day job.

NowFounding engineer · g8rsecurity.com

G8R Security

Zero trust for AI agents, with receipts.

AI agents are starting to take real actions: calling tools, moving data, touching production systems. G8R sits in the path between those agents and the outside world. Deterministic policies stop violations before they execute, and if something goes wrong, it fails closed.

I'm a founding engineer there, working on the cryptographic side of agent security: every verdict gets signed into a tamper-evident, per-tenant audit chain that stays inside the customer's own environment, so there's evidence nobody can quietly rewrite.

The hard path has a p99 budget under 50 ms with the signed audit commit included, so security never gets to be the slow part. The team is also working with NIST on how its AI risk framework should apply to agents.

  • Cryptographic signing
  • Hash-chained audit
  • Policy-as-code
  • Zero trust
  • Self-hosted / VPC
Agent action · in-pathEnforcing
agent ops-assistant → tool http.post → export customers.csv
  1. KillDeterministic policy: data exfiltrationBlocked
  2. JudgeLLM judge can tighten a verdict, never overrule a blockSkipped
  3. ProveVerdict signed into the tenant's audit chainSigned
Illustration based on G8R's public architecture, with made-up values.

NowML engineer · Nov 2024 to now

GDX

ML that has to work on a Monday morning.

At GDX I build the ML and automation that real businesses run on: an LLM agent that Shimamura's corporate teams use to standardize operational manuals and summarize internal data, plus the automation, testing, and tooling behind sites with well over a million visitors.

I also built and validated repurchase-prediction models for Onitsuka Tiger / ASICS, security tooling that drafts patches for engineers to review, and Gap Engine, which you'll find further down. Most of it starts in a meeting with executives, in English or Japanese, with a requirement that isn't quite a spec yet.

  • LLM agents
  • Python · pandas
  • Node
  • Playwright
  • Docker · Azure
  • Claude API
Shipped at GDX Nov 2024 – now
  1. LLM operations agentShimamura corporate teamsIn use
  2. Automation & E2E testingSites with 1M+ visitorsShipped
  3. Repurchase predictionOnitsuka Tiger / ASICSValidated
  4. Security patch draftsReviewed by engineersShipped
  5. Gap EngineDaily plan checksShipped

LivePersonal project · live at jetlag.drori.dev

JetLag Companion

Hide and seek, but the whole city is the board.

My friends and I play hide and seek across city transit networks, inspired by Jet Lag: The Game. I started building a companion app to help us play. It got out of hand, and now it's a full multiplayer game with live maps, curse cards, radar, and photo challenges.

The hard part lives under the map. A clue about elevation, a river, or a train line has to turn into a shape you can cross off. I built the geographic pipelines that do that with OpenStreetMap, Copernicus elevation, and Overture water data, with C++ doing the heavy lifting, so country-scale questions come back in seconds.

A Socket.io server keeps everyone in sync, the interface is built for phones, and Playwright tests catch regressions. The real QA, though, is running around outside with friends.

  • React
  • Node / Express
  • C++ geospatial
  • Socket.io
  • OpenStreetMap · Overpass
  • Copernicus DEM
  • Playwright E2E
The hider zone over Kanto after an elevation answer hatched out most of the map
An elevation answer just hatched out most of Kanto
Seeker view on a phone with the radar circle over Tokyo
Hider view on a phone with the hatched exclusion zone

$30KStanford Sushi Hackathon · grand prize

Polaris

Spotting engine trouble before it strands a ship.

Polaris reads a ship's engine telemetry and flags parts that look like they're heading for failure, early enough for the crew to do something about it. It won our team the $30,000 grand prize at the Stanford Sushi Hackathon in October 2025, out of more than 1,500 applicants.

My piece was the time-series pipeline, end to end: cleaning and windowing the sensor data, transformer-based anomaly detection, Wiener-filter estimates of component health, and a calibrated risk score for the crew's dashboard. It was my second hackathon. I've won both.

  1. Engine telemetry
  2. Transformer anomalies
  3. Wiener-filter health
  4. Crew risk score
Engine 2 · telemetryRisk rising
Illustrative readout of the pipeline's stages, not real ship data.

DemoPersonal project · browser demo + Chrome extension

DuotrigordleBot

How close can a solver get to a perfect game?

Duotrigordle is Wordle times 32: thirty-two boards and 37 guesses, all played at once. A word that's great for one board can be useless for the other 31, so picking the next guess is the entire game.

My solver scores every candidate word by how much it reveals across the boards that are still open, and a small value network breaks ties. It usually finishes in 33 to 35 guesses. Over a 2,000-game benchmark on the daily puzzle's own generator, it went 2,000 and 0.

Boards
32
Typical finish
33–35/37
Losses
0/2,000
The solver working through all 32 Wordle boards

WorkBuilt at GDX · internal tool

Gap Engine

The plan is written. What did we miss?

Most planning tools stop once the task list exists. Gap Engine starts there. A project manager gives it a goal, and it drafts a plan from the team's own documents.

Then it comes back every day to look for holes: questions nobody has answered, and documents that quietly contradict each other. The point is to catch those while there's still time to fix them. I built the whole workspace, including the document checks, streamed plan generation, and a Discord bot for the team.

  • Next.js
  • TypeScript
  • Postgres
  • Claude API
  • Discord
Plan · Store system rollout Daily check · 06:00
  1. Confirm scope with regional managerskickoff.pdf
  2. Inventory hardware at pilot storesops-sheet
  3. Vendor data export has no ownerGap · no doc assigns it
  4. Train store leads on new workflowtraining.md
  5. Cutover dateConflict · Mar 3 in kickoff deck, Mar 10 in ops memo
  6. Post-launch reviewplan
Illustration of a daily check, with made-up plan contents.

Everything else

Research, side projects, tools, and a few things that only live on my hard drive. Click any row for the story.

G8R01G8R SecurityCryptographic security for AI agentsCryptographic signing · policy-as-code · hash-chained auditNow

Founding engineer at G8R Security, a self-hosted enforcement layer that blocks agent policy violations before they execute and signs every verdict into a tamper-evident audit chain.

JL001JetLag CompanionCitywide hide and seek on real transit mapsReact · Node · C++ · Socket.ioLive

The multiplayer game my friends and I actually play. Live maps, radar, curse cards, and photo challenges, sitting on geographic pipelines that turn clues into areas you can rule out.

PX030PolarisPredicting engine failures from ship telemetryTransformers · Wiener filters · ReactCode

$30,000 grand prize at the Stanford Sushi Hackathon. I built the pipeline from raw telemetry to the crew's risk score.

GX154Gap EngineA project plan that re-checks itself every dayNext.js · Postgres · Claude APIWork

Drafts a plan from the team's documents, then comes back daily to flag missing answers and contradictions.

DT032DuotrigordleBotA solver for 32 Wordles at onceC++ · entropy search · value netDemo

Usually done in 33 to 35 of 37 guesses, with zero losses across a 2,000-game benchmark.

SP491Second-purchase predictionPredicting which Onitsuka Tiger customers come backpandas · 491K-member cohortsWork

Second-purchase prediction for Onitsuka Tiger / ASICS. Most of the work was making the data trustworthy: reconciling online and in-store records across 491,000 members, then evaluating with leakage controls, stratified validation, precision/recall, and top-k metrics.

CA416StatAtlasCalifornia livability, down to the census tractFastAPI · React · Leaflet · C extensionCode

Choosing where to live in California meant juggling pollution, commute, disaster-risk, and air-quality data. StatAtlas puts four public datasets on one searchable map. When Python got too slow for statewide scoring, I rewrote that part as a C extension.

ED017IoT fleet control planeDevice enrollment, telemetry and commands, with real PKIGo · MQTT · RabbitMQ · Vault PKICode

How does a device prove it belongs in your fleet, report its health, and safely take orders? A Go prototype of that whole lifecycle, with a simulated device on the other end.

  • A factory-flashed device proves itself with an HMAC bootstrap token, and Vault PKI issues it a real certificate
  • Telemetry fans out over MQTT; commands dispatch back over AMQP
  • Postgres sits behind a repo interface, and a simulated device agent drives the whole enrollment loop
FC043EmployeeProgressSimplifierDaily staff reports, minus the readingTypeScript · discord.js · Claude APIWork

A GDX tool that reads daily reports from staff and flags duplicate work, stalled tasks, and recurring blockers. Managers can ask follow-up questions in plain language. The analysis core has zero dependencies and sits apart from the Discord bot, so it can plug into other chat tools.

TR002TranslationTransformerTeaching multilingual BERT to translate EN→JA and EN→FRPyTorch · HuggingFace · TatoebaCode

SJSU research on how well multilingual BERT handles translation between languages with very different structures. Adding intermediary models cut errors on complex translations by about 15%.

SF050synth-forgeRealistic fake data, generated entirely in your browserReact · TypeScript · Vite · FakerDemo

I kept needing demo data that looked real, and every tool for it wanted me to sign up. So: about 50 field types, null rates, seeds, a live preview, and export to CSV, JSON, JSONL, or SQL. Nothing leaves your machine.

synth-forge schema editor next to a live data preview
SA002AI Security AgentFinds vulnerabilities and drafts the fixPython · LLM scanning · TkinterWork

Built at GDX. It scans a codebase, takes a closer look at anything suspicious, and drafts patches. An engineer reviews each one and accepts, edits, or rejects it.

OT089EC operations automationThe plumbing behind the online storesNode · MJML · Docker · Azure · PlaywrightWork

Batch image processing, scheduled reports, product-ranking updates, product-data collection, storefront checks, Playwright end-to-end tests, and an email server on Azure. The unglamorous automation behind sites with well over a million visitors.

EA090Rotated-Earth ocean modelWhat the oceans would do if Earth tipped 90°GEBCO · ocean model · JupyterCode

A course project for SJSU CS185C. I rotated the GEBCO seafloor data so today's equator runs through the poles, coarsened the grid until a global circulation model would actually run, and spent the semester watching where temperature, salinity, and currents settled.

GP440Garmin Penguin ExpressGetting music onto a Garmin watch from LinuxPython · PyQt · ffmpegCode

A two-pane desktop app: drag tracks onto the watch, pull them back off, and convert FLAC to MP3 on the way. Packaged for Debian, RPM-based distros, Arch, and AppImage.

YT050yt-ai-channelScript in, captioned YouTube Short outPython · edge-tts · ffmpegCode

Turns a script into narration, matched stock footage, and an edited short with word-timed captions, then uploads it. Each channel runs from one config file, and the repo is honest about the costs and limits.

HW013RepRap printers & a following drone3D printers since 2013, plus a droneFirmware · CV · 3D printingHardware

I've been building and modifying RepRap printers since 2013: custom firmware, contributions to open-source slicers, and printers that print parts for other printers. In 2020–21 I built a camera-guided drone with a 3D-printed frame that plans its own path and avoids obstacles.

SI002Symbolic integration engineCalculus by parser and rewrite rulesPython · C++ parsersCode
XV006xv6 kernel labsOperating-system internals on RISC-VC · RISC-VCode
PH001Encrypted file vaultEncrypted file storage with hardened sessionsPHP · MySQLCode
MK001Manual Q&AAsk a product manual, get the answer and the pagePython · React · RAGPrivate
GI001gradimages-labFooling image models on purposePythonLocal
SN001AgentSnooperA session-capture proxyPythonLocal
UN001DescentProtoA Unity game prototypeUnity · C#Local
AS001Generative art snippetsLittle sketches in codePython · JS · GoPrivate
RD095This websiteYou're looking at itHTML · CSS · canvas · Cloudflare TunnelLive

Hand-written HTML, CSS, and canvas, no framework. The contour map up top is simplex-noise terrain redrawn every frame, with a hill that follows your cursor. It's served from my desk in Saratoga through a Cloudflare Tunnel.

Experience

A founding role, two ML jobs, three internships, and a perfect hackathon record.

  1. Now

    Founding Engineer G8R Security

    Zero trust for AI agents

    • Founding engineer working on cryptographic security for AI agents: signed verdicts and tamper-evident, per-tenant audit chains that stay in the customer's environment.
    • G8R sits in-path between agents and the outside world, blocks policy violations before they execute, and keeps the hard path under 50 ms at p99, signing included.
  2. Nov 2024 – now

    Machine Learning Engineer GDX

    San Jose, CA & Japan

    • Built and shipped an internal LLM agent at Shimamura that standardizes operational manuals and turns internal data into summaries for corporate teams.
    • Built the automation, end-to-end testing, and internal tooling behind sites with well over a million visitors.
    • Built and validated second-purchase prediction models for Onitsuka Tiger / ASICS, with leakage controls, stratified validation, and top-k evaluation.
    • Built security tooling that drafts patches for engineer review, plus CNN image-analysis pipelines.
    • Work directly with executive leadership in English and Japanese, turning loose requirements into roadmaps and production systems.
  3. May – Oct 2024

    Software Engineer, Speech & ML Verbit

    New York, NY

    • Rebuilt the speech-to-text benchmarking framework so model evaluation needed 80% less compute.
    • Built the preprocessing, feature-extraction, and evaluation workflow across PyTorch, TensorFlow, NLTK, and NVIDIA NeMo.
    • Designed the real-time framework behind Verbit's live AI demo, used on the web and at conferences.
  4. Nov 2024 – Mar 2025

    ML Engineering Intern Boostability

    San Jose, CA · part-time

    • Shipped usability fixes to the AI assistant based on user feedback. Satisfaction rose about 20% and people spent twice as long using it.
  5. Nov 2023 – Jan 2024

    Software Solutions Architect Intern Mozilla

    San Francisco, CA

    • Led 20+ students on ethical-tech research covering web security, privacy, and AI misinformation, and helped with Mozilla's tech-education outreach.
  6. May – Aug 2023

    ML Engineering Intern Nobias Therapeutics

    Mountain View, CA

    • Trained and deployed Transformers, LSTMs, GANs, and CNNs for protein-sequence and image-based binding prediction, improving accuracy by over 50% on target tasks.
    • Cut average compute load by about 10% with Unix tooling in Python and shell.
  7. Hackathons

    Entered two, won both

    • Stanford Sushi Hackathon, Oct 2025: $30,000 grand prize for Polaris, picked from 1,500+ applicants. I built the time-series pipeline.
    • GDX Sushi Hackathon, Nov 2024: champion, one of two top prizes, and the only undergrad team in the top 10.
  8. May 2026

    B.S. Computer Science San José State University

    Minors in Mathematics and Japanese

A bit about me

I've been building and modding RepRap 3D printers since 2013, including a few whose whole job is printing parts for other printers. That's still how I pick projects: find something I want to figure out, then keep going until other people can actually use it.

I finished my B.S. in Computer Science at San José State in May 2026, with minors in Mathematics and Japanese. These days I'm an ML engineer at GDX, working between San Jose and Japan. Off the clock, there's a decent chance I'm on a train somewhere, hiding from my friends.

Languages I code in

Python, C++, TypeScript, Go, Java, C#, Rust, OCaml, SQL, Shell

ML

PyTorch, TensorFlow, JAX, Hugging Face, NVIDIA NeMo, LangChain, RAG, LLM agents, time-series

Shipping

React, Next.js, Node, FastAPI, Postgres, Docker, Playwright, Azure, AWS, Cloudflare