Warning
Rod and Reef hasn’t been released yet. Its release was delayed (~October, 2026)
Rod and Reef is the largest and most long-term project I’m currently working on (2026), a Roblox fishing game built around exploration and progression. The premise is simple: you’re dropped across some islands, you survive by fishing, and you slowly uncover what the ocean is actually hiding.
The core loop is built around fishing as the main mechanic. discovering new species, selling your catch to NPC traders, upgrading your rods and bait, and eventually pulling things out of the deep that probably shouldn’t be pulled out.
My role
I’m the lead developer of Rod and Reef. I started out handling the whole client side, every piece of UI the player sees and touches, and I’ve since been promoted to lead.
As lead I’m responsible for the heavy backend: how player data is saved and kept in sync, the luck behind every cast, quests, dialogues, seasons and leaderboards. The goal is for the game to stay maintainable for a long time and be technically clean. In practice that means the server is the authority, and the content lives in data instead of code. Most quests and dialogues are generated from the design documents, so adding characters and quests doesn’t mean touching the systems. And when the way data is stored changes, old profiles update themselves when you join.
I haven’t left the frontend either. The fishing minigame fires a burst of particles on every hit, dialogues type out letter by letter with the camera framing the conversation, subtitles follow the actor’s voice word by word, and the UI refreshes the moment your data changes. The aim is for every click to feel like it paid off.
Architecture
The project uses vanilla Luau scripting with an internal service/controller structure designed specifically for this game’s needs. We deliberately moved away from frameworks like Knit: at our scale and with our requirements, they introduce more overhead than they solve. The module architecture is custom and keeps server/client boundaries explicit and clean. The server owns the game state, and the client keeps a read-only copy of what it needs to draw.
The technical write-ups for each system are in the portfolio version.
Closed source - active development.