Back to experiences

~2014 – 2025

Roblox game development

From Playing Games to Creating Experiences

My path to software engineering began with Roblox. Growing up, video games offered worlds where I could explore, create, and become someone entirely different. At an age when many opportunities felt out of reach simply because I was young, the digital world gave me room to contribute. People could get to know me through what I did and what I created. That possibility was deeply motivating.

Hand-drawn Builderman next to a Roblox Builderman figurine in a notebook
2017 — A drawing of Builderman I made in my notebook

I first found a community through historical role-playing games. One of the earliest groups I joined recreated the military structure of the British Empire during the Napoleonic Wars. As a member of its 95th Rifle Regiment, I discovered an interest in history that I had not expected. These communities introduced me to subjects far beyond what I encountered in elementary school. I later joined groups centered on World War II, the American Revolution, and ancient Rome, finding both new interests and lasting online friendships.

Standing in a historical military role-playing camp lined with wooden barracks
A historical role-playing community on Roblox
Waking up a friend in the 95th Rifle Regiment
May 10, 2017 — Waking up a friend in the 95th Rifle Regiment

By around age ten, I had begun helping community leaders develop the games behind those experiences. My early contributions were small: placing parts, arranging existing assets, and building scenes for players to explore. I enjoyed the work because it let me give something back to communities that had given me friendship and belonging. Seeing other people enjoy an environment I had helped create made me want to contribute more.

Roblox building tools open while placing and aligning a decorative wall panel
January 27, 2017 — Early building with F3X tools

Eventually, I became curious about the code that made those environments work. I started with small changes, such as adjusting how much damage a musket dealt. From there, I learned to configure scripts, combine pieces of existing programs, and eventually write programs of my own in Lua. Each change gave me a reason to learn the next concept. Programming became a way to answer questions I cared about and build things my communities wanted to use.

Roblox Developer Console open showing script errors while debugging lightsaber tools
This screenshot was my first time debugging with a developer console.
My first obstacle course build in progress with selected parts highlighted in Roblox
December 16, 2017 — My first obstacle course
Praetorian Guard unit standing in formation on a stone path in a Roman roleplay
December 2017 — Leading the Praetorian Guard in a Roman roleplay community

By about thirteen, I began to think of myself as a programmer and started taking freelance work on Roblox. I developed systems across several genres, including games that recreated provinces of ancient Rome. Some of the systems I wrote are still used in Roblox games today. Freelancing helped me see how a skill I had developed through curiosity could become professional work. It also gave me a reason to keep learning: each project presented a different idea to translate into a working experience.

Promotional artwork for Roman Judea showing Legion and Guard soldier roles
January 18, 2018 — Roman Judea promotional artwork
Roman villa with purple-draped columns, pergolas, and cypress trees in Roman Dacia
July 18, 2020 — Roman Dacia province build
Coastal Roman settlement with temples, a green-domed rotunda, and mountains beyond
July 18, 2020 — Roman Dacia coastal city
Inventory and skills UI systems built while freelancing
Inventory and skills systems I built while freelancing

What drew me most strongly to software engineering was the opportunity to create experiences for other people. As a player, I could explore worlds that someone else had imagined. As a programmer, I could help make those worlds possible. Even an underlying system that a player never consciously noticed could shape their experience. That connection between code and human experience became central to how I approached my work.

One project that developed this perspective was Cintra, a medieval fantasy game for which I independently created a magic system. I wanted magic to support the social nature of Roblox. My guiding question was how a spell could encourage players to explore, discover something unexpected, or share an adventure with friends.

Gothic stone church with a fountain and courtyard trees in Cintra
Cintra — The Golden Order church
Tour of the Cintra spellbook interface
A tour of the spellbook

I designed spells around those possibilities. In certain locations, for example, a player could bring statues to life as guards. That gave players a reason to visit and investigate parts of the world they might otherwise overlook. Other spells opened opportunities for special adventures with friends. Building the system pushed me to consider both what a feature did and what it encouraged people to do. A spell could deal damage, but it could also spark curiosity or create a reason for players to interact. That experience helped me connect technical implementation with the behavior and experiences I wanted to support.

Later, a studio called 216 hired me to lead a team and create Alpine Border: Coastal Castle, a World War II-era role-playing game. This project became a culmination of my work on Roblox. I had participated in the genre as a player, so the opportunity to help rethink it felt personal. Many games I had encountered relied on combinations of familiar assets and code that had circulated for years. My team wanted to build a cohesive, immersive experience with the level of polish we associated with major commercial games.

2.16 Studios logo
2.16 Studios
Promotional scene of Alpine Border: Coastal Castle with players gathered in a grand hall
2024 – 2025 — Alpine Border: Coastal Castle
Aerial view of the coastal castle built into a cliff overlooking the ocean
2024 – 2025 — The coastal castle overlooking the sea

We reconsidered systems throughout the game: camera movement, weapons, spawning, in-game currency, chat, and even opening doors. My team spent an entire month thinking through how doors could be efficient, immersive, breachable, and hackable. That attention to an apparently small interaction reflected our approach to the project as a whole. Each system needed to work well on its own and contribute to the experience around it.

When we shared progress with the community, I put together a Live Letter — a short animated walkthrough of the systems we were shipping. Step through it below.

AB:CC Live Letter

1 / 11

Alpine Border: Coastal Castle

A community Live Letter on the systems we rebuilt for Lenburg.

Use the arrows, dots, or ← → keys. Press F for fullscreen.

Candlelit two-story interior hall with wooden beams, paintings, and doorways
2024 – 2025 — Detailed interiors and a rebuilt door system

The game reached more than a million plays. For a genre I had known as relatively niche, that level of engagement was meaningful. We had created something that reached beyond the audience I initially expected, and I could see the value of questioning familiar design choices. The experience strengthened my interest in improving existing ideas by reconsidering the assumptions behind them. An idea did not have to be entirely new for its implementation to make a substantial difference.

Working on Alpine Border also deepened my understanding of teamwork and systems thinking. The camera, weapons, doors, and communication tools all belonged to the same player experience. Their connections mattered as much as their individual features. Contributing to that larger vision helped me think beyond an isolated script and consider how my work fit into what the team was building together.

Large group of uniformed players posed in formation inside a ceremonial hall
UG community assembly — The communities behind the games

Throughout high school, I continued developing my skills and taking programming more seriously as a profession. These experiences ultimately inspired me to pursue computer science at the University of Michigan. They gave me a foundation in self-directed learning, creativity, and initiative, along with a clear reason to keep developing those abilities: I wanted to build software that people found meaningful to use.

That motivation also shapes how I approach this portfolio. Clickable images and linked projects give visitors ways to investigate my work and follow connections between experiences. These are familiar features, but I value what they make possible for a curious visitor. The same instinct that guided my work on Cintra continues to influence me: create an invitation to explore, then give people something worth discovering.

Roblox gave me my first opportunity to turn curiosity into a contribution that other people could experience. What began as a way to participate in online communities became the foundation of my professional journey. I learned to teach myself unfamiliar tools, contribute to a team, and consider how technical choices affect people. As I continue in software engineering, I carry that connection with me: the systems I build can give someone else a place to explore, connect, and imagine what is possible.