18 Sep 2025 #career #coding
I definitely can’t escape from legacy code.
This time, it’s an old WebForms application written in VB. Yes, that old. It’s a family business. Dad started it. And years later, his two sons got involved. It’s funny when during the standup meetings I hear, “Hey Dad…”
The problem
The code is a mess. Sorry, I mean it needs a lot of care.
I don’t blame them. It was the easy route with WebForms. Just drag and drop, double-click, and dump all your logic. It’s just like that framework encouraged people to copy and paste.
I’ve worked with at least 3 legacy apps with WebForms. All of them were pure spaghetti code. Zero best practices. “Coincidence? I don’t think so.” (Insert Toy Story character wearing a chicken suit)
The code needs care, but the database needs even more attention.
It doesn’t have foreign keys, and queries don’t use JOINs. If you want to join two tables, one of them has a string column with a list of IDs separated by a pipe (12|34|56). You fetch records separately and then loop through them to join them. Arrggg!
And please, let’s not talk about stored procedures…
The lesson
But from this project I’ve learned that if we don’t pay close attention to the initial database design, the backend side gets wildly crazy. A lot of hacks and patches to make up for a poor DB design.
There’s no need to go crazy with database normalization. Just:
- Every table should have an auto-incremented ID.
- Use a separate table instead of a column with a list of IDs.
- Keep data types consistent across tables. All “Status” columns should be either
BIT or an INT. Otherwise, conversions could go wild.
- Add audit fields (“createdAt” and “updatedAt”) to every table.
I wish they had followed those simple guidelines 10 years ago.
But more surprisingly, I learned that you don’t need a perfectly clean codebase to have a successful business. You will suffer? Sure. But running a business and writing good code are two completely separate skill sets.
The freshly graduated me thought I was only going to always create systems from scratch following all principles and practices to the tee. But working with legacy code taught me more than any coding course.
That’s why I made it one of the 30 proven strategies in my book, Street-Smart Coding: 30 Ways to Get Better at Coding. That’s the roadmap I wish I had when I was starting out.
Grab your copy of Street-Smart Coding here
17 Sep 2025 #misc
A long time ago, a friend asked me for a quote on a custom piece of software.
She and her friend wanted to start a marketing agency. And they wanted to build custom software to run it.
The problem? They didn’t have any savings or capital. And even worse, they didn’t have anyone to sell their service to. It was too early to build software.
I’ve been there too, on a different scale, coming up with value propositions and website copy for a freelance business I didn’t have yet. Later, it died with a single phone call.
After immersing myself in business podcasts and books, I’ve learned to:
- Come up with simple and cheap experiments to test a business idea
- Slap a price tag on whatever we’re building to see who buys
And simple experiments can validate big ideas.
The other day I watched a Diary of a CEO episode featuring a Netflix cofounder. How they validated their idea? He mailed a CD to his business partner to see if they could run a Blockbuster alternative by email. It was a cheap experiment. It worked.
Run experiments to learn, to grow, and to build something people really want.
16 Sep 2025 #misc
Back in August, I shared 7 content experiments I wanted to try.
As part of my daily routine, I write 10 bad ideas every day to keep my creativity muscles in shape. I wrote 10 ideas that day, but only posted 7.
I acted on some of those ideas. Here’s what I actually did:
#1. I redesigned the interior of my C# Idioms book. For the first version, I used Canva. Nothing wrong with Canva. But I wanted a more professional, less hobbyist design. So I added a copyright notice, an introduction, a table of content. The basics of a publishable book. Now, it’s available for $0.99. Next move? Offer it via Amazon.
#2. I uploaded all my coding courses to Gumroad. I have to admit the experience of Gumroad as a student isn’t as polished as Udemy for video courses. But it works well enough to show a video lesson with a description. Now, they’re available here: C# NullReferenceException Demystified, Getting Started With LINQ in C#, and Mastering C# Unit Testing with Real-world Examples.
#3. I packaged all my beginner’s material into the “C# Fundamentals Bundle.” That’s an ebook and more than 2 hours of video lessons to learn C#, at 20% off. It’s available here: C# Fundamentals Bundle.
After launching these, I notice a challenge: Gumroad doesn’t have a powerful discoverability feature. As creators, we can’t simply rely on Gumroad showing our products to users. At least, we shouldn’t expect it. We have to redirect traffic there ourselves. Now, my only source of traffic is my newsletter.
#4. I changed all prices to end in .99 and increased the suggested prices., I offer my books and courses as “Pay what you want.” I’ve received $1, $5, $7, $10, and $20 as payments. So I changed my current prices based on those anchor points.
Results? 10 free downloads and no sales. Not that bad. I learned about interior book design and practiced my copywriting skills. That’s helpful for any future project.
15 Sep 2025 #coding
“Is using AI totally forbidden?”
“When and how should I use it?”
“What’s your take on vibecoding?”
I was on a firechat with a community of new coders last week. Those questions kept popping up. They all wanted to know about AI.
I get it! There’s a lot of noise:
- AI is taking our jobs.
- “%X of code is generated by AI at $BigCorp.”
- Some guy shared on Twitter/X that he built an app with no coding skills and now he’s retired, drinking martinis in the Caribbean.
Don’t be discouraged by those headlines. (There’s a lot of nuance behind them.) We’re living in the best time to learn coding.
You won’t like it, but…
Here’s the rule:
Don’t use AI to generate code until you’re comfortable coding on your own.
If you only copy and paste what ChatGPT, Cursor, or $NewestFastestLLM gives you, you’re in trouble. You need to know if what that tool is spitting out is good code. And for that, you need your own judgment.
When in doubt, think of AI as a powerful calculator in math class. It makes you faster, but you still need to know how to solve equations. The thinking part is still yours.
AI can spit out code in seconds, even with a bad prompt. But coding is more than syntax. It’s also about teamwork, clear communication, and problem solving.
That’s why I wrote Street-Smart Coding: 30 Ways to Get Better at Coding, a practical guide to the skills that actually make you a better coder. It’s the roadmap I wish I had when I was starting out.
Get your copy of Street-Smart Coding here
14 Sep 2025 #misc
His name is Bryan Johnson and he has one single obsession: to stop and reverse his aging.
His obsession has led him to turn his apartment into a $2.5M science lab. He measures and tracks hundreds of markers to check if he’s getting closer to his goal.
He has the discipline of an Olympic athlete: eats only 2000 calories, takes 111 pills, and works out for one hour. Every. Single. Day.
He’s 45. But he’s aging as fast as a 10-year-old boy. (We don’t think of aging when we imagine a young boy). He beats his teenage children in almost any sport and aces any fitness competition with straight A’s.
His goal has attracted the media attention. Netflix has a documentary about him: Don’t Die. And you can find plenty of interviews on YouTube.
I watched his documentary and the interview on the James Altucher Show, here’s what I learned:
#1. Identify your self-destructing behaviors
The Big Mac and the 2-hour binge-watching on Netflix after work are coping mechanisms to run away from the life we hate.
That’s your mind looking for forms of pleasure. Learn to identify the self-destructing self and separate mentally from them. “Here it comes, the destructive Alice. Hi! I don’t need you around.”
That was Bryan’s first step before embarking on his goal of eternal life.
#2. Sleep 8 hours and eat well
If you don’t have $2.5M to turn your apartment into a lab, start taking care of your sleep and diet.
Here’s Bryan’s 80/20 for wellness:
- Go to bed at the same time.
- No light in your bedroom.
- No alcohol.
- Eat less.
- Eat more nutritious foods.
- Don’t eat before going to bed.
You don’t need plasma transfusions like Bryan. Rest and pay attention to what you put into your body.
#3. Live a steady life
Be like a high-performance athlete: focused on your body and mind.
Protect your mind by staying away from cheap dopamine like Candy Crush, news, social media, and smartphones. And, don’t use screens before going to bed. It ruins your sleeping patterns too.
After following his regimen for two years, Bryan has changed so much Face ID has had a hard time recognizing him. Maybe you don’t want to adopt a strict lifestyle to live forever, but if you want to age well, start today, not at 70 when it’s too late.
Well, it turns out I’m not that far with my healthy habits. I’m only 45 extra minutes of exercise, 99 pills, and a science lab away. But hey, we all start somewhere.