A lot has happened in the 3 years since I last posted. I’m still working as an SRE/DevOps Engineer and trying to keep up with the ever changing world of AI software development popularly known as Vibe Coding. Since my last post, other aspects of life would get rather busy. I started and am now close to completing a Masters in Computer Science and earned AWS’s legendary Golden Jacket. With those and other life changes keeping me busy and a lot of my writing going to papers, I still found one or two days a month, or more during holidays to test out the array of tools that came out. In that time, I’ve come to some realizations about how to best use AI to develop the applications you want, the consequences of actually trying build all your own apps and how AI may be changing the appeal of the apps we’ve been so excited to build.
As I’ve blogged about, I have primarily worked in SRE and DevOps roles and my day to day looks more like working with Linux, Kubernetes, Ansible, Terraform and AWS, handling the deployment, support and infrastructure management around an application rather than writing the software itself. Still, I got my start through ChiPy’s Python mentorship program and Hack Reactor, a coding bootcamp focused on full stack JavaScript and have found myself from time to time working on a side project in Python/Javascript (this blog used to be Django/Angular), or needing dig into C#/Java in a couple cases through my career. That is to say that I’m familiar with and would have previously felt confident in being able to write what I need to in an application, but the cloud or on-prem infrastructure around it is what I’m most fluent in.
In 2022, like most of the world, I heard of ChatGPT. I’d heard about the prior GPT’s on ML related podcasts, but hadn’t checked it out really thought much about it until seeing ChatGPT in action. That winter, I was starting to want to work on a side project, was getting annoyed that there was no official Fitbit skill for Alexa that I could use to log food and used it as an opportunity to collaborate with ChatGPT on an app for the first time. It’s weird to remember the small context lengths of GPT3.5 and how a code file might be too much to generate in a single output. Additionally, without all of the tools that would be built around it, this still required creating files manually and copying and pasting chunks of code back and forth while testing, with an AI model that was promising but nowhere near as consistent. I’d never written an Alexa skill, before, but with help from ChatGPT and ultimately some guides on the internet since it’s deployment instructions weren’t accurate, I built NickAte and could now log food from Alexa. Next, I made an additional skill which would take Fitbit’s data, send it to ChatGPT and give the user a GPT3.5 health summary.
After that, my most recent blog on a coding project was using Github Copilot for the first time to create NickLiftWeight, a workout tracking app which I used for a few months which let you track progress over time. First, I deployed it as a webapp and then created an Android mobile app. The integration into the code editor felt so simple yet added so much convenience, even before the rise of agentic tooling.
Then came Cursor and the beginning of agentic coding for me. I’d rework Nick8 into a similar react native mobile app. Google had removed Fitbit’s web-based dashboard which had been the store of more than a year of food logging and workout data for me. I decided it was time to move away from fitbit entirely and run my own version. And unlike the Alexa skill, which looked up items in Fitbit’s food database, this mobile app’s primary purpose would be to take a picture of your meal, send it to OpenAI’s API and get the nutrition facts, allow you to edit anything that looked wrong, and then log it to a database. And I did have this app on my phone for awhile and used it for easy logging. This was what I was most excited about at the time, though I also realized there was a sea of apps doing the exact same thing. Still, this one was mine and it was cool to building my own tools.
Here we start to get to a problem I quickly realized. It’s exciting having the AI assistance to drastically speed up creating whatever idea you have, but trying to keep multiple sites up and running was also a task that I’d have. For NickLiftWeight and Nick8, I set them up in similar ways, using OAuth to allow Google login, hosting them on EC2 and using DynamoDB to store user data and setting up nick8.com and nickliftweight.com. Still, even with me as the only user, I’d forget to turn on cert rotation and in a few months would have to login to the instance and remind myself how to renew the certs. It’s not that it was a lot of work but every app I’d try to maintain would add another thing that I would need to keep track of. I’d renew the certs a few times before eventually falling off the habit, not using the apps for a bit and shutting down the EC2 server. Similarly, the Alexa skills would stop working after my Fitbit API key would expire while I added a mental task to rework everything. From there, I tested out Windsurf to build a couple iterations of a time tracking app, which was meant to be a personal Jira that had a builtin calendar, though still spent a lot of time trying to get the calendar styled right.
I’d take a little bit of a break from my next project and retry my Jira/calendar app in order to test out Claude Code and was wowed by how good the UI was getting and how within an hour I was back at the spot it took me a few days to get to with the previous app. There was no need to go back and and forth with css to get the calendar rendering properly. The code quality and ease of use were certainly appealing, although I’d wished that I could generate images for my app natively through Claude.
While working on this project, OpenClaw wen’t viral. I set it up on EC2and played around with it, asking for daily AI news updates and was surprised how close it could get in the process of booking me a haircut without giving it my credit card. I also enjoyed the ability to connect different models which could be used together and set up API keys with limits in case something went wrong. It was neat seeing the use cases of different API keys. I couldn’t setup Gemini without a credit card and had no way of setting a limit at the time. Oddly, that’s probably the main reason for it being my least used AI.
I pulled down the code I was working on to OpenClaw and had it restyle the app with a Formula 1 theme, creating a fictional leaderboard of racers utilizing OpenAI’s API keys to allow it to generate images with Dall-E while using Claude Opus for the main driver. The ability to use multiple models together was something I experienced here for the first time, and honestly, the lack of image generation as part of building an app was something I’d been missing for the start. While possible to setup earlier, this felt like the easiest it had been to incorporate Dall-E into my app building. The API key from X/Grok allowed for searching AI news there, OpenAI for Reddit and many more integrations.
Ultimately this app would be something I would use for tracking tasks outside of work. I liked having the calendar view of what I worked on and it helped keep me focused. I used the builtin timer to log all of the time spent on assignments for my most recent Masters course as well as all study time for getting AWS’s Gold Jacket and like being able to see breakdown by subtickets. Basically each ticket can have parent and child tickets and I added a nice break down of time spent by subticket. I also added silly things like badges for time spent and tickets created/completed, as well as the racing leader board. For any side projects, this remains an app that I’m continuing to use although I’m beginning to rethink my strategy.
I added a small app on my phone which tracks time spent driving/traveling based on my phone’s builtin sensors and also syncs any workouts recorded to the calendar which was a neat addition. In addition, I had it build out a smartwatch app which I could use to talk (or more send small voice messages to OpenClaw). This latter gets into an observation that I started having working with AI. Even with smooth enough buttons for creating tickets and moving them around, I often found it way easier to send a voice message to or text OpenClaw and have it create, move, or update the ticket manually. Give it a screenshot of class assignments and I’d have tickets for each. I gave it an email and set up the my email to autoforward all Blackboard submission confirmation emails to it, so the AI could also update tickets accordingly. And of course, setup ChatGPT and Claude MCP servers so I could ask those LLMs about my tickets as well.
And honestly, things have gotten better from there. ChatGPT/Codex have builtin enough of OpenClaw’s features that I’ve more or less moved back to the beginning with ChatGPT as my primary tool and the image integration is more seamless as ever. I can’t help but feel that everything I did with OpenClaw would be even faster now in rebuilding the same site and I’ve had it build a number of small sites and apps in testing it, though I feeling some kind of questioning about the purpose. I can ask and have a mediocre RPG game built pretty quickly, new UI’s for my blog while importing the same, new UI’s for the food logging app, and many more but honestly…
Speed vs Quality
The AI is getting better and better at putting together apps and listening to instructions. I feel like it’s become very easy to create a mediocre app and quickly get to a place that would have taken weeks or months previously. However, I feel like I am one of many building out Jira clones, food logging apps, etc. Ultimately, every service I try to run for myself is something that I would also have to support and while it’s exciting seeing how quickly an idea becomes an app, I’m finding myself feeling like to really have a good product would still take a time and dedication and with school and work I don’t feel like making the toy apps a full time job. With the rapid growth of AI, any quality discussion could quickly become outdated. Ultimately, over the last years, I’ve created a lot of random apps that served their purpose but never desired to have users other than myself or that felt like anything I’d want to make my larger project.
Motivation
So, why do all this then? I think it’s FOMO but perhaps not unjustified. I’ve been listening to AI podcasts for the last 10 years, longer than just the current hype and am excited for new tech. I do get excited about getting answers from my custom app through ChatGPT, autologging drives and workouts and seeing the interactions that are possible. From a career standpoint, every tool and breakthrough can potentially change my industry and I want to intentionally stay up to date with the cutting edge rather than having to wait until it’s forced on me. Practically, I’m going to continue testing new tools and models by giving them more apps to build and likely seeing higher quality outputs as time goes on. While the speed of developing web apps has also increased, I feel to me the demand for them has lowered due to the new UI I’ve become used to.
Our new UI Overlord
As I mentioned earlier, I found myself using my Jira app to create tickets less and less. Chatting with AI and using tools like Wispr Flow has changed how I interact with a computer and asking an AI to make changes for me feels so much easier. I felt this for creating tickets, logging time, etc. I also started to realize the same is likely true for workouts or anything else I want to track. Ultimately, the UI we’re used to is starting to feel like it needs a replacement.
So, obviously, voice to AI has become the easiest method of input and update, meaning that all I’d really need from a Jira-like app, food logging or workout app is the dashboard. There’s an image of the ideal in my mind where I just wear Meta glasses or something like them that film and watch everything I do, collecting all my meal data, workout data and work automatically and updating everything with no action on my part. Practically, that falls apart at present for a few reasons such not being to do that for office work, privacy concerns if I’m streaming everything, limitations with Meta glasses, battery, etc, but still, it feels like this is actually feasible.
Ultimately my two takeaways for data collection and input is that voice or AI chat are the smoothest but that automatically collected is even better. And then is all I need from an app a dashboard? Or can that just be summarized with an AI response. What a strange time.
Approach to the Future
So, there’s a new UI and coding is now much quicker and what we see is probably the least capable AI will ever be going forward. Honestly, I’m having a hard time predicting the future, but seems like choosing goals is more and more important. There are still breakthroughs to be made and problems to be solved and I’d like to move on from the toy projects to bigger goals. I’m not sure that AI is just a tool, but that definitely is one of the things that is. While, I’m nervous of what the future of work is, like many, it’s also exciting being able to quickly take idea to reality and I’m looking forward to watching further developments.




Leave a Reply