About us
We build fast, gorgeous browser games that run anywhere no
downloads, no plugins. Our partial flagship, Moto Stunt Riders, is a neon endless-runner with real-time gameplay, online leaderboards, player accounts, and an in-game shop.
We care about the details players feel: silky frame rates, instant loads, and UI that looks as good as the game plays.
We're a small, senior team that ships. You'll have real ownership from day one.
The role
We're hiring a Senior Full-Stack Developer to help take our web games to the next level building new gameplay, tightening performance, and growing the services behind accounts, scores, and matchmaking.
You'll work across the whole stack: the React front end, the HTML5 canvas game engine, and the Node/Express + SQLite backend that powers it all.
What you'll do
- Design and build new game features and polished, responsive UI in React + TailwindCSS.
- Write and optimize HTML5 Canvas game logic physics, input, rendering, and a smooth 60 fps loop.
- Build and maintain backend services: REST APIs, authentication, persistence, leaderboards.
- Profile and fix performance bottlenecks across load time and interaction (large lists, render cost, network waterfalls).
- Own features end-to-end from spec, through implementation and testing, to release.
- Raise the bar on code quality through reviews, sensible architecture, and pragmatic tests.
Tech stack
You don't need every item, but you should be strong in most of it:
- Front end: React 18 (hooks, context), Vite, TailwindCSS, modern JavaScript (ES2022+)
- Game/graphics: HTML5 Canvas 2D, requestAnimationFrame game loops, basic 2D physics
- Back end: Node.js, Express, REST API design
- Data & auth: SQLite (or similar), password hashing/sessions, secure auth flows
- Tooling: Git, npm, browser dev tools / profiling
What we're looking for
- 5+ years building production web applications, with real front-end depth.
- Fluency in React and modern JavaScript; you understand rendering, state, and re-render cost.
- Experience building and consuming HTTP APIs and working with a relational store.
- A track record of diagnosing performance problems with data, not guesswork.
- Care for UX and visual polish you notice jank and fix it.
- Clear written communication and the self-direction to own work in a small team.
Nice to have
- Shipped a game or interactive/animation-heavy app on the web.
- Canvas/WebGL, audio, or real-time (WebSocket) experience.
- Security mindset for auth, sessions, and input validation.
- TypeScript.
What we offer
- [Competitive salary + equity/bonus]
- [Remote-first / flexible hours]
- [Health, learning budget, hardware, PTO fill in]
- Small team, high ownership, real players using what you ship.
Take-home assignment
Strong candidates are invited to a paid / time-boxed take-home ( [3 4] hours)
built on a slimmed-down version of our real Moto Stunt Riders codebase
(React + Vite + Tailwind on the front end; Node/Express + SQLite on the back end).
You'll receive the repository with a short TASK.md. Typical assignments include:
1. Performance The garage screen renders thousands of bikes and the search / sort / favorite interactions lag. Find *why* (measure, don't guess) and make it smooth without changing behavior.
2. Feature Add a self-contained feature end-to-end (e.g. a new gameplay mechanic, an API endpoint + UI, or an auth improvement) that fits the existing architecture.
We evaluate:
- Correctness & UX does it work, and does it feel good to use?
- Problem-solving for perf tasks, did you *measure* the real bottleneck?
- Code quality clear, consistent with the codebase, appropriately tested.
- Communication a short write-up of your approach, trade-offs, and what you'd
do next with more time. A before/after measurement (numbers or a short clip) is a plus.
Please keep changes scoped to the task, and don't rewrite unrelated code.
How to apply
Send your CV / portfolio and a few lines on a web project you're proud of. GitHub profile is accepted.
We welcome applicants of all backgrounds and don't discriminate on any protected characteristic.
Contact: brandon[@]playversa[.]org