Software development is often imagined as an individual at a keyboard solving difficult problems.
Tag:Software Development
Recovering From Outages Gracefully
An outage reveals what a system was really designed to do. Architecture diagrams describe normal operation.
Why Systems Fail (and What We Can Learn)
When a system fails, the temptation is to look for the broken component. Which server crashed? Which query timed out?
Post-Mortems Done Well
When a serious technical incident ends, everyone wants to move on. The service is back. Customers can log in again.
Learning From Bugs: Failures That Teach
Every programmer eventually creates a bug that makes them stare at the screen and wonder how they ever thought the code was correct.
Formation Through Collaboration
No engineer develops alone. Even when we work independently, our thinking has been shaped by other people: teachers, documentation authors…
Choosing Tools That Form Good Thinking
Tools do more than change what we can produce. They change how we think. An IDE changes how we navigate code.
Building Habits That Make Better Engineers
Good engineers are not built only by difficult projects. They are formed by ordinary habits repeated when nobody is paying particular attention.
How Practice Shapes Expertise
Expertise is often mistaken for knowledge. We imagine that becoming better at software development means accumulating more languages, frameworks…
Designing Within Boundaries: A Virtue, Not a Weakness
For many people, the word constraint has negative connotations. Constraints are seen as obstacles that prevent us from building the perfect system.
