It’s been almost a year and some change since my last blog post, but was feeling the itch to write again. Writing about AI seems a little cliche, but it was what my gut told me I wanted to write about. In general, following what I want to do, rather than what I should do has nearly always paid off for me. I particularly see this at work for myself, there are always higher business leverage tasks I could be doing, but the stuff I actually want to build or do actually gets done. My interactions with AI for quite a while were strictly confined to a professional setting, but it has slowly bled over into my personal life.

The turning point

If you asked me a year ago about my thoughts about AI - I probably would have responded that it’s a cool technology with specific use-cases that it is great for, but generally way overhyped by the media. I didn’t really engage with it at all, I wanted to protect the skills I’d built up painstakingly over the past couple years - and didn’t want to “outsource my thinking/skills” to AI. However, one particular incident at work was the straw that broke the camels back.

We had a particular task at work that kept bringing our site down (upgrading our NextJS version) - and I spent hours trying to attack the problem, unable to quite nail down what was going wrong. Once I hit the limit of my frustration, I zoomed out a bit, and attempted to use AI to help dig into the issue. It was a bit of experimenting and trial & error, as I didn’t really know how to leverage it in my workflow. However, after a couple days of experimenting, it finally proved fruitful, it was able to identify the esoteric root cause of the issue (which I am pretty confident I would not have found without days of investigation). This was the first time AI helped me to accomplish something I was unable to do myself, and so my intrigue started.

The fun of building

With the above experience, I finally got my feet wet with engaging with AI professionally. However, the real draw for AI for me, probably the use-case I value the most over all others - is building personal software - applications that only exist for myself, or a couple people.

The first thing I actually built, was a web app to help me with the gym. I really enjoy running as a form of stress relief, but I was getting injured because I wasn’t strength training, and my lack of a solid muscular foundation was putting more pressure on my foot than was reasonable. However, the gym also had high activiation energy for me - I needed to think about what my routine was going to be that day, how much weight to do, how to record it,etc. Essentially there was a bit of bookkeeping that created added friction to actually do the thing. So - I created website I could visit on my phone, which was built specifically for the program I wanted to do (although 3x5) , and made recording my workouts a planning my next ones a breeze. All the thinking was done for me - it automatically switched between the workouts, automatically incremented weights for me if I hit my goals the last workout, and all I had to do was check a checkbox instead of typing out things in my notes app. I’ve found myself being a ton more consistent at the gym now with the friction removed.

The other big part it helped with, I was able to build graphs/visualizations to see my growth for the different lifts overtime, and seeing that explicit growth was really motivating. I am very growth oriented, and being able to see the data of my growth was really validating and gave me positive reinforcement to continue the practice.

From there - I was hooked. I’ve written code professionally for almost a decade at this point, but I’d never had as much fun building as I did making these personal apps. I built my own personal replacement to the notes app I used to use, built functionality for household management for my partner and I (meals, groceries, todos, etc.), and just kept iterating. The beautiful thing about these tools, is the complete agency I had in changing them. If you download an app from the app store, and don’t like something about it, you just have to deal with it. With my personal app, if I don’t like something, I can tweak it until the friction is removed. It has been a creative process, understanding my UX/UI tastes, as well as trying to identify points of friction in my life that software can help reduce.

The guardrails

The tricky thing about AI - is its very easy to just outsource your thinking to AI. Critical thinking, like most things in life, is a muscle you have to train, and if you stop using it, it starts to atrophy.

It can be hard to draw the line in the sand to establish what “outsourcing” your thinking actually means. Is it okay to use Claude to try to plan out an optimal route between 3 different stores in an area you want to visit in an afternoon? Is it okay to suggest books for you to read based on what you’ve read earlier? I think the answer to questions like these differ from person to person. However, I’ve set general guidelines to how I leverage AI in building tools for myself.

I use AI to help better organize my own thoughts

