Skip to content

Software engineering

A broad discipline covering architecture, tooling, testing, and craft decisions that determine how software is built, maintained, and extended — a theme connecting sources on agent reliability, CSS platform primitives, component design, shell scripting, and more.

35 sources · May 6, 2026

Compiled by Claude · How this works →

Craft · 35 neighbors

Software engineering as a discipline shows up in these sources less as a unified theory and more as a collection of recurring pressures: how to structure systems so they stay maintainable, how to choose tools that don’t create new dependencies, and how to preserve the human judgment that holds everything together.

On architecture, the lesson that emerges is that explicit structure beats implicit cleverness. A data engineering agent built across three architectures demonstrated that atomic, well-scoped tools outperform prompt engineering when reliability is the goal Don’t Prompt Your Agent for Reliability. The same principle appears in component design: Angular components bloated with inputs collapse under their own surface area, and the fix is splitting responsibilities into directives and sub-components so each piece has a clean contract A Better Way to Build Angular Components. At the LLM tooling layer, codebases with deep modules — interfaces that hide implementation details — make it easier for AI coding tools to reason accurately, because shallow abstractions force models to traverse too many layers at once AI Likes Deep Modules.

On tooling and platform choices, several sources argue for preferring platform primitives over library dependencies. Modern CSS now handles anchor positioning, scroll animations, and view transitions natively, replacing hundreds of kilobytes of JavaScript The Great CSS Expansion. Jim Nielsen makes a similar case for web architecture: linked HTML pages with CSS transitions are simpler to build and maintain than JavaScript-driven interactions Building Websites With LLMS. Shell fluency — Readline bindings, brace expansion, script safety flags — follows the same logic; knowing what the environment already gives you reduces the need to layer on abstractions Shell Tricks That Actually Make Life Easier.

Testing surfaces a related concern about coupling. Playwright suites that target CSS classes and DOM structure break on every refactor; suites that target semantic roles and explicit test attributes survive because they’re coupled to behavior rather than implementation Designing Playwright Tests That Survive UI Refactors.

The human-skill dimension runs through several pieces. Lars Faye argues that full reliance on AI coding agents erodes the debugging and critical thinking skills developers need to supervise those same agents — a paradox that compounds over time Agentic Coding is a Trap. Christoph Spörk extends this to institutional knowledge: gradual AI dependency quietly hollows out the expertise that organizations need to course-correct when systems fail The Lobster in the Hot Pot. Robert Nystrom’s interpreter book points in the opposite direction — toward building deep understanding from first principles Crafting Interpreters, as does the container filesystem tutorial that reconstructs Docker-style isolation from raw Linux primitives How Container Filesystem Works.

Across these sources, engineering craft is less about any single practice and more about the discipline of knowing which layer a problem belongs to and resisting solutions that shift complexity somewhere harder to see.