Not every note earns its own post. These four don’t share a common thesis, but they work as a quick guide to topics worth revisiting from time to time.
1. Review Unix permissions
Every file and folder has three permissions — read, write, execute — applied at three levels: owner, group, everyone else. Running ls -alh, the first column (something like drwxr-xr-x) shows this in three blocks of rwx, one per level. A - in place of a letter means that permission is denied. Folders need execute permission to be “enterable” — without it, you can’t even list what’s inside.
The octal format sums it all into one number: Read = 4, Write = 2, Execute = 1, None = 0 — add up the values per level. 777 is everyone with everything unlocked; 644 is the owner reading and writing, everyone else read-only.
2. Remember how Node.js works
Node works with a call stack — the first function called is the last to leave the queue. Being single-threaded doesn’t prevent asynchronous processing: that’s only possible thanks to the Thread Pool, Event Loop, and Callback Queue trio working together behind the call stack.
Another point that helps make sense of the ecosystem: in Node, everything is a module. There are three kinds — native ones (part of the runtime), npm ones, and the ones you write yourself.
3. Remember what being agile means
Every programmer is an architect. There’s no software project manager who never actually programmed who can single-handedly put together something that works — the technical decision needs to come from whoever understands the problem from the inside.
Estimating isn’t predicting. And “good design is easier to change than bad design” is the sentence that should guide most decisions: not thinking about getting it right the first time, but making decisions that are easier to change later, once the information gets better.
Agility, in the end, is walking one step at a time, evaluating the result, adjusting course when it doesn’t match expectations, and repeating. Programming is making choices — good ones or not.
4. Keep these three Git commands handy
git reset --hard branch— discard everything and jump to the exact state of another branch.git switch branch— switch branches withoutcheckout’s semantic overload.Ctrl+L— not actually Git, but it lives in the same flow: clear the terminal before the next command.
How to use these notes
None of these topics needs a 2000-word post. They all come up again, every now and then, in a conversation or a quick doubt — and it’s worth having them in one place rather than trusting memory.