--- pdf_options: format: A4 margin: 14mm 16mm 14mm 16mm printBackground: true stylesheet: cv_style.css --- # Francis Mars **Fullstack Software Engineer — Real-Time Systems, Bitcoin & Lightning Network** [francismars.com](https://francismars.com)  ·  [github.com/francismars](https://github.com/francismars)  ·  [x.com/btcfrancis](https://x.com/btcfrancis) --- ## Profile Fullstack engineer specializing in real-time systems and Bitcoin payment infrastructure. Built and shipped production apps on Lightning Network and Nostr — from multiplayer games to conference-grade live payment displays. Regular speaker at major Bitcoin events. Stack: React/Next.js, Node.js/TypeScript, Rust, Go, React Native. Integrates AI-assisted workflows (Cursor, Claude Code, ChatGPT, Perplexity) as a core part of development — for code generation, debugging, refactoring, and architectural exploration. Has rebuilt large parts of PubPay and Chain Duel this way, treating AI as a collaborator that accelerates iteration and reduces friction across complex real-time systems. --- ## Projects ### MarsPay — Real-Time Payment Backend  ·  [github.com/francismars/marspay](https://github.com/francismars/marspay) *Node.js · TypeScript · Express · Socket.IO · Lightning (LNbits, LNURL) · Nostr (NDK)* - Authoritative server architecture for real-time paid apps (games, duels, tournaments) — server owns state, clients send inputs - Lightning integration for deposits, withdrawals, webhook settlement; Nostr (NDK) for zaps; defines Socket.IO protocol used by multiple clients ### PubPay — Decentralized Social Payments  ·  [pubpay.me](https://pubpay.me) *React · Nostr (NDK, NWC) · Lightning · Monorepo* - **PubPay** — shareable payment requests as social posts (no sign-ups, no fees); **PubPay Live** — real-time zap display for live events; **PubPay Multi Live** — multi-stage conference tool with timeline editor, auto-rotation, and rehearsal mode - Battle-tested at Bitcoin 2025, BCC8333, Adopting Bitcoin ### Chain Duel — Real-Time Multiplayer Bitcoin Game  ·  [chainduel.net](https://chainduel.net) *React · PixiJS · Zustand · WebSockets · Lightning · Nostr* - Custom game engine: PixiJS rendering, Zustand state, keyboard/gamepad input, audio pipeline; payment-gated matches via MarsPay - Live Lightning Network demo at Bitcoin conferences worldwide — 3 years of production conference use ### Homeserver Dashboard — Next.js Admin UI  ·  [github.com/francismars/homeserver-dashboard](https://github.com/francismars/homeserver-dashboard) *Next.js · Tailwind · shadcn/ui · Docker · Tailscale  (Pubky engagement)* - User management, WebDAV file browser, API explorer; Docker/Umbrel integration; Tailscale tunnel for closed networks --- ## Tech Stack | | | |---|---| | **Frontend** | React, Next.js, PixiJS, Zustand, Tailwind, shadcn/ui, React Native | | **Backend** | Node.js, TypeScript, Express, Socket.IO, WebSockets | | **Payments** | Lightning (LNbits, LNURL, NWC), Nostr (NDK), BOLT 11/12 | | **Systems** | Rust, Go, Docker, Linux | | **AI Tooling** | Cursor, Claude Code, ChatGPT, Perplexity | **Open Source:** Pubky · Satsigner · Stable Channels · lnurlp (LNbits) · Nigiri Bitcoin · go-elements · tdex-feeder **Speaking:** Bitcoin Las Vegas · Bitcoin Amsterdam · Plan B Forum · Adopting Bitcoin · Bitcoin Atlantis · BTC Balkans · Satsconf · *and others* **Education:** M.Sc. Informatics, University of Lisbon *(17/20)* · B.Sc. Information Technologies, University of Lisbon **Training:** Chaincode Labs — Bitcoin Protocol (2021) · Lightning Protocol (2022) · Sovereign Engineering Cohort, Madeira (2024)