{"$schema":"https://raw.githubusercontent.com/jsonresume/resume-schema/v1.0.0/schema.json","basics":{"name":"Casey Charlesworth","label":"Senior Full-Stack Engineer","email":"hello@caseycharlesworth.com","url":"https://caseycharlesworth.com","summary":"I’m Casey Charlesworth, a full-stack engineer in Los Angeles. I’ve been building web products since 2019, mostly in TypeScript and React with Node and Postgres behind them, and Rust when the work is on Solana. My first job was at West Monroe, a consulting firm, where I went from software engineer to senior software engineer. There I worked on Con Edison’s intranet, Coinbase’s NFT beta and the front end of Polaris’s RIDE COMMAND Garage, and handled DevOps for more than 30 repositories. On the side, another developer and I built DispenseFirst, a point-of-sale system for cannabis dispensaries. From 2022 I also built raffles, staking sites and holder portals for Solana NFT communities, and the Position Simulator for Orca. In 2023 I left West Monroe. I spent about six months as founding engineer at Indie-Pop, building Coll3ctibles, then about two years at Gavel on billing, plan gating and the document engine. Since 2025 I’ve been a consultant at Lazer Technologies, working for SwishX, Glacis Labs, Sorare and House of Pranksy. I also maintain Cinder Wallet, an open-source Solana wallet extension.","location":{"city":"Los Angeles","region":"California","countryCode":"US"},"profiles":[{"network":"GitHub","url":"https://github.com/freyja-934"},{"network":"LinkedIn","url":"https://www.linkedin.com/in/casey-charlesworth"}]},"work":[{"name":"Lazer Technologies","position":"Senior Software Engineer, Consultant","startDate":"2025-05","summary":"Clients: SwishX, Glacis Labs, Sorare, House of Pranksy","highlights":["Glacis Airlift","Sorare","House of Pranksy","SwishX"]},{"name":"Independent","position":"Freelance Shopify developer","startDate":"2026-01","endDate":"2026-05","summary":"Wildtide (approximate dates)","highlights":["Wildtide"]},{"name":"Open source","position":"Author and maintainer, Cinder Wallet","startDate":"2025-08","summary":"Cinder Wallet, a self-custodial Solana wallet extension (MIT licensed)","highlights":["Cinder Wallet"]},{"name":"Gavel (later acquired by Relativity, 2026)","position":"Software Engineer","startDate":"2023","endDate":"2025","summary":"Billing and entitlements, the document engine, AI variable review","highlights":["Gavel"]},{"name":"Indie-Pop","position":"Founding Engineer","startDate":"2023","endDate":"2023","summary":"Coll3ctibles (approximate dates)","highlights":["Coll3ctibles"]},{"name":"Independent","position":"Freelance Solana developer","startDate":"2022-01","endDate":"2023-03","summary":"White-label raffles, wheels and staking, the Catalina Whale Mixer holder portal and Floating staking, and the Orca Position Simulator","highlights":["White-label raffles, wheels and staking","Catalina Whale Mixer","Orca Position Simulator"]},{"name":"DispenseFirst","position":"Software Developer (contract)","startDate":"2021-01","endDate":"2022-01","summary":"Part-time","highlights":["DispenseFirst POS"]},{"name":"West Monroe","position":"Software Engineer, then Senior Software Engineer","startDate":"2019-06","endDate":"2023-03","summary":"Con Edison, Coinbase NFT beta, Polaris, DevOps for 30+ repos","highlights":["Con Edison intranet","Coinbase NFT beta"]}],"education":[{"institution":"University of Illinois Chicago","studyType":"B.E. Computer Science","area":"Minor: Computer Engineering","endDate":"2019"}],"certificates":[{"name":"Professional Certificate, Blockchain Fundamentals","issuer":"UC Berkeley","date":"2022"}],"skills":[{"name":"Languages","keywords":["TypeScript","JavaScript","Rust","Python","Solidity","SQL"]},{"name":"Frontend","keywords":["React","Next.js","Vue.js","Tailwind","Mantine","Storybook"]},{"name":"Backend","keywords":["Node.js","NestJS","Express","PostgreSQL","MongoDB","Firebase"]},{"name":"Blockchain","keywords":["Solana (Anchor, Metaplex)","Ethereum (wagmi/viem, Foundry)","Cross-chain bridges (Wormhole, LayerZero)"]},{"name":"Cloud and DevOps","keywords":["GCP (Cloud Run, Cloud SQL, Pub/Sub)","AWS (Lambda, S3, EC2)","Docker","GitHub Actions","CI/CD"]},{"name":"AI and payments","keywords":["OpenAI / GPT-4o Vision","LLM integration","Stripe / Stripe Connect"]},{"name":"Security review and testing","keywords":["Pre-audit smart-contract review","Mainnet-fork tests","Vitest","Playwright","Coverage gates"]},{"name":"Commerce and CMS","keywords":["Shopify (Liquid, metaobjects, Remix apps)","Sanity","Prismic","No-code page builders"]}],"projects":[{"name":"SwishX","description":"A marketplace for sealed packs of graded sports cards, built through Lazer Technologies in 2026.","url":"https://caseycharlesworth.com/work/swishx","roles":["Sole architect and builder"],"startDate":"2026-02","endDate":"2026-06","entity":"SwishX (via Lazer Technologies)","highlights":["A double-entry ledger in Postgres, append-only because a trigger rejects edits","A checkout that sells the last card once, in one transaction behind a Redis Lua script","Pack odds seeded from SHA-256 into SplitMix64, so any pull can be replayed","Slab-label OCR with GPT-4o Vision, schema-checked and sent to a person when unsure"],"keywords":["TypeScript","Next.js 16","React 19","NestJS 11","Drizzle","Postgres","Redis","Firestore","Pub/Sub","Cloud Run","Stripe Connect","Privy","Shippo","GPT-4o Vision","Pixi.js","Three.js","GSAP"]},{"name":"Glacis Airlift","description":"Through Lazer I built the Solana side of Glacis Labs' Airlift bridge, with one TypeScript SDK over Wormhole NTT and LayerZero OFT, fee quotes read from the chain, and the docs.","url":"https://caseycharlesworth.com/work/glacis-airlift","roles":["Owned the Solana integration layer"],"startDate":"2025-06","endDate":"2025-09","entity":"Glacis Labs (via Lazer Technologies)","highlights":["One quote() and one send() over Wormhole NTT and LayerZero OFT, packaged as a standalone TypeScript package","Lookup tables that brought oversized transfers under Solana's 1,232-byte v0 limit","Fee quotes read from the on-chain quoters, which matched the executed fee on the transfers we checked","Token configs, scrapers, bulk on-chain registration and the Docusaurus docs"],"keywords":["TypeScript","Rust","Anchor 0.31","Solana web3.js","SPL Token + Token-2022","Wormhole NTT","LayerZero OFT","Metaplex Umi","Helius","Docusaurus"]},{"name":"Orca Position Simulator","description":"The Position Simulator in Orca's pools UI shows a liquidity provider their PnL across a price range before they deposit. I built it as a freelancer.","url":"https://caseycharlesworth.com/work/orca-position-simulator","roles":["Built the Position Simulator in Orca's pools UI"],"startDate":"2022","endDate":"2023","entity":"Orca","highlights":["Built the Position Simulator in Orca's pools UI","A Net PnL curve across the chosen price range, before any deposit","Token mix, estimated yield, time in range, impermanent loss and LP vs HODL in one panel","Works with no wallet connected"],"keywords":["React","TypeScript","Solana","CLMM math","Data visualization"]},{"name":"Gavel","description":"Gavel is a no-code platform for legal document automation. I built billing and plan gating, owned the Python generator every workflow runs through, and built the AI review screen.","url":"https://caseycharlesworth.com/work/gavel","roles":["Full-stack software engineer"],"startDate":"2023","endDate":"2025","entity":"Gavel","highlights":["Billing and plan gating, with React paywalls, a NestJS tier guard, OPA policy checks and a Stripe webhook Lambda","Owned the Python/docassemble code generator every workflow runs through","The Gavel AI variable-review UI, with PDF and variable annotations kept in sync both ways","The questionnaire builder's field-type system, and the Mantine v6 to v7 migration"],"keywords":["React 18","TypeScript","Mantine","TanStack Query","React Hook Form + Zod","NestJS","MikroORM / Postgres","Python","docassemble","Mako","AWS Lambda","DynamoDB","SQS","Stripe","OPA","Playwright"]},{"name":"Solana community tooling","description":"In 2022 and 2023 I led a small team building raffles, a spin-the-wheel game and staking sites for Solana NFT communities, re-skinned per collection. Owners ran their own events in Prismic.","url":"https://caseycharlesworth.com/work/solana-community-tooling","roles":["Built the white-label raffle, spin-the-wheel and staking products"],"startDate":"2022","endDate":"2023","entity":"Solana NFT communities","highlights":["Token- and NFT-gated raffles that each community ran itself in a Prismic CMS","A spin-the-wheel game with spin credits, and a scheduled job that redistributes failed payouts","Staking moved from Gem Farm to a custom pair-multiplier app, then to white-label Cardinal staking with pNFT support","One codebase, re-skinned for each collection"],"keywords":["React","Node.js","Express","MongoDB","Prismic","Solana web3.js","Cardinal","Heroku","Vercel"]},{"name":"Catalina Whale Mixer","description":"A holder portal for the Catalina Whale Mixer community, with points and a leaderboard, Floating staking, a rewards store and multi-wallet profiles.","url":"https://caseycharlesworth.com/work/catalina-whale-mixer","roles":["Built the holder portal and Floating staking, with a small team"],"startDate":"2022-08","endDate":"2023","entity":"Catalina Whale Mixer","highlights":["Holder portal with points, tiers and a leaderboard, driven by staking status and holdings","Floating staking on Cardinal's non-custodial staking contract","Floating staking qualified holders for the Nakamoto Whales Ordinals drop","A rewards store paid in points and SOL, with the token account created explicitly before transfer"],"keywords":["Next.js","React","Node.js","Solana web3.js","Cardinal staking","Metaplex Candy Machine","Dialect","Magic Eden API"]},{"name":"Coll3ctibles","description":"As Founding Engineer at Indie-Pop I built Coll3ctibles, multi-chain collectibles for people who've never seen a seed phrase. One session covers six sign-in methods and three chains.","url":"https://caseycharlesworth.com/work/coll3ctibles","roles":["Founding Engineer, primary developer on the 2023 codebase"],"startDate":"2023","endDate":"2023","entity":"Indie-Pop (Coll3ctibles)","highlights":["One NextAuth session over six-plus sign-in methods, with signatures verified server-side for Solana, Ethereum and Bitcoin","Compressed NFT minting on Metaplex Bubblegum, with the new asset's ID resolved deterministically after each mint","Bitcoin Ordinals reads through the Hiro Ordinals API","A no-code page builder whose editor and live page render from the same component registry"],"keywords":["TypeScript","Next.js 13","NestJS 9","MongoDB","NextAuth","Stytch","Crossmint","Metaplex Umi / Bubblegum","wagmi","SIWE","Stacks","Hiro Ordinals API"]},{"name":"House of Pranksy","description":"Via Lazer I built the House of Pranksy launch site and its SeaDrop contracts for soulbound memberships and gift minting. It launched on OpenSea (SeaDrop), and OpenSea featured it.","url":"https://caseycharlesworth.com/work/house-of-pranksy","roles":["Built the launch site and the SeaDrop contracts"],"startDate":"2025","endDate":"2025","entity":"House of Pranksy (via Lazer Technologies)","highlights":["Built the launch site, pranksybreaks.co.uk, on Next.js 15 and Sanity, with a layered parallax hero","Solidity extending SeaDrop without forking it, adding admin minting and a gift-mint multicall with an on-chain fee split","A Foundry suite that forks Ethereum mainnet to test against the real SeaDrop deployment","Token gating checked twice, instantly in the client and again on the server before gated content is sent"],"keywords":["Solidity 0.8.17","Foundry","SeaDrop","ERC-721A","wagmi v2","viem v2","Privy","Guild.xyz","Next.js 15","React 19","Sanity v3","Chakra UI v3","Tailwind v4","Storybook 9","Vitest + Playwright"]},{"name":"Sorare security review","description":"Via Lazer I led the internal pre-audit security review of four Anchor programs for Sorare's move to Solana, and built the devnet tooling.","url":"https://caseycharlesworth.com/work/sorare-security-review","roles":["Led the internal pre-audit security review and built the devnet tooling"],"startDate":"2025-09","endDate":"2025-10","entity":"Sorare (via Lazer Technologies)","highlights":["Led the internal pre-audit review of four Anchor programs in an 11-day sprint, and found three critical, code-verified issues, each with a proposed fix, before the external audit","Every finding tagged with how sure I was, from certain to uncertain","Devnet provisioning in TypeScript and bash, with PDA authorities so minting never touches a raw private key","A pooled-vault design proposal and a test and CI pipeline design"],"keywords":["Rust","Anchor","Solana","Metaplex Bubblegum V2","MPL Core","Umi","TypeScript","Bash","Helius","GitHub Actions"]},{"name":"Coinbase NFT beta","description":"Consulting through West Monroe, I contributed to Coinbase's NFT marketplace beta, including the purchase flow and the contract and royalty management UI.","url":"https://caseycharlesworth.com/work/coinbase-nft-beta","roles":["Contributor, purchase flow and contract/royalty management UI"],"startDate":"2022","endDate":"2022","entity":"Coinbase (via West Monroe)","highlights":["Contributed to the purchase flow and the contract and royalty management UI","The beta launched on Apr 20, 2022"],"keywords":["React","TypeScript","Node.js","Ethereum","Web3 wallet integration"]},{"name":"Con Edison intranet","description":"Frontend lead on the Microsoft 365 phase of Con Edison's intranet program, named one of Nielsen Norman Group's 10 Best Intranets of 2020.","url":"https://caseycharlesworth.com/work/con-edison-intranet","roles":["Frontend lead on the Microsoft 365 phase"],"startDate":"2019","endDate":"2020","entity":"Con Edison (via West Monroe)","highlights":["Frontend lead on the Microsoft 365 phase of Con Edison's intranet program, named one of Nielsen Norman Group's 10 Best Intranets of 2020","Led the frontend architecture for the program's move to Microsoft 365"],"keywords":["Microsoft 365","SharePoint","React","TypeScript"]},{"name":"Wildtide","description":"Bookable expeditions for Wildtide Crew on Shopify, without a bookings SaaS. Trip dates are variants, so Shopify's own inventory enforces capacity, and trips are paid as a deposit, then the balance.","url":"https://caseycharlesworth.com/work/wildtide","roles":["Solo designer, builder and operator"],"startDate":"2026-01","endDate":"2026-05","entity":"Wildtide Crew","highlights":["Trip dates are product variants, so Shopify's own inventory enforces each trip's capacity","An embedded Remix app that idempotently provisions every metaobject and metafield definition it needs","Deposit-then-balance billing on webhooks and Shopify Draft Orders","One dynamic expedition template that renders any number of expeditions"],"keywords":["Shopify Liquid (OS 2.0)","Metaobjects and metafields","Admin GraphQL","Remix 2.8","React 18","Polaris 13.9","App Bridge","Prisma 6.19","Neon Postgres","TipTap 3","Vitest 4","Heroku"]},{"name":"Cinder Wallet","description":"An open-source, self-custodial Solana wallet extension, small enough to read end to end. The popup never holds a keypair. Not audited.","url":"https://caseycharlesworth.com/work/cinder-wallet","roles":["Author and maintainer"],"startDate":"2025-08","entity":"Personal open source (MIT)","highlights":["The keyring lives in the extension's service worker, so the popup never holds a Keypair","Vault encrypted with AES-256-GCM, its key derived with PBKDF2-SHA256 at 600,000 iterations","A Wallet Standard provider, legacy and v0 transactions, and lookup tables resolved in the preview","An approval screen that shows a simulated balance diff before you sign"],"keywords":["TypeScript","React","Chrome Manifest V3","Wallet Standard","Solana web3.js","Redux","React Query","Vite","Vitest","Playwright"]},{"name":"Polaris RIDE COMMAND Garage","description":"Through West Monroe I built the front end of Polaris's RIDE COMMAND Garage, where riders add vehicles by VIN, log maintenance and check recalls.","url":"https://caseycharlesworth.com/work/polaris-ride-command-garage","roles":["Built the front end of the Garage"],"entity":"Polaris (via West Monroe)","highlights":["Built the front end of the Garage","Owners add vehicles by VIN, log maintenance, and check warranty, recalls and recommended service"],"keywords":[]},{"name":"DispenseFirst","description":"Another developer and I built out DispenseFirst, a point-of-sale system for cannabis dispensaries, in Vue.js and Node.js, with APIs for transactions, inventory sync and compliance.","url":"https://caseycharlesworth.com/work/dispensefirst","roles":["Software Developer (contract, part-time)"],"startDate":"2021-01","endDate":"2022-01","entity":"DispenseFirst","highlights":["Built out the POS with one other developer, moving it from a legacy stack to Vue.js and Node.js","Built APIs for real-time transactions, inventory sync and regulatory compliance, and integrated e-commerce checkout"],"keywords":["Vue.js","Node.js"]}],"meta":{"canonical":"https://caseycharlesworth.com/resume.json","version":"v1.0.0","lastModified":"2026-09-29"}}