# Half-Truths

> A text file of one-liners I've muttered at a terminal over the years. Half of them are jokes and several contradict each other on purpose. None of them are advice.

[View on manualmeida.dev](https://manualmeida.dev/articles/notes-i-keep)

## On writing as little as possible

- Software is best without classes, or functions, or code. But if you must, write as little as possible.
- The only thing that really matters in software is KISS.
- That is classic over-abstraction.
- When in doubt, add `setTimeout`.
- No hack is complete without `.replace()`.
- `try`/`catch` is for cowards.

## On shipping

- Never merge a PR.
- If you're afraid to release on Friday, the problem isn't Friday.
- If you can't release fast, you have tech debt to solve.
- Precommit hooks are the root of all evil.
- The difference between a hobby and a job is that you don't write documentation for the former.

## On things one if-statement away from disaster

- Almost all software is one if-statement away from disaster.
- If you code just to make things work, one day suddenly nothing will work.
- Dependencies are the root of all evil.
- Developers will always find unexpected ways to use your API.
- There are two hard things in computer science: cache invalidation and symlinks.

## On knowing better

- Debugging skills are underrated.
- You are only an expert in a given technology when you know when _not_ to use it.
- A good engineer balances not underestimating apparently simple tasks against not overengineering
  apparently complex ones.
- An experienced developer is the one who knows when to be volatile and when to be stable. (I figured
  it out, by the way: a stable is someone who installs linting build scripts, and a volatile is
  someone who disables them.)
- I love monorepos, but I hate lerna.

---

If you got this far looking for a coherent philosophy, I'm sorry. The honest version is that good
engineering is mostly knowing which of these to ignore today.

_Disclaimer: a good number of these were forged in long, unhinged rants with
[Adam Bradley](https://x.com/adamdbradley). I'll take half the blame and none of the credit._

---

## About the author

Manuel Martínez-Almeida (Manu) is a principal engineer at Builder.io, where he sets the technical direction for the AI agent platform across product, design, and code. He is the creator of Gin (the Go web framework with ~88k GitHub stars and 290k+ dependent projects), helped take Qwik from proof-of-concept to production including its Rust compiler and resumability model, and designed the compiler architecture and virtual DOM for Stencil. His work sits where performance, systems, and developer experience meet — compilers, language runtimes, web frameworks, GPU rendering, and distributed infrastructure serving billions of requests a day. He is based between Lisbon and Budapest.

- **Name:** Manuel Martínez-Almeida (Manu)
- **Role:** Principal Engineer at Builder.io
- **Focus:** compilers, language runtimes, web frameworks, GPU rendering, distributed infrastructure, developer experience, AI agents, open source
- **About:** https://manualmeida.dev/articles/about/
- **GitHub:** https://github.com/manucorporat
- **Twitter/X:** https://x.com/manucorporat
- **dev.to:** https://dev.to/manucorporat
- **Website:** https://manualmeida.dev
