Skip to content
View jayrdeaton's full-sized avatar

Organizations

@infinitetoken @gameroomforpresident

Block or report jayrdeaton

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
jayrdeaton/README.md

Jay Deaton

Senior full-stack engineer: TypeScript, React, React Native / Expo, Node.js. 10+ years building and running the software behind a production buy-sell-trade commerce business.

Open to senior full-stack roles (remote, hybrid, or on-site) and freelance work. Based in Lincoln, NE.

jaydeaton.com · LinkedIn · jayrdeaton@gmail.com · npm (55+ packages) · infinitetoken.com


Professional work

Full-stack engineer and co-founder at Infinite Token since 2016. That code is private, so here's the summary:

  • Core engineer on a 3-6 person team: 6 internal apps (React, React Native, Electron), a central Node/Express API, and databases serving 3 retail locations, 25 staff, and tens of thousands of customers
  • Integrated Shopify, eBay, Google, AWS, and POS hardware into one system
  • Migrated hundreds of thousands of records across databases with zero data loss
  • Led the move to TypeScript, plus Jest testing and org-wide linting standards
  • Currently building MediaEncyclopedia, a graded collectible-media storefront on Next.js and Supabase, with AI product enrichment on Gemini and Claude

Featured

Private projects

The code is private, but I'm happy to walk through the architecture.

  • MediaEncyclopedia: storefront for collectible Blu-ray, 4K, DVD, and games, with every unit graded and photographed. Next.js and Supabase, an in-house grading and cataloging tool, eBay-based pricing, AI enrichment routed between Gemini and Claude, and Stripe checkout
  • MediaEncyclopedia-Utility: MediaEncyclopedia's React Native / Expo companion app: staff turn products into trackable units, move and audit stock across containers, photograph units for the storefront, and print labels on Zebra Bluetooth printers through native modules
  • Lumber: end-to-end encrypted cloud logging. An HTTP API, a WebSocket server for live log streaming, background workers, and PostgreSQL on Supabase, plus a mobile and web app and SDKs for Node, Python, and Swift. Logs are encrypted before they leave the device, and all decryption and search happen on the client, so the server never sees plaintext
  • CashierFu: point-of-sale for small retailers: a Nuxt web app, native iOS and macOS apps in Swift, a WebSocket server, and an Express API with sales and inventory analytics. Each shop connects its own Stripe account to take cards on Stripe Terminal readers
  • CashierFu-Utility: CashierFu's companion app for shop staff, the same React Native codebase as MediaEncyclopedia-Utility built against CashierFu's own API from its own EAS profile

@tastic: React Native game engine + games

Modular game-engine packages (game loop, physics, input, HUD, sprites, grid, cards, profiles, achievements, split-screen pass-and-play) that power my Expo games. BoxHockey and Swirlio are the first on the App Store, with more games and Google Play on the way. Play the web versions at games.infinitetoken.com.

  • React-Native-Game-Core (@tastic/core): frame-rate-independent game loop, vector math, orientation handling, background pause
  • BoxHockey (play, App Store): turn-based tabletop hockey with flick, slingshot, and push shots; reaction-race face-offs; and a CPU that picks shots by simulating them through the physics engine
  • Solitaire (play): ad-free, offline suite of 11 solitaire games for iOS, Android, and web on a shared TypeScript card engine
  • LightCycles (play) · Snake (play) · Hangman (play)
  • Swirlio (play, App Store): kaleidoscope toy drawn in Skia with up to 12 mirrored copies, 150 colliding beads simulated on the UI thread, and a mic-driven audio-reactive mode
  • In development: AirHockey, real-time air hockey with sub-stepped puck physics, a CPU that predicts the puck's path, and two-player on one device, face to face or side by side · Pong

Live web tools

Project Live Description
MapFolio mapfolio.infinitetoken.com Interactive map builder: pins, routes, captions, print-to-PDF, and share links that encode the whole map in the URL
TrimBox trimbox.infinitetoken.com Gmail inbox cleaner: scans up to 10,000 messages, surfaces bulk senders, one-click unsubscribe and bulk archive
SnaPDF-Web snapdf.infinitetoken.com Snap ChatGPT and Claude conversations to searchable PDF or text
Pixelated-Web pixelated.infinitetoken.com Browser-based image pixelation with palettes and dithering
GraPDF-Web grapdf.infinitetoken.com Scrape PDFs from a webpage and merge them into one booklet

Open source

@rific: Expo / React Native utilities

