Basics
Objectives
Patterns - semi-automatic reasoning about software
Task Types
Worker Patterns
notifier - blocks on events (interrupts)
for (;;) {
    AwaitEvent()
    Send()
}
courier - transmits data between servers
for (;;) {
    Send(server1, req, msg); // pull from server1
    Send(server2, msg);      // push to server2
}
often ad-hoc activity - reflect on it...
what's in a bug?
| Model | Implementation | |
|---|---|---|
| Program | Design | Coding | 
| Environment | Interface | Internals | 
potential problems
Experiments
Tools
str pc, <location>, then post-mortemTiming Challenges
Race Condition (origin in circuit electronics)