Electronics Design
EAGLE
I used EAGLE to design the circuit, and stuck to the bare minimum of adding one LED and one button to the echo-hello world board.


Laying the routes was surprisingly fun: I didn't use the autorouter at all, and ended up actually enjoying it.


Milling
The first board did not mill well. One route under the pins was too small for even the 1/64th inch bit.

I fixed this by just trimming the PNG to make the header pads narrower, after which it milled just fine. Unfortunately, there was another short: the leftmost route under the ATTiny44 was too close to the side that the mill didn't separate it from the ISP's pins.

Even worse, I didn't notice this until examining the pictures of the milled board while starting to write this report - and instead, I soldered all the components...

... and waded through two excruciating hours debugging after it didn't flash, after which I gave up and started documenting my failures. When I noticed the error, I desoldered the ATTiny44 to try to separate the routes with a knife, but ruined the copper finish on two other feet in the process.

I feel like I learned a valuable lesson about debugging: any effective strategy has to incorporate a sort of exponential backoff, where some "last-known-good" state is established as soon as possible, and then history is replayed until it stops working. I spent way too long convinced that the short was because of bad soldering, not bad milling.