
Hello!
You probably came here looking for a resume or CV. Well, just click above to download!
Before you leave though, let me tell you about this electric guitar I’m building.
The picture is from when I had just applied the second coat of paint, and before I sanded it the first time. I settled on this color after spending weeks messing around with color options in photo editing programs. I put the pieces of the guitar that I had together (without fastening), and then I took a picture. I changed the color in this picture dozens of times.






I spent a good portion of the winter in music shops, playing various guitars, noticing how they feel to play and their tones. There are a lot of decisions one needs to make when deciding on buying and/or building a guitar. Building brings a lot more decisions than buying, though.
A guitar, like most musical instruments, is a fairly complicated system. Each part of the guitar influences other parts. It can be difficult to know where to start. Each decision has constraints—monetary budget, time budget, builder skill, tonal preference, functional preference, aesthetic preference, just to name a few. Moreover, every time you make one decision to meet whatever constraints you have set, you need to consider what “knock-on effects” in the guitar “system” stem from the way you chose to solve the constraint.
Consider just the guitar’s neck area. Perhaps the player would prefer the frets on the fret board to be closer together rather than farther apart (or the opposite). This preference is sometimes based in the size of the player’s fretting hand (namely the length of their fingers). Without compensation elsewhere, this has a dramatic effect, on the tonal system. The “scale length” is determined by measuring from the “nut” to the “saddles,” or the two points that act as “stops” for the strings’ vibration, and fret spacing is mathematically derived from the scale length. So to desire frets that are spaced closer together, one also desires a shorter distance from the nut to the saddles.

It might not be intuitive, but what this means is that if a player favors closer frets on the neck, then they probably also favor certain guitar body styles. Why? Because the strings’ terminal points in the guitar body (and thus the scale length) are determined by the saddle placement, which is influenced by the pickup position in the body and bridge placement. But what if a player wanted the general body style pictured above, but wanted a shorter scale length? At this point, to fix this problem, a custom body would be required, moving the routes for the pickups closer to the neck to allow the bridge (which mounts to the body holds the saddles) to be moved closer to the neck pocket, where the neck mounts to the body. If a custom body is not chosen, then a custom bridge would instead be required, to shorten the distance between the saddle and the rear pickup. Once this is done, at least on my guitar, the design would need to be changed from a string-through-body design, which would imply filling the holes on the back of the guitar where the strings were meant to feed through the body!

Additionally, a longer scale length implies that the strings must be tuned tighter than a shorter scale length to compensate for the strings being longer between the nut and the saddles. This means that the neck must be capable of withstanding greater force from the pull of the strings. This isn’t so much a concern the hobby guitar builder has though, as the neck manufacturers will have figured this out for the specific scale length of the neck.
Of course, within the neck “subsystem” on the guitar, there are other concerns when buying parts. The neck has to mate properly to the body’s neck pocket. The tolerances are incredibly tight, considering the build material (wood). Even a small amount of paint can put the neck pocket out of tolerance, causing the neck to no longer fit in the body! Manufacturers of necks and bodies (when they aren’t the same company) will also ensure that their products are in the labeled tolerances.

