Jacob Valenzuela · Oceanside, CA · open to mid-level full-stack roles, remote or relocating

Full-stack engineer (React/TypeScript, Java/Spring Boot) who makes delivery measurable: flow metrics, test infrastructure, and AI features that ship with evals.

Four years on a 20-engineer Spring Boot + React team at KBR, where I wrote the team's first testing playbook and built the WIP and PR-aging dashboards that became team policy. I build with AI agents every day, and I ship the tests, CI, and evals that prove the work holds up.

4 yrs
shipping Java/Spring Boot + React/TypeScript
in production at KBR
20
engineer team where I led adoption of
automated testing & flow analytics
144
tests plus a live LLM eval in ado-flow-metrics,
all run in CI
21×
fastest query speedup in pg-tuning-lab,
measured with EXPLAIN ANALYZE on 2M rows

01 Projects

Five public repositories, each with tests and honest documentation. The flagship has a hosted demo, so you can see it work before you read a line of code.

mise — an open-source React Native cooking companion, 72 tests, typecheck and lint in CI

React Native · ExpoTypeScript strictexpo-routerJest · RNTLGitHub Actions

A recipes app built around how cooking actually goes: a mise-en-place checklist per dish, a step-by-step cook mode with inline timers, and pantry, shopping, and bar tabs. Recipes are authored in markdown and compiled to JSON at build time through a pipeline with a privacy guard. Built and run on-device via Expo Go. Source.

Case study
  • Tested from the parser up: 72 passing tests across the markdown-parser contract, components, and hooks; typecheck and lint clean, enforced by CI on every push. The parser contract tests are what let the recipe format evolve without breaking the cook screens.
  • Modern React Native, documented honestly: Expo SDK 57 / React Native 0.86 / React 19 with the React Compiler enabled, and a "what I learned" section in the README covering the traps that cost real time (async rendering under React 19's concurrent renderer, routing with Link asChild).
  • Built with an agent, owned by me: conventional commits co-authored with Claude Code; every feature landed behind the test and typecheck gate.

pg-tuning-lab — PostgreSQL query tuning on 2M rows, every change measured before and after

PostgreSQL 16EXPLAIN (ANALYZE, BUFFERS)Schema designDocker

A schema-design and query-tuning lab on an auto-repair-shop schema I know from years as a service writer: 500k work orders, 2M line items, seven realistic queries. Each one gets a baseline, a change (partial index, composite index with INCLUDE, materialized view, or a query rewrite), and a measured result with the noise band stated. Speedups range from 1.3× (within noise, and recorded as such) to 21×. Source and results.

Why it exists
  • Closing a gap on purpose: four years of Spring Boot services on PostgreSQL meant plenty of schema changes but little time sitting with query plans. Postings ask for "schema design and query optimization", so this is me doing exactly that in the open, with the plans and the misses written down.
  • Honest numbers: p50 of seven warm runs, one rewrite that was slower than the original kept in the results, and a materialized-view design that keeps the current month live.

SPEEDHELL — a browser bullet-hell game with a deterministic core and a headless referee

Canvas2D · ES modulesDeterministic simHeadless verificationZero dependencies

A Psikyo-style vertical shmup running in the browser with zero dependencies: Canvas2D, ES modules, no build step. The engine is a DOM-free 60 Hz core with seeded RNG and object pools, so a headless sim can replay runs with scripted bots and gate design changes on the numbers. Play it · source.

Case study
  • The gauntlet loop: built by pitting builder agents against fresh-context critics, with disputes settled by a deterministic referee: a sim harness running expert, passive, and blind bots, plus a zero-dependency headless-Chrome screenshot check over raw CDP. Design changes survive only if the critics and the numbers both hold.
  • Design from primary sources: mechanics distilled from film study of CAVE and Psikyo playthroughs rather than genre folklore; the difficulty curve was tuned against what those games actually do on screen.

undertow — an anti-doomscrolling Android app with a tested state machine

Kotlin · ComposeAccessibilityServiceJUnitGitHub Actions

An AccessibilityService watches scroll events inside feed apps and interrupts a continuous scroll session past a configurable threshold with a full-screen breathing pause. Friction, not a hard block: hard blocks get uninstalled. Source, MIT, CI, signed releases.

Case study
  • Behavior-first design: snoozes shrink 60s → 30s → 15s, leaving the app on your own is logged as a win, and a minute of stillness resets the clock so intentional use isn't punished. Only YouTube's Shorts surface counts, detected by walking view ids from the scroll event's source node.
  • Tested core, honest privacy: the session state machine is pure Kotlin under JUnit; nothing scrolled past is read. Only scroll events and their app are counted, on-device, 30-day retention.

Private work, code on request

02 How I work with agents

The habits behind the projects above. Most of them are just good engineering with an extra user in the loop.

Context engineering

Layered CLAUDE.md docs per workspace and per app: one big idea up front, detail on demand, guardrails stated as rules the typechecker or tests enforce, and the gotchas written down. A codebase an agent can be productive in is a codebase a new engineer can be productive in.

Agent-native interfaces

Tools designed for an agent as a first-class user: --json everywhere, compound commands that minimize turns, skills wrapping CLIs in natural language, and structured specs instead of freeform code generation.

Bounded autonomy

Autonomous sessions run inside boundaries I built and verified: a sandboxed microVM with a DNS-aware egress allowlist, data models where the AI can propose but never silently mutate, and a human review gate on anything outward-facing.

Verification loops

Typecheck-and-test gates, an eval for the LLM feature, headless replay for the game, and CI that runs all of it on every push. If the agent can't verify it, it isn't done.

Multi-agent orchestration

Fan-out generation with judge panels and synthesis for design work; parallel research with adversarial verification and citations for analysis. Convergence across independent agents is signal; a single confident answer is not.

Ship the evidence

Every exploration ends in an artifact — a cited report, an interactive visualization, a design doc with a leaderboard, a README with a verified-behavior table. Work that can't be shown might as well not exist.

03 Professional experience

Software Engineer — KBR

June 2022 – Present · Internal application for government users · 20-engineer team · Spring Boot, Kafka, React, ArcGIS

  • Drove team-wide adoption of automated testing best practices where no shared discipline existed; established the team's first testing playbook and own the automated UI test infrastructure end-to-end.
  • Built the team's first flow-analytics dashboards in Azure DevOps — WIP aging, PR aging, flow-metric estimation — giving leadership and the Product Owner delivery visibility they previously lacked. (Open-sourced as ado-flow-metrics.)
  • Partner with the Product Owner on scope, prioritization, sizing, and sprint practice; introduced WIP limits and PR-aging policies that reduced stale work.
  • Owned major frontend surfaces end-to-end (ArcGIS Esri map rewrite, vis.js timeline design/build, team UI Style Guide) and multiple Spring Boot microservices with Kafka messaging and OpenAPI-documented REST APIs.
  • Mentor 1–3 engineers in recurring 1:1s on testing, refactoring, and clean architecture.

Toolbox

TypeScriptJavaScriptJavaPythonGoKotlin React · ReduxReact Native · ExpoSpring BootKafkaPostgreSQL · MongoDBDockerSQLite ArcGIS · vis.jsCypress · Vitest · JUnitAzure DevOps CI/CD Claude Code · Agent SDK patternsMCP & skill authoringPlaywright automation

B.S., Software Engineering — California State University, San Marcos (2023)

04 Contact

The fastest way to evaluate my work is the live demo; the second fastest is a conversation. Private code is available on request.