My philosophies

I apply these principles across my professional and personal work. They're the commitments we share at Nerds Who Fish.

Read the source and its history on GitHub

Nerds Who Fish philosophies

These philosophies apply across Nerds Who Fish: client work, our own products, internal tools, operations, documentation, and communication. They should guide decisions even when nobody outside the company will see the result.

1. Don't be greedy. Don't be evil

We want to build a successful business. We won't do it at the expense of people, the planet, or the communities whose work makes ours possible.

We choose work that contributes positively to people and the world. We consider what the tools we build enable, who they affect, and the harm their use could cause. We care about the environment and account for the resources our work consumes and the waste it creates.

We actively contribute back to open source and support work that advances human wellbeing and the health of the planet. We reject projects and uses that conflict with these principles, even when they would make us money.

We put that into practice through:

2. A culture that improves the work

We make it safe to report mistakes, challenge decisions, and suggest unfamiliar ideas. Everyone has a responsibility to help improve the work, regardless of title or which system they own.

3. Human accountability for AI output

We review what AI generates. Every line. Every word.

A human reads, understands, and takes responsibility for AI-generated code, configuration, documentation, and customer-facing language before it ships. Review covers correctness, security, factual claims, and whether the output belongs in the solution at all. Material changes after review require another review.

That responsibility starts before we share the output, including with each other. "I haven't read this, but Claude said..." passes the work of understanding and checking it to someone else. We read it, verify its claims, and decide whether we stand behind it before asking anyone else to spend time on it. A model's answer is not evidence that its claims are true.

We are honest about authorship. When we share AI-generated wording, we acknowledge AI's contribution instead of presenting it as entirely our own writing. Attribution does not excuse unreviewed content, and reviewing content does not erase how it was produced.

Tests, automated checks, and additional AI reviews support human judgment. They cannot provide human approval. If we cannot explain or verify an output, it is not ready to ship. Responsibility stays with us regardless of which tool produced the draft.

Using AI does not lower our engineering standards. AI-assisted changes follow the same testing, independent review, and approval requirements described in Engineering rigor.

4. Engineering rigor

We take responsibility for understanding what we build and proving that it works. We investigate assumptions, make deliberate tradeoffs, and verify behavior in the environment where it will run.

When scope must shrink, we deliver a smaller complete solution. We preserve the quality of what we agree to deliver.

Quality and review

We make that responsibility concrete through repeatable practices:

Architecture and decisions

We record consequential architectural decisions in Architecture Decision Records (ADRs), with their context, options considered, chosen approach, and positive and negative consequences. Rejected alternatives explain why the choice fits. When a decision changes, a new ADR supersedes the old one and preserves the history, so the next engineer can understand how we got here.

Observability is a cornerstone

We build the ability to understand a system alongside the system itself. We need to know when it fails, what users experience, and where to investigate.

We put that into practice through:

Reuse before reinvention

We look for existing solutions before creating another implementation. We inspect our own code, shared tools, and established products, then judge whether they meet the actual requirements.

We put that into practice through:

Choose technology with judgment

We use AI where it earns its place. Sometimes the better solution is conventional software, an existing product, or fixing the way the work gets done.

Our recommendations should account for reliability, operating cost, privacy, and the people who will maintain the result. We explain why a technology fits and what it costs to live with that choice.

We put that into practice through:

Our preferred tools give us a starting point. The requirements determine the final choice:


Developed with AI assistance. Reviewed and adopted by Nerds Who Fish. We own these commitments.