“Hi, I'm Alex. I'm 42, and I'm a self-taught developer.”
Everyone claps. “Hi, Alex.”
Right, introductions out of the way. Now we can actually get acquainted.
I've always been the sort of person who has to take a closer look at a new electronic gadget: find out what it does, how it works, and whether I can persuade it to do something else useful. Especially if it fits in a pocket or goes on a wrist. Phones, watches, pocket computers, headphones — all very much my thing.
When I was thirteen or fourteen, I got an electronic organiser. It's hard to explain now how exciting it was to own a device that could simply store some notes. But back then it was incredible. My own electronic notebook. Imagine that.
At university, I had an ASUS n30 PDA — not even a Palm! — paired with a Sony Ericsson T68i acting as a Bluetooth modem, followed by a Qtek S100 running Windows Mobile. That gave me plenty to play with: editing the registry, setting up internet access, installing office software and games. People around me often couldn't see the point, while I had an actual computer in my pocket. Of course I wanted to explore every corner of it.
Loving technology didn't stop me from occasionally being wonderfully dismissive of it. I remember shopping for another smartphone when a salesperson showed me some new HTC running the then-new Android. I opened the app store and, as I remember it, there were about five hundred apps. Come back when you've got ten thousand, I said. Then we'll talk about your Android.
We did talk. I switched to it eventually. It was practically Linux, after all, and I didn't even have to fiddle with the registry.
My first iPhone was a grey-import 3GS that somebody had brought from somewhere. The software still felt a little unfinished, but I loved the design and how easy it was to use. A capacitive screen! No stylus! Brilliant. I liked seeing how a new device changed familiar routines: what became easier, what became more convenient, and what still made me ask, “Why on earth did you do it like that?”
I'd also tried programming long before any of this, back in the nineties: the ZX Spectrum, BASIC, games on cassette tapes. Later, at school, we wrote HTML in a notebook. An actual paper notebook. Decent computers were expensive and fairly scarce; paper was readily available. I think I still have that notebook somewhere.
Friends and I later played with Delphi, C and a few other things, but it was mostly tinkering. Hardware interested me much more. After school, I spent about a year selling computers and putting systems together: choose the components, assemble them, configure everything, explain to the customer how to use it.
Then came university, radio electronics and many years of service in that field. People to manage, equipment, instructions and documentation. So much documentation. I picked up some C and Python, but mostly found more accessible ways to make everyday work easier, building little bits of automation in ordinary Microsoft Office to produce schedules, documents and reports.
That was my attitude to computers: if I'm doing the same thing over and over, perhaps I can get the machine to do it. Figuring out how is much more interesting than repeating the job by hand forever. Laziness can be a powerful motivator.
In 2019, my family and I moved to Thailand. I've been involved in various things here: a children's clothing shop, construction, property, crypto — naturally — while continuing to notice everyday annoyances that seemed worth fixing.
My first app grew out of one of those annoyances.
Paying by QR code is wonderfully convenient in Thailand. A market vendor has a laminated code beside the stall; you scan it with your banking app, enter the amount and send it. No change, no hunting through your pockets. Lovely.
Except you've sent the money and you're still standing there. The vendor checks their phone, waits for the bank notification, finds the amount and verifies it. If the print is small and their eyesight isn't great, this takes a little longer. Eventually they nod: received, off you go.
It felt like five or ten seconds most of the time, sometimes as much as thirty. A tiny thing, surely? Except you're waiting, somebody behind you is waiting, and the vendor is busy peering at a phone. Again and again.
It annoyed me. The phone can speak, can't it? Why doesn't it just announce the amount of the incoming transfer? The vendor could hear it, carry on working, and stop squinting at tiny text. Around 2019–2020, I tried putting something together using iPhone automation. I fiddled with it, couldn't get it working properly, and put it aside. The idea stayed somewhere in my head, alongside all the other “wouldn't it be handy if…” ideas.
Then AI came along.
Given my weakness for new technology, I never stood a chance of walking past it. I was practically destined to dive in, try things, figure out what it could do and find somewhere to use it.
My first impression of ChatGPT was that it was a more convenient Google: explain what you're looking for in ordinary words and get a coherent answer. For someone constantly trying to understand something new, that alone was interesting.
Then came experiments with images, text and video, both for fun and for work: a website for the shop, a catalogue, little promotional videos or product images for Instagram. I had no shortage of jobs to try these new tools on.
I also enjoyed stories about an AI supposedly becoming conscious or tricking a researcher. They mostly amused me. What I saw on the other side of the chat was a tool, and I wanted to know which jobs I could give it. Much as I'd explored my pocket computer, except this one could answer questions.
When I read that people were trying to write software with AI, I remembered the talking phone.
Why not? Or, as my wife likes to put it: why yes?
I had ideas. Let's try one.
That's how I ended up in Android Studio, with ChatGPT and early versions of Gemini as assistants. In the setup I was using, neither went into my project or edited files directly. I handled every exchange between the chat and the code.
Describe what I want, receive code, copy it, paste it into the project, try running it. Doesn't work. Copy the error or a piece of code back into the chat, explain what's broken, receive a fix. Paste it. Try again. Repeat.
Essentially, I was the terminal. A meat proxy: the clever machines were exchanging messages, and I was their clipboard-powered delivery service.
Meanwhile, I had to learn everything else: how an Android app fits together, what the operating system already provides, which libraries are available. I wanted the app to be small, simple and pleasant to use, without dragging in a mountain of dependencies. Not knowing how to achieve that yet didn't stop me wanting it.
I was also working on the design and drawing a mascot, which brought its own entertainment. My impression at the time was that ChatGPT produced prettier pictures but struggled to keep the character consistent. The next picture looked similar, but it was clearly a different little creature. Gemini's drawings were a bit less polished, yet it seemed better at preserving the character between attempts.
Gradually, a little table formed in my head: take this job to that tool, this other job to the other one, and check the result very carefully here. These days you could call it matching models to tasks. Back then I was just trying things, comparing them and remembering what happened.
I read accounts from other people attempting AI development, tried their suggestions, adapted some, and swore at others. There was no clear route laid out for me, just curiosity, experiments, mistakes and the determination to make the thing work.
And it worked.
The first time I launched the app on an Android phone and it actually started reading notifications aloud, I was ridiculously happy. There it was: the idea I'd carried around for years, tried on an iPhone, abandoned, and now finally had running on a phone in my hand.
That was a fantastic feeling.
Naturally, there were bugs. Back to ChatGPT and Gemini: change this, fix that, try again. It took several months before I thought I'd got the app into decent shape. Thought being the relevant word. These days, I reckon I could put it together in three or four hours, lunch break included.
That became ManiTalk, an Android app that reads incoming bank notifications aloud. I opened a Google Play developer account, put the app into testing and found friends and acquaintances willing to install it. They sent feedback; I carried on fixing things.
Eventually, it became something I wasn't embarrassed to offer people. Distribution turned out to be another matter. Reaching those market vendors means going out and explaining why they'd want the app — literally walking around with leaflets and download QR codes. That part is still waiting for me to get round to it.
But something happened to me during development, too. As I carried code back and forth, I gradually began to understand what I was carrying: how the pieces connected, what each did, what the operating system could handle. I read, remembered old things, learned new ones and slowly worked it out.
Programming turned out to be a very logical activity, and I've always had time for logic. The better I understood how things should fit together, the better I could explain the job, and the better the result became.
The phone had finally learned to say what I wanted. I'd learned that these AI tools could help me build my own apps. There were plenty more ideas in my head, and I was suddenly very curious about what else might come of them.
Coming up: how do you make an agent remember instructions? The secret nobody will tell you about. 😂