Right now I’m looking at Claude Code running in the console. I’m watching it churn through stuff. For a few different reasons, this week has reminded me of a couple of old projects that were pretty intense and kind of fun in hindsight.
The first one was about 25 years ago. We were building a CRM for the Nokia 9210. We were doing it in Java. The Java virtual machine had a memory leak, and at some point it would just randomly crash the app.
The company I worked for was a Nokia partner, and we were working on a pre-release operating system. So we were waiting for them to fix the JVM before the gold master. That fix never came.
We still needed to launch the product. In the end we had to rewrite the whole thing in C++ on top of Symbian OS.
I didn’t know anything about C++ at the time. But when you’re inexperienced, you don’t really know your limits. You just think, how hard can it be?
We had a senior engineer on the team - Jorge, great guy! - who was incredibly helpful. He helped me understand the operating system, the framework, the language. He helped me get set up. He helped me understand why things would crash. And of course, that bloody cleanup stack.
His help got me a long way. The rest was three or four weeks of basically not sleeping every other night. I don’t think it could have gone on for longer. I don’t think anyone could physically take it.
But we got the whole thing rewritten. And if you know Symbian OS, you know you can’t really mess things up. If you do, the app just crashes. All the time.
Looking back, what makes it interesting to me now is the pressure. It was a do-or-die moment in a very short time frame. Not enough experience to understand what was “too hard”. So you just keep asking, I wonder if… And then you try things, and iterate, until somehow the product ships.
The second story is closer to what I’m doing this week.
Claude Code is running on my Mac. It’s analysing this old, legacy Windows desktop application codebase. I’m trying to reverse engineer a path to migrate it into one of our cloud apps.
Honestly, I have no real idea what is going on in there. I’ve tried reading some of the code, not going too deep. I can follow some bits. But my patience is not what it used to be.
It reminded me of when I bought my first laptop. I had to send it back to HP because something was wrong with it. I can’t remember what. At the time I was running Linux. I think it was already Ubuntu.
While the laptop was away, I had to use a Windows desktop I had at home. So the plan was: Linux on the laptop, Windows on the desktop. The desktop was shared, so I wanted an easy way to share files between Linux and Windows with minimum fuss.
Around that time the Mono guys had just released something like version 1.0. I knew a bit about the framework, but not much about .NET or C#. So I started reading the manuals. How the framework worked on Linux. How to access system services. How discovery worked. I think it was built on top of Avahi, the same sort of thing the Mac uses for local network discovery.
Then I looked into opening an FTP port. And the FTP protocol itself, which is fascinating because it’s so simple. Almost stupidly simple.
Anyway, long story short: I read the docs, wrote the app, and got it to build and run on Windows. Then my laptop came back. I installed Ubuntu on it. I ran the app.
It just worked. Flawlessly.
I was so happy. Not just because it worked, but because of how it happened. Again it started with that same thought: I wonder if… Then you read things, you try stuff, you wire it all together. And sometimes everything just falls into place.
There’s a lot going on at work right now, which is what triggered these memories. But the main thread running through all of this is the same mindset. You go, hmm, I wonder if… And then you get on with it.
That’s one of the things that excites me most about working with good teams. When people have that attitude. They see a problem, they get curious, and they just get this stuff done.