Speaking of things outside of the player’s control, the old saying “you get what you pay for” might not be more true anywhere else on the guitar than the neck. Good material must be chosen as a base, the material must be properly dried before use to prevent warping. The neck requires special skill to shape and to finish. If the frets are not filed well after being fitted into their slots, either the neck will have unappealing filing blemishes, or else the frets will interfere with the player’s hand as they move their hand on the neck.
So far, we have considered only the guitar’s neck. We have dramatically simplified a number of technical details (no mention, or only limited mention, of fret board radius, fret height, fret material, neck material, nut material, tuner placement, neck shape in the player’s hand, how string gauge and material affect pressure on the neck, etc.). Nonetheless, we have discovered a number of inter-related constraints, many of which have nothing to do with the neck itself:
- Player’s anatomical characteristics
- Guitar body size and shape
- Bridge placement
- Pickup placement and orientation
- Neck and body’s neck pocket must be mutually compatible
- Monetary budget
There are dozens of parts even in this simple guitar’s design. Some are electronic (I chose Fender’s single-coil Tex-Mex pickups, by the way!). Some are purely mechanical (I also bought a nice set of locking tuners). Some seem like they might be purely aesthetic, but actually have impacts on playability qualities, like the chosen lacquer on the neck. And naturally, any one decision on any of these topics results in an explosion of new decisions to make, as the various subsystems on the guitar interact with each other. For example, some decisions that are purely aesthetic end up constraining other choices, and these may often affect the mechanical characteristics of the “system.” When I chose to have a blue/white + black hardware theme, my options were instantly limited more than they would had I chosen chromed hardware.
Each decision represents a flow of stock from one part of the system to another, with each decision optimizing for one constraint more than another. Eventually, even with infinite funds, there are competing goals between subsystems. At some point, the guitar cannot both be one thing while also not being that same thing (example: a guitar cannot have close frets with a long scale length with normal strings). The guitar then is not a single thing; it is the sum total of the inter-related ways that dozens of constraints have been satisfied. Innovation is simply finding new ways to satisfy existing constraints in more pleasing ways—until the innovation also brings in new constraints of its own.
And just like that, we can see parallels between guitar-building and nearly any other venture in life, including developing software. A software development system is just that—a system. It is the confluence of product, tooling, engineers, test engineers, customers, leadership of all levels, budget, expected return from sales, timelines both short and long, testing methodologies, software architecture, planning methodologies, etc.
The difference between my guitar and a software development system is that the Spanish-style guitar is half a millennia old or so, and software development is roughly half a century old. Guitars have a long history and an instantly-observable nature compared to the slow, intentional measurement of a software development system. With the history and observable nature in favor of assembling a single guitar, there is comparatively little unknown risk. It is incredibly easy to find information to avoid nearly every pitfall of development, because my Telecaster clone is not substantially different from every other Telecaster or Telecaster clone that has ever been made. The same cannot be said of any individual software development system—there is no website to look up how to even know what your software development system’s problems are. While the problems may not be unique to your system, the full causes certainly are.
What can be said, then, is that the the largest risks could be the ones we are not aware of (or maybe not—it’s impossible to say, since we are unaware of them!). So for a software system to run well (on time, on budget, deterministic), the goal must be to expose risk to limit it—and just as important, to find the bounds of the knock-on effects of mitigating any one risk to determine the most desirable outcome for mitigating any set of risks.
Here, on these pages, I will discuss these fascinating topics as I have observed the complexities of the software development systems I have worked in. I hope you enjoy, and share your experiences with me.
Update, March, 2024: I painted this guitar several times now, and haven’t assembled it yet. As a side project over the past couple years, I worked on it when I had time. I hit a major snag painting. I made it quite far, and after a few coats of clear coat, each time I applied a new coat, it would instantly crinkle as it hit the painted surface. I’d have to let it dry, and then sand it down to the wood again.
I asked a cousin of mine about this. My cousin, a chemist started with the normal questions—what brands of paint and clear coat? I showed that they’re the same brand and product line. He then asked how I prepare the surface each time, and I explained that I simply wet-sand it, let it dry, and then paint. It worked for several coats.
In the conversation, we realized that I was following some advice I had seen online: “just add a couple drops of dish soap to aid in lubrication while wet-sanding.” This lubrication is helpful, as the decreased friction creates less heat and is less likely to gum up the paint, especially as the would-be dust accumulates.
My cousin suggested that I wet-sand without the soap, but cautioned that the soap is likely embedded in the dried paint at this point. So, I sanded the body back down to the wood last fall, and I’m applying paint with a brush. It does not look as good, but I make much quicker progress this way.
This small lesson in the chemistry of paint and soap interactions is an example of what I have been musing on for 4 years on these pages: fixing a localized problem (reducing friction in the sanding) does not guarantee a more desirable outcome of the entire system!