Hi. I'm John Carmack.
I'm a software engineer focused on production LLM/AI and geospatial/GPU systems. Rust and TypeScript, deck.gl and luma.gl, and the cloud infrastructure that runs them. Lately it's MapLibre: I'm a voting member, and most of my PRs land in the Martin tile server and MapLibre GL JS. Before that: primary author of a safety-critical aviation desktop application, lone architect of a real-time analytics platform.
Not the Doom guy. Different guy.

Skills
Languages
RustTypeScriptJavaScriptPython
GPU & geospatial
deck.glWebGLMapLibreD3.js
Frontend & apps
ReactNext.jsViteTailwind CSSNode.jsTauri
Data
PostgreSQLSnowflake
Cloud & DevOps
AWSTerraformKubernetesGitHub Actions
Projects
LLM / AI
Geospatial & GPU
A deck.gl v9 wind-particle layer, advected on the GPU.
Web
A GLSL checker for the deck.gl and luma.gl shaders stock tools can't parse.
CLILibrary
Finding the fastest geospatial desktop stack.
Web
Frontend
Apps
A DMX lighting controller: multi-fixture engine, sACN streaming, cloud sync.
Micronutrition tracking & recipe sharing for plant-based cooking.
Infrastructure & tooling
Open source
Merged into other people's codebases. Each title links to the pull requests on GitHub.
Tile caching, PMTiles on S3 and Lambda, tile grids beyond Web Mercator, a Rust harness for the e2e tests, and the 2.0 cleanup and migration guide.
Rebuilt the benchmark suite from scratch, resolving a two-year-old open issue, and landed all three Phase 1 graphics modernization milestones: integer vertex attributes, bitwise unpacking, and texelFetch for elevation. Most recently, custom projections for non-Mercator tile grids.
Eval-gated releases for the skills that help AI coding assistants write MapLibre code, plus an upstream release watch.
Added AddressSanitizer and LeakSanitizer CI, and fixed the ambient cache to respect the configured maximum size.
Merged work toward 2.0: the OpenAPI paths layer, OAS 3.1 by default, and a bigint remapper the maintainer now uses in his own serde_json tests.
Sharpening the useSortedClasses lint rule for Tailwind class order, including how same-utility values sort.















