GitHub ↗LinkedIn

Mahib Hosain

Developer tools
Build systems · AI infrastructure

Stripe
Previously Google

Roblox

Games built in Luau, with assets modeled in Blender.

Verity Knockout key art: a grinning yellow Verity bracing for a hit
LIVE ON ROBLOX

Verity Knockout

Aim in secret, launch together, stay out of the lava

For two to six players or solo against bots. Choose your direction and power before each launch. The disk shrinks every round.

  • 18 collectible Verities
  • Aim & Launch · Bumper Cars
  • Daily quests · obby
Play on Roblox
My ASMR Squishy Tower key art: a tower of pastel squishies in a toy shop
LIVE ON ROBLOX

My ASMR Squishy Tower

Roll, squish, and stack a tower of giant squishies

Stack collectible squishies into a tower that earns coins. I generate the meshes with Python scripts in Blender.

  • Golden & Prismatic finishes
  • Tower income · rebirth
  • Blender to Studio pipeline
Play on Roblox
Studio gameplay: carrying a spotted mochi egg to safety with Big Peach behind the gate
Studio gameplay · October 2026

IN DEVELOPMENT

Steal a Squishy!

Steal an egg, outrun a giant squishy boss, and hatch it back at your plot. Your collection earns coins; treadmill training helps you reach the next floor.

  • Three themed floors
  • 18 squishies to hatch
  • Boss chases · plot upgrades

Playable in Studio · private staging · not publicly released

PLAYABLE SKETCH

Knockout, in miniature

You are the yellow Verity. Aim, launch, and stay on the disk.

Drag from your Verity and releaseor ← → aim · ↑ ↓ power · Space launch

Last Verity on the disk wins

Browser prototype

Unpublished prototypes

  1. 03Steal a SnackRaid a shared pantry
  2. 04Roll a VerityCollectible rolls & income bays
  3. 05PatchballAim, then watch the battle
  4. 06Meme TrialsTwelve-second obstacle runs
  5. 07Meme FactoryFactory economy & rebirth
  6. 08Word ForgeSix letters, sixty seconds
  7. 09Forbidden CluesDescribe it without the words
Prototype notes
  • Steal a Snack

    Steal food from a shared pantry, carry it to income plots, and raid other players. The exit has a safe zone.

  • Roll a Verity

    Roll twelve collectible variants and place them in six income bays. Coin-funded rarity packs show their odds. The server determines rolls and income.

  • Patchball

    Choose a ball, aim, and watch it battle for collectible unlocks. Fixed-step simulation and recorded inputs make matches reproducible.

  • Meme Trials

    Choose a character and lane for a twelve-second obstacle trial. Earn medals and unlocks.

  • Meme Factory

    Print memes, collect earnings, upgrade four machine tiers, and rebirth. The factory runs through an animated interface.

  • Word Forge

    Make words from six letters in sixty seconds. Collect modifiers that change your score.

  • Forbidden Clues

    Describe a target without using forbidden words. A rule-based judge scores your clue without a live AI model or stored clue text.

Studio prototypes, not published. Verity Knockout and My ASMR Squishy Tower are the two released games.

Kalshi

Prediction-market research and automated trading. One EC2 host.

Python / SQLite / systemd / EC2

MHPRIMARY ACCOUNTCONNECTING
MKTSMARKET COVERAGE
  1. 01CRYPTO PRICEBTC · ETHBitcoin above $X at 5 PM?
  2. 02WEATHERUS CITIESHighest temperature in Miami today?
  3. 03WHALE COPYLARGE TRADERSWhat are the biggest accounts buying?
Research snapshot
ACTIVITYTELEMETRY SNAPSHOT ·
FORECASTS RECORDED
52,437
RESOLVED MARKETS
7,477
ORDER-BOOK UPDATES
20.2M+

Forecast research and market-data collection continue. These are cumulative research observations, not trades. Forecast validation has not cleared promotion.

EXECUTION Funded executor paused pending reconciliation. Continuous paper executor paused at its loss limit.

DATED HOST SNAPSHOT · THE SETTLEMENT READOUT BELOW UPDATES AUTOMATICALLY

SETLSETTLED P&L · NET OF REPORTED FEES
—AWAITING SNAPSHOT
MKTS
—
DAYS
—
FEES
—
WINDOW
—
AS OF
—
DELAY
15 MIN
DAILY NET · UTC →

No verified snapshot loaded

Days with settlements
DATEMKTSNETFEESCUM
AWAITING SNAPSHOT
Awaiting exchange snapshot
FLEETONE HOST · SIX STAGESLAST REPORT —
  1. 01CAPTURESCHED

    Reference prices and public market data

  2. 02RESEARCHSCHED + SVC

    Forecast, validation and relative-value studies

  3. 03PAPERPAUSED

    Separate paper state; loss-limit gate reached

  4. 04GATESCHED

    Pre-trade blockers decide whether live may run

  5. 05EXECUTEPAUSED

    Reconciliation required before funded execution

  6. 06REPORT5 MIN

    Settled results, published on a 15-minute delay