Package Description
@rific/updater OTA update hook for Expo plus the build and update release CLI
@rific/sync SQLite sync engine for Expo: schema management, upserts, deletions, cursor tracking
@rific/scanner Camera barcode scanner with customizable overlays
@rific/auto-paper Adaptive triadic theming for react-native-paper
@rific/toaster Animated toast notifications
@rific/heatmap GitHub-style activity heatmap
@rific/timer Animated timer ring
@rific/resizable-input Resizable multiline input
@rific/focus-chain Auto-incrementing focus chain hook for form inputs
@rific/feedback-press Haptic pressables
@rific/scroll-view ScrollView, FlatList, and SectionList with blurred floating headers and pull-to-search
@rific/drawer Spring-animated drawers and sheets that slide in from any screen edge
@rific/gestures Swipe-to-dismiss with flicks, and pinch-to-zoom about the fingers, measured in the view's own coordinates
@rific/splash-gate Holds the splash screen until named async conditions are ready
@rific/core Settings Context and Redux slice factories shared by the other packages
Expo-Starter Production-ready Expo starter with Redux, Paper theming, OTA updates, and @rific pre-wired

@tastic: React Native game engine

Package Description
@tastic/core Vec2 math, frame-clamped game loop, orientation handling, background pause
@tastic/physics 2D arcade physics: circle and rect collisions, bounces, friction, gravity wells, springs
@tastic/input Worklet-safe input: swipe and keyboard direction, drag aiming, flick velocity
@tastic/hud Non-modal UI kit for local multiplayer: popovers, pickers, gauges, and dialogs per player zone
@tastic/split-screen Face-to-face or side-by-side two-player layouts based on how the device is held
@tastic/grid Grid math for tile games: bounds, cell/pixel conversion, adjacency, BFS reachability
@tastic/sprites Shared Skia and SVG effects: fireworks, gravity wells, pucks, rink markings
@tastic/cards Playing-card rendering: faces, backs, court figures, suit pips
@tastic/profile Per-seat player profiles with picker and roster screens
@tastic/achievements Headless achievement and stats engine: tiers, per-profile unlocks, streaks
@tastic/edge-guard Config plugin and hook that keep iOS edge swipes from firing over game controls

Node.js / CLI

Package Description
termkit Fluent CLI framework: nested subcommands, middleware, type coercion
cosmetic Chainable ANSI color and style library for terminals
snapdf CLI + ESM/CJS package behind SnaPDF, handling virtual scrolling
grapdf CLI + ESM/CJS package behind GraPDF
pixelated CLI + library: 40+ retro palettes, 20+ block shapes, dithering, ANSI output
reunite · deplace Small macOS terminal utilities

Stack

  • Languages: TypeScript, JavaScript, Python, Swift, Ruby, HTML/CSS
  • Frameworks: React, React Native, Expo, Node.js/Express, Electron, Vue/Nuxt
  • Data: PostgreSQL, MongoDB, SQLite, Supabase, offline-first sync
  • Platforms: AWS, Docker, Vercel, Heroku, GitHub Actions, npm publishing
  • Integrations: REST, GraphQL, WebSocket, Bluetooth, Shopify, eBay, POS hardware, Google & Anthropic APIs
  • Testing: Jest, unit and integration

Off the clock

Arduino projects, Fusion 360 macros, 3D printing, and 6502 assembly games (Snake, LightCycles), playable in the browser at games.infinitetoken.com.

Pinned Loading

  1. Expo-Starter Expo-Starter Public template

    Production-ready Expo starter with Redux, Paper theming, OTA updates, and pre-wired @rific packages.

    TypeScript 1

  2. Expo-Sync Expo-Sync Public

    Generic SQLite sync engine for Expo with schema management, upserts, deletes, and cursor-based synchronization.

    TypeScript

  3. TermKit TermKit Public

    Fluent CLI framework for Node.js. Nested subcommands, middleware, and type coercion.

    TypeScript 1

  4. Pixelated-Web Pixelated-Web Public

    Browser-based image pixelation tool powered by pixelated. Upload, tweak, preview, and export pixel art with palettes, dithering, ANSI output, and real-time controls.

    Vue

  5. PuckTastic PuckTastic Public

    Four tabletop puck games in one app: Box Hockey, Air Hockey, Paddles and Breaker, against the CPU or a friend across the table. Built with Expo and React Native.

    TypeScript

  6. React-Native-Hud React-Native-Hud Public

    Non-modal UI kit for local-multiplayer React Native games: popovers, pickers, gauges, and dialogs scoped to each player's zone.

    TypeScript