2016
Started in Roblox Studio
Began building small games and learning Lua as a hobbyist, which allowed me to become comfortable with Roblox Studio before working with larger teams.
3 years building web applications, 10 years designing and shipping Roblox experiences - I bridge product thinking with hands-on engineering across both platforms, to ensure that ideas move from concept to shipped product reliably.
WEB DEVELOPMENT
3 years
React, Astro, and Node - building fast, maintainable products end to end, to ensure that each project remains reliable and straightforward to iterate on.
ROBLOX DEVELOPMENT
10 years
Games, systems, and Studio tooling used by thousands of players, to ensure that each experience remains stable under real player load.
A selection of web applications, Roblox experiences, and Studio tools I have built, to illustrate the breadth of work I have delivered across both platforms.
ROBLOX TOOL · 2026
A CLI orchestrator for multi-place Roblox mono-repos. It scaffolds a shared workspace and per-place projects wired into Rojo, Wally, Rokit, Selene, and StyLua, and unifies build, Studio sync, and Mantle-based deploys behind single commands such as `jafa new` and `jafa dev`. This is to ensure that the toolchain stays consistent across each project, reducing friction when moving between places.

WEB APPLICATION · 2026
A website for a fictional Roblox investigations agency, managing secure access to documents, driving recruitment, and informing the fictional public about the agency's work - with additional tools such as a searchable wanted-persons database and lookup system - to ensure that both members and the public can interact with the fictional agency in a controlled way.

DISCORD BOT · 2026
A Discord ticketing ecosystem in prototyping: a TypeScript/Sapphire Bot managing the full 12-step ticket lifecycle, paired with a Next.js 15 dashboard on AWS for guild configuration and S3-backed transcript viewing at tickets.noyralabs.com, to ensure that moderation teams have a clear, auditable record of every interaction.

COMMUNITY · 2024 - 2026
A Roblox community platform simulating Turku, Finland, spanning an OAuth-based Identity Verification System that links Discord and Roblox accounts, TurkuNode - a Discord Bot for Community Management and game-synced activity logging - and a secure API powering player-focused voting and elections, to ensure that community identity and governance remain reliable at scale.

DISCORD BOT · 2023 - 2026
A TypeScript/Sapphire Discord Bot v2.8.2 serving a Roblox community's Department of Commerce across two guilds, automating permit issuance and revocation, property requests, manager assignments, activity submissions, announcements, and developer support tickets, plus a Trello Integration - with Sentry observability and containerised Docker deployment backed by MySQL via Prisma - to ensure that the department's workflows remain visible, repeatable, and easy to maintain.

ROBLOX GAME · 2025
A classic Roblox game in which I resolved a race condition that caused chairs to disappear, restoring the Game Loop to ensure that play sessions remained stable.

DISCORD BOT · 2024 - 2025
A TypeScript/SapphireJS Discord Bot for the Firestone Park Service, self-hosted on a Raspberry Pi. It handles shift activity reporting via modal submission, routes logs to group-specific channels by member role priority, and syncs task counters with Google Sheets through a Google Apps Script Endpoint, to ensure that shift records stay accurate and accessible to the right people.

ROBLOX GAME · 2022 - 2025
I was the Lead Programmer for a large Roblox roleplay community, owning all platform integrations and acting as the bridge between the Development Team and the Founders, I drove the community's direction through game refinement informed by player feedback, deliver critical performance optimisations, and uphold security across user-facing systems to ensure that the platform remains both engaging and trustworthy.

ROBLOX GAME · 2023 - 2024
A wildfire suppression game in which I contributed to the early fire system and simulation logic during the project's initial concept phase, supporting the team to ensure that the simulation had a stable foundation to build upon.
I am a developer working across two worlds: modern Web Applications and Roblox Game Development. Over the past decade I have shipped Roblox Experiences played by a large community, and for the last three years I have been building production Web Apps with React and Astro, this is to ensure that I can bring a systems mindset to whichever platform a project needs.
Furthermore, I care most about performance, clean systems, and tools that make other creators' work easier - which is part of why I build Roblox Studio Plugins alongside games, as this allows me to reduce friction for the Development Teams around me.
2016
Started in Roblox Studio
Began building small games and learning Lua as a hobbyist, which allowed me to become comfortable with Roblox Studio before working with larger teams.
2019
First published Roblox games
Shipped multiple experiences, growing a small player community - this was important because it taught me how to iterate based on player feedback.
2022
Lead Programmer, State of Firestone
Took on a Lead Programmer role on State of Firestone, directing technical decisions across a larger team and taking ownership of systems from architecture through to shipping.
2023
Moved into web development
Started building production Web Applications with ASP.NET, to ensure that I could bring the same systems-focused approach to the web.
2025
React & Next.js
Moved into React and Next.js for client work, which let me ship faster whilst keeping the same component-driven, systems-focused approach.
2026
Full-stack & Roblox dev today
Went cloud-native on the web, building on AWS through OpenNext and on Cloudflare with Astro and Cloudflare Workers. Alongside this, I continue shipping Roblox games and Studio tools, which keeps my skills current across both platforms.
Open to freelance work, collaborations, and interesting problems - on the web or in Roblox.