SERVICES
7
SCHED JOBS
11
UP SINCE
MAR 2026

AS INSPECTED 11 OCT 2026 · RUNNING SERVICES DO NOT IMPLY ACTIVE TRADING

MODLMARKET-ANCHORED CHALLENGERSRESEARCH ONLY
  1. RESEARCHevaluated offline
  2. PAPERnot started
  3. LIVEnot deployed

Can a model beat the market's own price? Each one starts from that price and learns only a correction to it.

Methods implemented
MODELWHAT IT ISSTATE
CatBoostGradient-boosted trees fitted on market log-odds as an offsetEVALUATED
TabICLv2Tabular foundation model, run locally from a pinned checkpointFELL BACK TO MARKET
TabPFNAdapter written; no licensed weightsNOT RUN
06 OCT RESEARCH SNAPSHOT · 67 SETTLEMENT EVENTSLOWER IS BETTER
Brier score · axis from 0.090
BASELINE0.0958
MARKET0.0928
CATBOOST0.0928
Log loss · axis from 0.300
BASELINE0.3178
MARKET0.3082
CATBOOST0.3078

VERDICT Effectively ties the market. Not promoted.

  1. Chronological split
  2. Two-hour purge
  3. Shrink toward market
  4. Score per settlement event

DEVELOPMENT DATA, NOT AN UNTOUCHED HOLDOUT · ISOLATED RESEARCH ENVIRONMENT · NO EXECUTION INTERFACE

METHWHAT THE FIGURES MEASURE

Settlement revenue minus reported position costs and fees. Open positions, unrealized P&L, deposits, withdrawals, and paper trading are excluded.

Primary Kalshi account. May include manual trades; these are account settlements, not bot-only performance.

A zero is a verified reading: the exchange returned no cash settlement inside the window. Missing, stale, or failed data is labelled as such and shown as dashes, never as zero.

SETTLED / UTC
Waiting for settlement history

engineering

Three folded silver vanes
A

AI infrastructure

Shared model access and device-data systems at Google, 2022–2024.

01Google

ENGINEER

Aratea

A shared API for Google’s generative AI experiences

One of two engineers on the Imagen and Bard gateway used by Android AI Wallpaper, Android Auto, and Messages. I owned design, implementation, quotas, experiments, CI/CD, and on-call.

100+
clients onboarded

Powered demos at Google I/O 2023 and CES

AI WallpaperAndroidAndroid AutoAndroidMessagesAndroid ArateaCOMMON API ImagenImage generationBardText generation METRICS / QUOTAS / EXPERIMENTATION
Mechanical iris
AI WallpaperAndroid AutoMessages
Mechanical iris
ArateaCOMMON API
ImagenImage generationBardText generation

Metrics / quotas / experiments

One interface for image and text generation

02Google

ENGINEER

Device-data rollouts

Measuring how models, fonts, and other packages reach devices

Before Aratea, I built rollout analytics for Google apps, including Search and YouTube. HLL/KLL sketches aggregated device events for metrics, anomaly alerts, and A/B tests.

1B+
device events processed daily
DEVICE EVENTS HLL / KLLAGGREGATION Rollout metricsAnomaly alertsA/B experiments SEARCH / YOUTUBE / OTHER GOOGLE APPS
Device events
HLL / KLLAGGREGATION
Rollout metricsAnomaly alertsA/B experiments

ONE BILLION EVENTS A DAY IS≈ 11,574 every second

Rollout data schematic
B

Developer tools

Language upgrades, editor tooling, and builds at Stripe.

Silver moth with moving wings
03Stripe

PLATFORM LEAD

Automatic JDK upgrades

From quarterly migrations to continuous language upgrades

I led the platform that checks live Bazel dependencies, groups eligible upgrades into reviewable PRs, and reports blockers.

26M-line JVM repository · 700+ Java services

93%+
JDK 17 service adoption in under a week
160+
upgrade PRs in the first three months
How the upgrades work
Check dependent services

A library can compile on a newer JDK while a service consuming it still runs an older runtime. Eligibility accounts for reverse dependencies, runtime caps, source/test coordination, and framework guards.

Keep each change reviewable

The platform partitions eligible targets into bounded PRs. Repeatable runs work continuously or on a selected package; skipped targets retain visible blocker categories.

Runtime compatibility

In the interactive example, both apps consume //lib/common. Moving //app/b to Java 17 clears the runtime constraint. A production upgrade still needs the remaining graph and test checks.

ILLUSTRATIVE / AFTER ELIGIBILITY CHECKS− target_jdk = 11
+ target_jdk = 17

Coauthored with Cara Mecozzi.