I’ve tried a couple iterations of “This was an interesting response from AI, let me save it to reference later”, and basically always end up not using the reference or not finding it useful. Instead, I’ve found it much more useful to distill any output of AI and synthesize it into my own words. It feels like taking a robotic thought and making it my own. Writing is a very important way I think, I take notes at work quite often, and outsourcing that writing feels like it crosses the line of delegating my thinking.

Human to Human communication is a skill I never want to delegate

Writing an email, text, or slack message is never something I want AI to do for me. How I communicate to other humans I want to remain authentic and human, and using AI to augment that communication is a bridge I don’t want to cross. That being said, before approaching difficult conversations, I will leverage AI to think through how to deliver difficult thoughts as kindly as possible. I try to make the effort to treat the AI input in these cases as different persectives on how to have the conversation, and steal the parts I agree with, but never take its feedback as the absolute truth. AI doesn’t know what it doesn’t know, particularly about the human on the other side of the conversation, so I try to take it’s feedback with a grain of salt.

Don’t regurgitate AI output, humanize the thoughts first

Slightly related to my first point, but this was something I came to via trial and error. Specifically, there was an issue with the site at work that was perplexing everyone. I was leveraging Opus to help me investigate what was going on, and was communicating prematurely. I luckily had some mentors in the call who correctly challenged some assumptions I was making, but in a state where no one really knew what was happening, I was letting AI lead me around by the nose a bit too much. As mentioned earlier, AI tries to be really confident about answering questions, and works with as much context as you give it. Often, it misses important context you have not communicated, so the thoughts worth passing on to other humans should be very thouroughly vetted and challenge.

Uncovering Anxiety

I try to engage in self-reflection quite a bit, and that is half the reason for the blog, to try to think out loud on a page and understand myself better. AI is really good at identifying patterns across seemingly unrelated things, and it has been a useful tool to gain a different perspective on things. What I uncovered was something very common, and underlying thread across both my professional and personal life - anxiety about open loops.

This is easiest demonstrated by my transition to an IC to management. As a software engineer, your entire job is loop closing. There is a jira ticket, or production issue, you investigate, and you solve it, loop closed. These are tangible, concrete goals, with clear end states. As I transitioned into management, the world got a bit fuzzier. How did I know if I was doing a good job? I couldn’t measure myself by code written, bugs closed, or money saved. I started dealing with more ambiguity, loops that aren’t easy to close, rather open loops that slowly shrink, but remain open for longer periods of time. As my responsibilties increased, the amount of loops I was aware of outpaced my ability to address them, so I needed to figure out what were the most important things to focus on, and to be okay if someone got annoyed that I didn’t answer their question in a timely manner.

Mitigating the anxiety

There are two main strategies I’m trying to incorporate to help to ease the anxiety described above.

The first, is to externalize all the things on my plate. One of the issues with open loops, is that they live in your brain rent-free, and take up space and focus from other things. If you can trust that it is tracked or written down somewhere, and you won’t forget about it, it allows your brain to disregard the open loop in the present. I’ve built tooling at work and in my personal life to easily jot down notes, deferring organizing/prioritizing to later, so I can defer the anxiety about those loops to an appropriate time, when I’m less emotional about it.

The other, which I’ve been struggling to start my engine on, is meditation. Meditation trains the muscle of observing your thoughts without judgement, and choosing to discard or keep those thoughts with intentionality. One mantra that stays in my head is “Thoughts are not truths”. If my anxiety tells me that I need to do XYZ otherwise there will be some consequence, it’s useful to be able to seperate the emotion from that thought, and decide if this is a thought worth the stress, or if it can be discarded. I’ve found guided meditation the easiest to get into in the past, so my goal is to try to engage more with that as a daily practice to help better train this muscle.

An incomplete ending

I feel like I should write more, to find something else to talk about, refine a point above even further, but I think I want to try just posting my “first draft”, leaving this loop open, and just posting more regularly. I want to lower my bar to posting, and increase my frequency. The more I write, the better I will get (hopefully), and ideally better get a sense of my voice and what I enjoy writing about. Even as a part of this blog post, I used AI to help polish up the visual layout of my site, which was pretty fun, but I want all the actual content on the site to stay purely mine.