Blogs

My First Week Working for Myself

profile image

Frank Tumminello

Founder

October 13, 2025


It’s been a full week since I officially started working for myself, and wow — what a blast it's been. Here’s a recap of how it went:


October 6 – SF Tech Week and Surf Reflections

I kicked off the week with a morning surf session at Ocean Beach in San Francisco. The event was for SF Tech Week! The waves were clean, the people were friendly, and the post-surf coffee and breakfast burrito hit perfectly. After rinsing my wetsuit and showering, it was time to dive into code.

This week’s main task was generating game data for active tournaments in the app. The current tournament structure lets authenticated users join via a public URL, create a team, and add a teammate. When a tournament is in the config state, it’s represented by a single gameId that acts as the parent for all related games.

Initially, I thought this would be straightforward — just define the order (which game happens when) and a next_game_id (the game the winner advances to). But the more I thought about it, the more I realized: single elimination tournaments are binary trees.

That’s when things clicked. It had been years since I’d worked with binary trees on LeetCode, so I had to brush up on how they’re structured, traversed, and balanced. Between GeeksforGeeks, my good friend Claude, and intuition, I came up with a clean solution.

Instead of managing both order and next_game_id, I decided to just rely on game order and have a binary tree class balance itself as new games were added. By inserting each game into the tree in order, the bracket could essentially build itself. Simple, scalable, and elegant.


October 7 – Skipping Tech Week for Code

I skipped all SF Tech Week events to stay in the zone — the problem was stuck in my head, and I needed to solve it.

The day started early with a workout at a new gym about 15 minutes from my place. (I’m on a mini “gym tour” right now to find one that’s a good value and not a nightmare to get to.)

I coded straight through until 6 p.m. and realized something about myself: when I work that many hours alone, I start to get a little moody. I’m fine putting in long days — I just need to get out of the house occasionally, go on a walk, and talk to actual humans to stay balanced.

That said, I made a big breakthrough on the data structure. Totally worth it.


October 8 – Pitch and Run

Another morning, another gym session — this time, legs. Felt amazing.

After coding most of the day, I went to an SF Tech Week event called Pitch and Run. The idea: founders and investors go on a group run while pitching ideas to each other.

What bugged me, though, was how many people abuse Partiful. There were 170 people “signed up,” but only about 10 actually showed up. The reason? Partiful hides addresses until you’re off the waitlist, so people RSVP just to get the location. It’s a broken system. Maybe I’ll think through a better event flow someday.

Still, the event itself was great — met a few founders, and one guy even built a working beer pong stats app back in 2013. Tons of downloads, poor retention. Definitely someone I want to reconnect with to learn the dos and don’ts for making Beernerd stick.


October 9 – Serendipity and Salad

I started the day by accidentally riding the F-line all the way to Bay Club along the Embarcadero — first time ever, and honestly a fun little surprise. Great workout, then back to the office for some light work and a quick salad lunch.

Afterward, I played a bit of ping pong with my roommate before hopping on a few calls and wrapping up early for a date night. No code written, but worth it.


October 10 – Debugging Wins and Tacos

Didn’t sleep great after date night, but with enough caffeine, I got into flow. The focus for the day was the Bracket component, specifically getting the scroll functionality working smoothly.

I ran into a nasty bug with the Intersection Observer. The observer was triggering incorrectly because my columns were collapsing to 0px height when transitioning — which, as I learned from the MDN docs, causes the intersection ratio to report 1 (or 100%). Changing the max-width to 1px instead of 0px fixed everything.

Huge shoutout to my roommate Ivan for debugging with me for over an hour — that victory felt good.

Lunch was at La Vaca Birria with Ivan and Miliki — solid tacos, though I somehow spent $20 on three (😅).

Rounded out the night with the girl I’m seeing in the Marina. Seeing all the 22-year-olds bar-hopping made me nostalgic about my own first years in SF. Time flies.


October 11 – A Wash

The hangover was real...


October 12 – Surf, SVGs, and Satisfaction

Sunday morning surf at Ocean Beach. I checked the cams and was shocked by how many people were out — the lineup looked like Linda Mar! Still, I scored a few solid waves and felt great.

Back home by noon with coffee in hand, I jumped into one last coding challenge: drawing lines between bracket cards. I brainstormed with Claude again, and we landed on using SVG path elements.

Each card gets a ref, I calculate positions relative to the parent container, and then draw Bézier curves between them. It took some CSS wrangling, but I eventually got it working. Still a small bug on desktop when multiple columns overlap in the viewport, but that’s for another day.

After that, I tackled my non-coding tasks — planned the week’s roadmap, created tickets, and even edited one of my vlog videos (done in just over an hour!). Scheduled it to post Monday morning. ✅

A fantastic end to the week — productive, balanced, and full of learning.


Reflections

My first week working for myself was a rollercoaster — full of breakthroughs, debugging headaches, surf sessions, and small wins.

I’m learning how to structure my time, protect my energy, and celebrate progress — even when it’s incremental.

Here’s to week two. 🚀