CONSUMERSSHARED DEPENDENCY //app/aRuntime 17 //app/bRuntime 11 //lib/commonLanguage level 11 RUNTIME VERSION ≥ COMPILED LANGUAGE VERSION
//app/aRuntime 17//app/bRuntime 11
//lib/commonLanguage level 11

app/b still runs Java 11. The shared library’s language upgrade is blocked.

Example with fictional build targets
04Stripe

IMPLEMENTATION

LLM-aware Bazel output

Less build noise in coding-agent context

I implemented --config=llm across Stripe’s Ruby, JVM/Python, and Go monorepo. It strips ANSI escapes and verbose build/test output before that text reaches coding agents.

~$500K
measured annualized output-token savings

Used by Minions, Codex, and Claude Code at Stripe

Background: Stripe’s Minions

BAZEL / AGENT CONTEXT
Loading: 0 packages loaded
Analyzing: target //demo:parser_test
INFO: Found 1 test target...
[14 / 15] Testing //demo:parser_test
FAIL: //demo:parser_test
ParserTest.java:42: expected 3, got 2
  at ParserTest.parsesItems(ParserTest.java:42)
Executed 1 test: 1 fails.
8 linesRaw output
Demo filter with a synthetic log
05Stripe

ROLLOUT LEAD · UPSTREAM CONTRIBUTOR

Metals + Bazel

Java tooling in VS Code and Cursor

I led Stripe's Metals V2 rollout and built the BSP server connecting Bazel to VS Code and Cursor. I worked onsite with Cursor and Databricks engineers on Java support.

26M-line JVM repository

  • Generated-source navigation and diagnostics
  • Java test actions from current SemanticDB data
  • Protobuf navigation and server-launcher integration
Open-source contributions 06
When the build works but the editor doesn’t
Resolve the generated builder

A protobuf class can exist on the build target’s classpath while the editor resolves a less useful version from Turbine headers. My fix prioritizes the target classpath, keeps headers as a fallback, and tests generated builder-method resolution.

Find the source’s owner

Generated files and symlinked roots must map back to their build target. That gives the editor the right classpath and prevents stale diagnostics. Java test actions similarly need current SemanticDB information.

Metals + Bazel on GitHub ↗
Quoted in the Databricks launch
JAVA / GENERATED SOURCESMETALS + BSP
Example.java illustrative code
01 var receipt = Receipt.newBuilder()
02     .setId("example")
03     .build();
BazelBSPMetals
TARGET CLASSPATHReceipt.Builder

Generated Java class
Builder methods available to the editor

Build-target classpath first; Turbine headers remain a fallback.

Based on Metals fix #8800
06Stripe

TOOL AUTHOR · AI + COMPILERS

Scala-to-Java migration

Migrating Scala to unblock JVM upgrades

I built llmigrate, a Go CLI that coordinates five Claude agents through the migration steps below.

1M+
lines of Scala migrated to Java
llmigratePIPELINE
  1. 01 Preflight analysis
  2. 02 Source translation
  3. 03 Bazel repair
  4. 04 Test translation
  5. 05 JVM compatibility

Generated bridge code and cross-language tests validate Java implementations against Scala behavior.

07Stripe

BUILD INFRASTRUCTURE

Bazel performance

Remote execution, caching, and versioned dependencies

I improved remote execution for JVM development, enforced versioned dependencies in Starlark, and introduced Java quality gates with Error Prone.

700+ Java services

Assembly cube illustrating action caching
  1. Check inputs
  2. Execute
  3. Store result

Unchanged inputs can reuse a stored result

C

Earlier work

Flight software, mobile experiences, and deployment automation.

08NASA

INTERN · SUMMER 2017

FlightHorizon

Contributed to FlightHorizon, which combines aircraft position data to help unmanned aircraft detect and avoid collisions.

2017 R&D 100 Award finalist
09Nike

INTERN · SUMMER 2018

Elefit + localization

Won the Nike Digital Intern Hackathon with Elefit, a live workout-tracking app. Built dynamic string localization infrastructure for Nike apps.

iOSReal-time analyticsLocalization
ALSO

OpenText · Software Engineer · 2019–2022Built reusable Ansible and Makefile deployment templates adopted across most team services.UC San Diego · B.S. Mathematics–Computer Science · 2019

projects

Cofounder & CTO

Trillboards

Turned smart TVs into digital billboards with WebSockets, scheduling, and payments. Top 10% of our Y Combinator applicant batch

trillboards.com

ALEQTH portfolio

Built the initial portfolio website for Alex Headlam and hosted it on AWS EC2.

aleqth.com/portfolio

tools

A small silver Metal Sonic pixel sprite

tmux / herdr

Persistent terminals for builds, logs, and coding agents.

Metals

Source ownership, classpaths, and a working “go to definition.” Upstream contributor.

metals-lsp.org

Java · Scala · Go · Python · Kotlin · Rust · SQL · AWS · Docker · Observability