Vit Salomon's Thoughts

Getting Mvp Over the Line

Well, the time has come to start putting all the modules together. Since there isn’t any easy way to test the separately.

Timeline

One of the largest modules of the library core. It holds everything together time-wise and instructs other modules’ work. First pass I was quite satisfied but I had some comments. The strangest was various naming for internal variables that are accessed through getters and setters. Some of them had Internal suffix. Some were short-handed.

I also asked Grok to explain some stuff that didn’t seem easy to read. He went through the comments and prepared our discussion topics and explanations. We agreed on the changes and I added more details to its explanation and why I still think he made it confusing. We agreed on it and changed it for better readability and improved flow.

Volume manager

Pretty simple module. Grok, however, made an easy mistake of doubling ownership of some references. I suggested that instead of keeping the references and having a sync function, I’d rather have getter functions passed at construction time. Grok understood the interface and that it helps to avoid unnecessary coupling and added those changes.

TimeSyncedPlayer, Cleanup and Double-Checking

The main interface that brings all modules together. One ring to rule them all, simply. Not much was done incorrectly by Grok here. This went pretty smoothly, although we will see once we start putting it together in the test app.

Next up I asked Grok to remove doubled type definitions, utils and constants. This was something I have noticed since it started working on the second module. But it seems like little bit difficult to explain where to put things. But I decided to delay this step until later when all pieces are there and it’s easier to reason what and where should belong.

Next up I let Grok to double check all three packages that they work with one another and that they match the spec and are properly wired internally. It discovered on missing functionality and fixed it.

Test app, here we come

Now it’s starting to get real. The next task was to wire up the test app to the packages. Once that was done, there are still two more tasks I need to solve with Grok before I’ll be able to fully test the system properly.

The first one are a few adjustments on the debug app, external binding for the server, so I could test on LAN devices, import/export of the configuration and finally an option to visualize videos that are being preloaded in the background or kept around. Interestingly, even though this seemed trivial I had to ask Grok for correction. In the prompt I specifically mentioned “media with non-empty src attribute” to steer him towards CSS selectors. Yet, in the first implementation it created an effect that ran on various events and tracked elements by testing their src attribut and adding a class on them. So I had to request changes on the PR to fix it.

The last step is configuring the vite server to serve static assets like media for example. Before submitting first version Grod double checked that file-system traversion is not allowed. Pleasant, surprise.

So with all pieces now set in place I ran the test app and started configuring a demo I used in the passed when I worked on a similar project. And it fucking works. First try. Seeking included. I… I’m left quite speechless to be honest at the moment.

So where is it?

The repository is still private. I want to do more testing and also discuss it with someone knowledgable who knows about licenses and how that would work when I co-created something similar for a private use years ago. That’s been scratched as far as I know.

For me this was mostly about the learning experience of programming with an agent, what type of coworking works for me and what are Grok’s abilities. I’ve been a sceptic for longer than most of my colleagues and rightfully so because the code they delivered with agents was easily noticeable and of low quality. But if the tool is used correctly it can work now. And I used only 50% of the weekly budget of Super Grok tier to get to this MVP.

Tags