Hard-Won Lessons: Invaluable 'Tricks of the Trade' for Software, Finance, and Life

August 19, 2025

It often takes years of experience to learn the simple, yet profound, tricks that define a master of their trade. These aren't just technical skills, but shifts in mindset and philosophy that improve effectiveness, reduce stress, and lead to better outcomes in both professional and personal life. Here are some of the most valuable lessons learned the hard way.

Crafting Better Software and Systems

Many of the most impactful lessons revolve around the art of software development, focusing on long-term maintainability and clarity over short-term cleverness.

Document the 'Why,' Not Just the 'What'

One of the most echoed sentiments is the importance of proper documentation. The trick isn't to describe what a function does—the code should make that clear. Instead, the most valuable documentation captures the intention and design decisions behind the code. For example, instead of writing a comment that says, "This function splits data into two chunks," a better comment would be, "The hardware this runs on has a cache size of Y, making this split necessary for optimal throughput." This context helps future developers understand the constraints and know when it's safe to refactor.

This idea extends to different types of documentation, from high-level architectural explanations to practical checklists for emergency procedures (e.g., "How to deal with a fire in the engine").

Rethinking Coding Dogma

Several long-held principles were challenged, suggesting that context is king.

  • Duplication Isn't Always Evil: While "Don't Repeat Yourself" (DRY) is a common mantra, many find that premature abstraction is a greater evil. The "Write Everything Twice" (WET) principle, or the "Rule of Three" (abstract on the third repetition), is often a better approach. It prevents creating complex, ill-fitting abstractions and makes code easier to understand in isolation.
  • Fail Fast and Explicitly: Code that tries too hard to be robust by swallowing errors can create deep, hard-to-debug issues. It's often better for a system to fail early and loudly when something unexpected happens. Similarly, being explicit (e.g., hardcoding a list of files in a makefile) is often safer than being implicit (e.g., using a wildcard), as it prevents unexpected behavior when files are added or removed.
  • Focus on the Customer's Problem: Customers don't buy elegant code or 100% test coverage; they buy solutions. This means that sometimes a "quick-and-dirty" solution to meet a deadline is the right business decision, provided there's a serious commitment to clean it up later. The key is to deliver value incrementally.

The Power of Testing

Testing isn't just about correctness; it's a design tool. Writing tests before the code forces you to think about what the code is supposed to do, leading to more testable and well-designed APIs. Even on massive legacy systems with no tests, adding just a few key unit tests around a critical, complex piece of logic can dramatically improve development speed and safety.

Timeless Life and Career Philosophies

Beyond the code, many shared wisdom about navigating life and career.

The Permanence of the Temporary

A universal truth, whether in codebases (// TODO: Fix this later), unpacked moving boxes, or personal habits, is that temporary solutions tend to become permanent. The longer a makeshift solution stays in place, the more you acclimatize to it, and the harder it becomes to motivate a change. The trick is to be conscious of this and explicitly schedule time to fix temporary patches before they become foundational.

Balance Long-Term Goals with Present Enjoyment

Many people fall into the trap of optimizing every moment for productivity or saving every dollar for a future that may never come. A recurring theme was the importance of accepting imperfection, having fun, and realizing that you could be dead tomorrow. This idea is echoed in the book Die With Zero, which argues against over-sacrificing your youth and health for a wealthy future you may be unable to enjoy. The key is finding a balance: save for the future, but also spend on experiences and memories today.

The Power of Consistent, Small Actions

Thinking about the long-term impact of daily habits can be a powerful motivator. A useful mental model is to ask: "What is likely to happen if I do this thing one thousand times in a row?" Whether it's exercising, eating cookies, or reading for 30 minutes a day, this question frames small, daily choices as a trajectory toward a future self, for better or worse.

Financial Wisdom and Opportunity Cost

A major topic was the concept of opportunity cost, particularly in the contentious debate of renting versus buying a house. Many argued that homeownership is often a poor financial investment when you calculate the true costs (maintenance, taxes, illiquidity, down payment opportunity cost) compared to renting and investing the difference in the stock market. Regardless of the conclusion, the underlying lesson is to look beyond surface-level numbers and societal narratives to make informed decisions about how to best use your resources.

Get the most insightful discussions and trending stories delivered to your inbox, every Wednesday.