Software Engineering

AI-Assisted Development

"AI won't replace developers. Developers who use AI will replace those who don't." — Satya Nadella (paraphrased)

Learning as a Feedback Loop

Education is, at heart, a control system. A signal goes in, something is processed, output is produced — and then the critical step: the output is compared against a reference , and the error drives the next iteration.…

CI/CD

"If it hurts, do it more often." — Jez Humble (paraphrasing Martin Fowler) [^humble2010]

Risk Management

"Risk management is not about eliminating risk — it's about making informed decisions under uncertainty." — Barry Boehm 2

Risk Management: Lessons from Testing Real Systems

The Risk Management & Mitigation page lays out the standard framework — taxonomy, likelihood/impact scoring, mitigation strategies. This page is a companion, not a replacement: it walks through what that framework…

Trustworthy Software

"It works on my machine" is an obsolete metric. Software now moves money in microseconds, steers vehicles, allocates medical resources and mediates civic life — contexts where unreliable code is not an inconvenience but…

TDD/BDD

"TDD is not about testing. It's about design." — Kent Beck [^beck2002]

Testing Fundamentals

"Testing shows the presence, not the absence of bugs." — Edsger W. Dijkstra 1

Debugging Strategy

When code breaks, beginners default to voodoo: change a < to a <= , move a line, restart the IDE, sacrifice a coffee to the demo gods. Occasionally the voodoo works, which is the worst possible outcome — the bug is gone…

Types of Testing

Testing Fundamentals introduces the individual techniques; this page is the map. Conversations about testing go wrong because "unit test", "black-box test" and "performance test" sound like items on one list when they…

Code Path Analysis

Black-box testing asks whether the code meets its specification; code path analysis is the white-box counterpart — it reads the code's structure and asks: which routes through this logic have my tests actually walked?…

Mutation Testing

Every other page in this track helps you test the code. This one asks the uncomfortable follow-up: who tests the tests? A suite can execute every line and branch (see Code Path Analysis ) while asserting almost nothing.…

The V Model & Values

The V model is the oldest answer to a question teams still get wrong: when should tests be designed? Its answer — at the same moment as the specification they check, not after the code exists — remains sound advice in…

Tools Ecosystem

"A good tool improves the way you work. A great tool improves the way you think." — Jeff Atwood

CLI First

An IDE is a luxury cruise ship; the command line is learning how to swim. Both get you across the water — but only one of them still works when the ship is unavailable. If you only ever compile by clicking a green play…

Cross-Pollination of Ideas

Software engineering has always been a magpie discipline. Many of its best ideas were not invented here — they were noticed somewhere else, translated, and put to work. This page is about cultivating that habit…