I previously attempted to program my board back in Week 5, albeit unsuccessfully. At the time, I was unable to successfully program my board, even though a colleague (Miguel) was able to do so successfully with his board using the exact same programmer, computer, process, and code (using Arduino, not the command line).
I attempted to debug my board using a multimeter, but was unable to find any obvious defects. As a result, I milled and stuffed a new board, assuming that would be a simpler path to success. It's amazing how much quicker and proficient I'm getting at stuffing a board!
This new board also didn't work. Using the Linux computer in the electronics lab, Neil's command-line serial communication hello world script, and both a FabISP and a commercial programmer located in the lab, I just couldn't get it to flash properly. Based on the limited output from make, the error messages suggested that there may have been configuration issues with the commercial programmer on top of issues with my board itself.
At this point, I hopped on a plane for a two-week conference in Rome as part of my Media Lab research. When I came back a few weeks later, I was able to get everything working.
Specifically, I started by creating a new FabISP. Since I wasn't sure if the problem was the programmer or not, having a FabISP that I knew worked was useful both as a debugging step and for practice.
From there, I milled and stuffed a second Hello World board of my own design, and it happily worked on the first try; I was able to successfully program and use it both using a CLI / make-based workflow and through the Arduino IDE. I still can't figure out what was wrong with the first board, since there aren't any obvious shorts, but given that I was able to successfully program a board in multiple different forms I'm happy to write that off as a mystery.