Things I Wish I Knew at 18 (After 25 Years in IT)
Notes from someone who is still learning, still rebuilding, and still getting things wrong.
Last updated: 2025-12-28 (This is a living document. I update it as I learn.)
How to Read This
This is not a tutorial.
This is not career advice.
This is not a checklist.
These are field notes — lessons pulled from decades of real systems, real outages, real people, and real consequences.
You don’t need to read this in order.
You don’t need to agree with everything.
Many of these lessons apply across IT:
- Sysadmin
- Networking
- Development
- QA
- DevOps / SRE
- Security
If you’ve ever:
- Debugged something that “worked on my machine”
- Had to prove a bug exists
- Been burned by bad logs or bad time
- Broken something at 2am
This is for you.
Production Systems Don’t Care About Your Feelings
Production systems don’t care about your feelings.
They don’t care that:
- You’re tired
- It should work
- It worked yesterday
- You meant well
They only care about reality.
This is true whether you write code, manage networks, test software, or operate infrastructure.
Jack of All Trades Is Not a Failure
I am a jack of all trades.
A master of none.
And a student of constant change.
That used to be normal in IT.
It’s becoming rare.
Breadth matters because:
- Systems are interconnected
- Failures cascade
- Silos hide problems
No one knows it all.
Anyone who claims they do is full of it.
The most dangerous engineers aren’t the smartest —
they’re the ones who understand how everything fits together.
An Ode to the Greybeards (and the BOFHs)
If you’ve never been embarrassed by a greybeard, you probably haven’t pushed yourself far enough yet.
I grew up under people who:
- Didn’t sugarcoat answers
- Didn’t tolerate guessing
- Didn’t accept “I think” in production
Some were patient.
Some were blunt.
Some were full BOFH.
They taught me something critical:
Every system you touch has a history.
Someone already paid the price for the rules you’re about to break.
Pester the old guys.
They like the attention — if you’re prepared.
Your Homelab Is a Tool — Not the Goal
Gear doesn’t impress.
Understanding does.
Nobody worth working for cares what brand you run.
They care if you can explain:
- Why segmentation exists
- What breaks when it fails
- What tradeoffs you made
A cheap system you understand deeply beats an expensive one you copied blindly.
RTFM Is Not an Insult
Man pages.
--help.
Official documentation.
This is where real engineers live.
Blogs rot.
Videos oversimplify.
Copy/paste culture kills understanding.
If someone tells you to RTFM, they aren’t dismissing you —
they’re pointing you toward mastery.
Resource Constraints Make Better Engineers
I started on 286s, 386s, 486s, early Pentiums.
You couldn’t throw hardware at problems.
You couldn’t afford to.
Every kilobyte mattered.
Every process mattered.
Optimization was survival.
That lesson still applies.
If your solution only works because you added more CPU, RAM, or VMs —
you don’t understand the problem yet.
Optimize First. Scale Last.
Before adding resources, ask:
- Where is the bottleneck?
- How do I know?
- What data proves it?
Hardware should fix known bottlenecks, not hide unknown ones.
Anyone can make fast hardware perform badly.
“It Works on My Machine” Is Not a Defense
From my QA days:
If you report a bug, be prepared to prove it exists.
Because the first response will be:
- “Works for me”
- “Must be your environment”
Professional bug reports include:
- Steps to reproduce
- Expected vs actual behavior
- Logs
- Versions
- Environment differences
If you can’t prove it, it doesn’t exist yet.
Time Is Not Optional (NTP Matters)
If time isn’t correct, nothing else matters.
Without proper NTP:
- Logs don’t correlate
- Events lie
- Distributed systems gaslight you
First question during incidents:
Are the clocks in sync?
Logs Are Evidence — Treat Them That Way
Logs are:
- Evidence
- History
- Proof
- Your escape hatch
Learn to read them.
Logrotate Exists
Don’t let your server fall over because the disk filled with logs.
That’s not bad luck.
That’s negligence.
Document Every Production Change — and WHY
Write down:
- What changed
- When
- Why
- Who approved it
- How to undo it
Future you will not remember.
Other people were not there.
Always Have a Rollback Plan
If you don’t know how to get out safely, you’re not ready to go in.
Hope is not a rollback strategy.
Smoke Test Your Shit
rm -rf is forever.
Test assumptions.
Test restores.
Backups?
3-2-1. No exceptions.
If you haven’t tested restore, you don’t have backups — you have hope.
Automate the Boring Shit
An old manager told me:
“If you have to do something more than twice — automate it.”
Automation:
- Reduces human error
- Improves consistency
- Saves your brain for hard problems
Done right, it protects you from yourself.
Automation Doesn’t Remove Accountability
I once caused my company to lose over a million dollars.
Accidental deletion.
System didn’t care.
Contracts protected the client.
We paid.
I owned it. Completely.
Own your mistakes. Period.
That’s how trust is built.
Troubleshooting: Start With the Stupid Stuff
Before going deep:
- Logs
- Permissions
- Executable bit
- Correct branch
- Latest code
- Service actually running
Most “complex” problems are simple ones in disguise.
Ask Questions. Get It in Writing.
Clarify everything.
Personally?
Fuck phone calls.
Email.
Tickets.
Written decisions.
If it’s not written down, it doesn’t exist.
That’s not paranoia — it’s professionalism.
Closing
Production systems don’t care about your feelings.
But they do reward:
- Preparation
- Curiosity
- Humility
- Documentation
- People who own their mistakes
Read the docs.
Respect the system.
Show your work.
Optimize before you scale.
Document what you change — and why.
Always have a rollback.
Take breaks.
And never assume you’re done learning.That’s the long game.