The highest quality codebase
Error Handling and Language Design
- Some participants argue Rust-style
Resulttypes and Go-styleok, errtuples work well even in exception-heavy ecosystems like TypeScript, especially when paired with functional patterns. - Others find bolted-on
Resultpatterns in C#/TS lead to double work (handling both explicit results and thrown errors), especially when libraries still throw. - More broadly, there’s disagreement over what constitutes “good” style: functional vs class-based, DRY vs WET, and how much abstraction is worth the complexity.
LLMs as Coding Tools: Strengths and Limits
Claude and similar models are seen as strong at:
- Local, well-bounded tasks: fixing a specific error, optimizing a tight loop, adding a logging call, or running focused audits (“add AsNoTracking”, “find hard-coded credentials”).
- Tedious work: boilerplate, refactors, docstrings, type hints, and converting examples or prototypes across languages.
- Structuring and transforming data, or helping users prototype multiple approaches quickly.
They perform poorly at:
- Long, open-ended or architectural tasks, especially across many turns (context drift, “spiral” behavior, overthinking, forgetting constraints).
- Blue-sky design, reusable abstractions, and respecting existing conventions and design standards without very explicit guidance.
- Reducing entropy: they tend to add code, tests, and layers rather than simplify or delete.
Prompting, Process, and “Principal Engineer” Role
- Repeated unsupervised “improve the codebase” prompts push models toward vanity metrics (more tests, more utilities, more structure), not maintainability.
- Several people liken this to badly directed juniors or outsourced teams: if you only say “improve quality” and never allow “this is good enough”, you’ll get bloat.
- Effective workflows described:
- Treat the model as a constrained assistant: plan first, then execute phase-by-phase with human review.
- Keep tasks small, reset context often, and encode preferences/rules in
CLAUDE.mdor slash commands. - Use multiple models: one to generate, another to critically review.
Broader Reflections: Code Quality and Human Roles
- There is no shared definition of “highest quality”: reducing dependencies vs leveraging libraries, DRY vs explicit duplication, global simplicity vs strict patterns.
- Many see LLMs as amplifiers for experienced developers rather than replacements: they help experts move faster but don’t remove the need for domain understanding, review, and long-term design thinking.