The Digital Tim project has been a ridiculously fun side gig.
I’ve been a Star Trek fan since I was a kid, and honestly, my dream hasn’t changed much: I want an AI I can speak to that knows everything about me, runs entirely on my own systems, and speaks with the voice of Majel Barrett – the iconic computer voice from Star Trek.
We’re very much in the “Pong era” of AI right now, but given how fast things are moving, that dream feels less sci-fi fantasy and more “this might actually happen soon.”
That idea, combined with my natural tinkerer mindset and an unhealthy attraction to shiny new tech, is where Digital Tim came from.
Coming back to code… differently
I’ve been working as a UX Designer for around seven years now. I still code occasionally in my own time, but let’s be honest – my dev skills have atrophied a bit.
Vibe coding has been a great re-entry point. I understand the principles well enough to fix things when they break, and I can still read and reason through code – especially in languages I’ve worked with before.
What’s really changed though isn’t what I can do – it’s how I approach building things.
Old dev Tim vs present-day UX Tim
Back in my developer days, I took a lot of pride in the quality and efficiency of my code. I touch on this briefly in my “Transition from Dev to Designer” post.
The goal back then was simple:
- Write clean, efficient code
- Do more with less
- Architect things so parts could be swapped out easily
User experience? That was largely someone else’s problem. The job was to make the thing work as designed.
With Digital Tim, that mindset no longer made sense.
Architecture and performance still matter – but they’re no longer the primary goal. The focus shifted hard towards user experience. Meeting users where they are mentally, instead of expecting them to adapt to how I think as a developer.
Because let’s be honest – if your mental model is rooted in dev efficiency, it’s often not a great user experience.
“They’re using it wrong” is no longer acceptable
“They’re using it wrong.”
That attitude is completely gone. When I first put Digital Tim out into the world, I made sure I could see exactly how he was behaving and responding. That visibility paid off almost immediately.
For example, in the first iteration he referred to me in the third person:
“Tim used to be a developer. He switched to UX design in 2018.”
Accurate but not as intended. He’s meant to be me in the digital world – not talk about me. That feedback drove the first major round of upgrades.
Letting users break it (on purpose)
“Be as brutal as you like.”
That’s a very different energy to how I used to approach feedback as a developer. Some feedback was about interface tweaks, but most of the improvements came from watching real conversations happen.
For example:
“Done any DJ sets recently?”
Digital Tim couldn’t answer that. Why? Because with access only to a vector store, he had no temporal awareness. He knew what DJ sets I’d done – but had no concept of when they happened.
Add performance issues into the mix and things got worse. Depending on the question, GPT-5-mini could take up to 30 seconds to respond! That’s an awful user experience. No one’s waiting around that long in today’s attention economy.
That’s where the work on supercharging Tim came in.
Designing for humans, not ego
The entire project has become a loop of refinement driven by real user behaviour – not what makes me feel clever as a builder.
If someone asks a question in a way Tim can’t answer, that’s not on them to change how they ask. That’s on me to improve the system.
My role as a UX Designer has fundamentally changed how I approach development. The mindset is no longer:
“Let me get this working the way I want.”
It’s now:
“Let’s build this so people can naturally interact with it – and let’s design feedback loops that make it better over time.”
When development and design collapse into a single discipline, the paradigm shifts completely.
And honestly?