Mushrooms and Software Development
Moving out of the big city was an event steeped in pros and cons. I traded neon lights for moonlight, nearby friends for quiet solitude, 24–7 grocery stores for ample parking, and public transportation for snow tires. I had not considered the possibility of studying fungi while rooted to a noisy Los Angeles apartment, but this avocation presented itself during my walks through the mixed forests of New England.
This article may seem like a strange departure from my usual brain-dump about software engineering — but who doesn’t need a break from time to time? — and yet, the more I think about it, gaining proficiency in software development is a lot like gaining proficiency in mycology: ultimately, the likelihood of you destroying your codebase (or your liver) wanes the more you familiarize yourself with the environment. Maybe it is the examining itself more than the object that confers the benefits of the examined life.
Take a moment to appreciate how old the fungi are: their kingdom is ancient, perhaps older than plants. At one time in history, colossal tree-like fungal structures were the largest land-dwelling organisms on Earth. Fungi consume oxygen, making them more like animals than plants — they would have been a welcome counterbalance to the over-oxygenation of Earth’s early atmosphere. Not bad for a kingdom whose resumé already includes critical work on the production of bread and alcohol.
Consider too, that fungi may be a central character in our own origin story. With the cataclysmic die-off following the Chicxulub impactor in the present-day Gulf of Mexico, an unprecedented fungal bloom could have gorged itself on dead and dying organisms. Maybe it was a fungal invasion that thwarted a reptilian comeback and ultimately allowed the rise of mammals by providing the evolutionary gauntlet that selected for our warm-blooded ancestors. The idea of a powerful fungal nemesis is drawing attention again as the Earth’s warming climate increases the number of infections by invasive fungal pathogens like Candida auris. I don’t think we are quite ready for the biological warfare that we may yet face, e.g. fungi that eats you alive when it grows inside your blood vessels. Respect. Or Revulsion. Or both.
Like spiders, mushrooms digest their nutrition outside of themselves, and this makes fungi a fantastic partner with plants. Many trees form symbiotic relationships with fungal networks amongst their roots. Some of the most delicious mushrooms are the ones that depend on this mycorrhizal relationship, and they’re the ones that are most difficult to cultivate. You really can tell the health of a forest by the health of its fungi; you can’t greenwash it with photo-ops of you planting a few saplings over your last clearcut.
So… How is studying mushrooms like software development?
You must pay close attention to details. When teaching coding bootcamps, I would often tell my students that one of the things that a developer gets good at is “spotting the differences.” So you could “practice” software development by eyeballing one of those cartoon sketches and seeing that the chicken on one side has an extra toe or that one sandcastle is missing a window. When it comes to examining mushrooms, does the stalk have a ring around it? Does it have gills or pores? Is the cap centered on the stalk? What color is the spore print? How do the gills attach to the stem? This isn’t altogether different from hunting for semi-colons or closing braces.
Both make you hallucinate. Just kidding. I think. I’ll let someone else write that article.
You learn to recognize the environment. Shaggy Manes fruit when things get cold. Chanterelles do not grow in clusters. Porcinis bond with conifers (and maggots find them fast). When you can start to sense how a system operates, you will better know where to look for both problems and solutions.
You appreciate the Iceberg Effect. You begin to understand that the mushrooms you see are only a small part of the larger organism. There might be acres of mycelium running underground or through logs and the mushroom is only the smallest visible sign of this vast interconnected network — a network that has been trained on the environmental model around it, having elegantly optimized itself for finding nutrition and habitat. This is how we as developers might perceive a web page or API endpoint: we intuit the many threads of logic, persistence, and messaging that exist behind a single visible interface.
You must do research AND footwork. Learning the secrets of mushrooms is both an active and an academic pursuit: you do not become proficient by reading books alone or by romping through the woods and eating everything you see. It must be a measured balance. Too often I have seen would-be developers spew out masses of code with no apparent forethought or guidance. Likewise, I have encountered wall-flowers who retreat into the docs rather than write a line. It’s gotta be theory AND practice, otherwise you are bringing nothing to the table.
Success is delicious. There are few feelings in life as satisfactory as returning from a walk in the woods with exquisite food that you found yourself or the feeling of accomplishment that accompanies successfully authoring a functioning app. Both represent the practical culmination of knowledge, and I wouldn’t trade that feeling for the world.
So get outside and take a break in the blue room. Get away from your computer and breathe fresh air and soak in some of the majesty all around you. Inspiration rarely comes from staring at a computer screen. At its best, software is a sophomoric attempt to model an infinite world, so it’s good to remind yourself of the ever-unfolding present.
I hope this was as interesting a diversion for you as it has been for me. I’ll revisit coding topics soon, but for now, I am going to savor something outside the norm.
Thanks for reading!