Just updated my "about" page.
In the grand scheme of things, these projects are but a blip, but it brings me great joy to see them pieced together.
I'm proud of them.
https://t.co/ALWPPvwHCq
I'm reading Source Code, and apart from being a beautiful, touching and sometimes humorous book, it makes me realise why, ever since I was kid, @BillGates fascinates me and why I see him as a role model. I resonate with, and admire his life.
It makes me realise, that in this era of AI craze, how important it is to reflect, deeply introspect and make sure your mind stays sharp. What good is to have a tool that can make everything 100x faster, when you are consistently building the wrong thing?
Started playing Metal Gear Solid 3, and maybe I'm too early in the game, but find it surprising that in many rankings it appears in the top positions. I might change my mind throughout the game though.
Until now, my ranking is:
1. MGS1 (a masterpiece)
2. MGS2 (dat theme)
3. MGS3
I've been coding for 40 years. Here are the top 5 things I wish I knew when I started.
1. 90% of the job is debugging and fixing, not creating new code. Which is still fun if you're good at it.
I used to think programming was mostly writing fresh, clever stuff. In reality, most of your time is spent in other people's (or your own past self's) messy code, chasing down why something that "should" work doesn't. Get really good at debugging early. Learn assembly reading, call stacks, and kernel debuggers. It pays off hugely. The best engineers I saw were absolute magicians at this.
2. Manage complexity from day one (ie: don't write slop and "fix it later" if it goes somewhere).
Very early on, I'd hammer out code and refactor afterward. Big mistake. Now I start with clean, skeletal structure (minimalism first) and flesh it out carefully, with AI or not.
Messy code compounds and becomes unfixable. Upfront discipline on architecture, naming, and simplicity saves enormous pain later, especially in large systems like Windows.
3. Tools and processes matter more than you think
We suffered with basic diff/manual deltas instead of modern source control like Git. Branching, testing, and good tooling would have made porting and collaboration way smoother. Invest in your environment, automation, and reproducible builds early. Good tools amplify your output; bad ones (or none) drag everything down.
4. Understand the problem and existing code deeply before writing
Don't jump straight to coding. Map out the problem, study what's already there (you'll inherit a lot), and plan. Low-level knowledge (hardware quirks, alignment issues on different architectures like MIPS/Alpha) was crucial. Also: assert early and often. It forces clarity.
5. People, politics, and "the right tool for the job" beat pure tech arguments.
Brilliant engineers still argue endlessly. Sometimes it's about ego, not merit. Learn to spot the difference and "steer" the conversation rather than "winning" it.
Bonus from experience: Side projects like Task Manager (started at home because I wanted the tool) can become your biggest hits. Ship small, useful things often. If you're just starting, focus on fundamentals, patterns over syntax, and building resilience for the long haul. It's going to be a wild ride, but the fundamentals still matter.
Aimed to bump production quality up:
- New lens that highlights the subject and blurs the background
- Custom color correction and grading
- Background music
The result: https://t.co/TOL4C3iGvF
WDYT?
@Miles_Brundage And it introduces other potential concerns related to artificial sweeteners, digestive health, bone health and acidity. I'm afraid there are no free lunches