First Steps: The Journey to an MVP Begins!

July 27, 2025

Building out a product requires a lot of time and effort for planning and visioning. Luckily, I’ve been ideating for a long time already, probably about three years now. What I needed to finally move from ideation to building was a roadmap. That roadmap began with listing out the features I wanted to see, then choosing one to start building.

The first feature I chose to build was the Tournament Management feature. Why? Because it’s the gateway to the rest of the features for Major League Wallball. I started by writing out a Goal and Purpose, detailing the Who, What, Why, and intended Outcome. This can be as long or as short as needed, but it acts as the north star for the feature, explaining why it’s needed.

Next, I wrote out the flow for the feature, describing the series of steps a core user (Host, Referee, etc.) takes from opening the app or tab to achieving the desired outcome. For Tournament Management, this was about ten succinct bullet points, such as: 1. Host clicks on “Create Tournament” tab. 2. Host enters tournament event details (title, division (Open/B/NWA, etc.), initial bracket size (8, 16, 24, 32, or 64)).

Then I outlined the API contract. I created a table with columns for HTTP Method, Description, Path, Request Params or Body, and Response Summary for each endpoint. This helps plan what data is needed and which endpoints to build. Doing this first, instead of writing code as I go, helps me lay everything out and avoid overestimating or underestimating requirements. It also lets me see how each feature will be implemented at a high level.

Finally, it was time to implement the interfaces and enums to help structure the data I’ll be working with. For example, the Tournament interface defines the structure of data passed into the POST api/v1/tournament endpoint to create a tournament event. This helps validate requests and avoid errors later in the flow. Defining these early helps prevent technical debt and ensures clarity and structure in the codebase.

It’s been rough going back and forth with ChatGPT and trying to figure out the perfect Project Instruction for it to best help me become a self-reliant, exceptional software engineer. Most of the time spent getting to my first closed Jira story was in iterating on the Project Instruction prompt. The AI assistant would often gloss over or assume things, which left me in the dark about building from the ground up, sometimes even writing out code for me. I finally got it to a state where it involves me more in the process and only moves forward when I’m ready and after it reviews my work.

So far, it’s been a really fun experience learning how to build from the ground up. It’s also been incredibly helpful using ChatGPT as both a mentor and product manager. Having ChatGPT act as my personal senior software engineering mentor, product manager, and ally has helped me emulate the feeling of having a teammate there to answer my questions and support me every step of the way.