24 Feb 2025 #misc
Pierre started coding back in the 60s and still maintains a 30-year-old codebase.
Thanks to the magic of the Internet, and to one of my posts going viral, I’ve exchanged a couple of emails with Pierre. I don’t know him in real life, just on the Internet.
His story has captivated me from the beginning.
I know only about a few industry veterans, and even fewer who are still actively coding.
Another of those veterans is Leslie at one of my past jobs. He was a Distinguished Engineer, a title created just for him. He was in charge of reviewing every single one of our PRs. He didn’t miss a single comma.
After going through every boom and hype, here’s a veteran’s take on AI
Since the 60s, Pierre has gone through every boom and hype in this industry.
He witnessed the Y2K panic, the birth of Java, the rise of Agile, and probably more that I don’t remember now.
In one of our emails, I asked Pierre about his take on AI. Today, we only see headlines of CEOs claiming AI generates most of their code, along with headlines saying coders are doomed.
But, here’s what Pierre, with his wealth of experience, told me about AI (slightly edited for brevity):
I’m skeptical about AI. I just don’t see automatically generating code from typical imprecise specifications…Apparently we’ve run out of Internet on which to train AI. It is now feeding on its own hallucinations, like mad cows eating their own prion-riddled offal, or the inbred Hapsburg dynasty.
If Pierre, who has seen quite a lot, is skeptical, we shouldn’t be worried. I’m not.
Pierre reminded me of that joke/meme that we’re still safe because AI needs unambiguous and well-written requirements. As long as clients who don’t know what they want exist, we’re still in business.
I don’t think AI is taking our jobs anytime soon. Sure, we have to adapt. AI is changing the landscape. For sure, coding in 2034 will look different. We can’t ignore it.
AI is like using calculators in math classes. They make us faster, sure, but they can’t do the thinking for us.
23 Feb 2025 #misc
“What I cannot create, I do not understand.”
That’s one of the quotes on Richard Feynman’s blackboard at the time of his death. See the full picture here.
We truly have learned something when we can teach it. Feynman also said that we truly understand a subject when we can teach a beginner’s level lecture on that subject.
But that first quote reminded me of the famous mantra among programmers and coders: “don’t reinvent the wheel.”
Back in my first coding classes at university, one of my teachers taught us to write our own “Connection” class and use it wherever we go. We were learning how to connect to databases, probably using PHP or something.
Well, that wasn’t code reuse. That was reinventing the wheel and taking our reinvented wheel with us everywhere. We had ORMs in those days.
Reinventing the wheel is a bad idea. It only makes sense when learning to code or a new concept. Understand something, disassemble it, then recreate a simpler version. In fact, that’s the best way to learn coding.
The full quote should be “don’t reinvent the wheel. Only reinvent it to know how it works. Then use a real wheel.”
“You can only recreate what you understand” works in the other direction too. You only understand what you can recreate. You only understand the wheel you reinvent.
22 Feb 2025 #writing
It took me almost half a day to come up with yesterday’s subject.
That was after claiming, a few days ago, that writer’s block is not the real problem. Well, it took me more than usual to mark the calendar yesterday, even after looking for inspiration in past posts and half-baked ideas. I ended up writing about one of my recent frustrations: Hourly billing.
In case you’re like me yesterday, struggling to find what to write about, here’s a list of prompts to help you write today.
- Expand an old post.
- Dissect a book passage.
- Describe what’s around you.
- Turn a 10-idea list into a post.
- Write about your favorite quote.
- Summarize your favorite podcast episode.
- Write a letter to your past or future self.
- Expand one of your comments on social media into a post.
- Answer a question from Reddit, Quora, or any other forum.
- Set a timer and write about whatever comes to your mind.
- Open your browser history and compile the answers you found.
- Scroll through YouTube or any other feed and write a reaction post.
Even if you don’t have anything to write, don’t miss two days without practicing. Your writing muscle will atrophy. And here’s a list of tasks for the days you don’t feel like writing.
21 Feb 2025 #misc
Too much free Internet advice feels daunting.
I’ve gone all in on my writing skills since last year. And I’ve found all kinds of advice. Write daily. Don’t write daily…Use AI. Don’t use AI…Sell more. Educate more…Find a niche. Don’t find a niche…Do this. Don’t do that. Arrggg!
Not all advice is suited for everyone. Not everyone is at the same stage of the journey.
The other day, someone tried to sell me a course to optimize sales funnels, when I didn’t have anything to sell yet. Good advice, bad timing. The same happens with most advice we get.
Instead of taking advice from anyone and everyone at the same time, follow someone who has achieved the same results you want, listen, test, and adapt their advice.
20 Feb 2025 #misc
“I have developers who charge me $18 per hour. Your fee is way more expensive.”
I was on the phone with my first lead, a small business owner looking for a software engineer. A friend connected us. I was trying to start freelancing in my local market. And if I got a yes, I was about to become the subcontractor of a subcontractor.
I gave him a flat fee.
I had already heard about the dangers of charging by the hour. I had watched a couple of YouTube videos and learned a sales script.
But on the other side of the phone, he divided my flat fee by the estimated hours to completion he had. And he tried to persuade me to give him an hourly rate and an hourly rate as low as the one he already had.
Hourly billing is nuts. Here’s why.
1. Hourly billing doesn’t encourage productivity.
The better I become at my work, the faster I do it. And if I charge by the hour, the faster I do my work, the less money I make.
Sure, I could raise my hourly rates, but that would put me in a race to the bottom. “I have developers who charge me $18 per hour,” he said.
2. What should I charge for?
There’s no clear line between billable work and non-billable work.
If I set aside my time for that client, but I’m waiting for his input, should I charge for that? While I’m thinking or doing research, should I charge for that? What should I charge for? Only for the time I’m typing symbols on a page? Arrggg!
3. Hourly billing invites micromanaging.
“Hey, did it take you X hours to do that? I have people who do that way faster! Let’s revisit your timesheet.”
And that’s how my freelancing coding business ended with one phone call. Do yourself a favor and don’t charge by the hour. I’ve forgotten that lesson and I regret it.