How my Fermentation Hobby Helps Me as a Software Engineer

How my Fermentation Hobby Helps Me as a Software Engineer
Estimated reading time: 7 minutes

For a software engineer, technical expertise is clearly of the highest importance. However, how they approach solving problems can significantly shape how they get their everyday tasks accomplished too. Through a hobby of mine I’ve discovered an unexpected wellspring of professional growth. Fermentation. This seemingly random hobby has become a secret weapon, helping me hone skills relevant to my engineering career.

The challenges I face in my fermenting hobby, and in my job as a software infrastructure engineer are similar, at an abstract level. Learning from one has helped me improve in the other.

Here’s an example to prove my point: last year I had to replicate a rice wine recipe across different locations. Unexpected variations in temperature, water, and starter cultures produced unexpected results. I got three different results across three locations. This was something I’d never experienced before in years of homebrewing at my apartment. It could have ended up as a frustrating experience, but there were reasons to be optimistic. A case of missing yeast addition – because I’d run out of my regular brand – led to a brew with delightful smell. Wild yeast strains from the air had been gentle with the carbohydrate breakdown, creating fruity smell. My regular, professional champagne yeast would have broken down the fruity smell right away.

In a different occasion, I learned the usefulness of changing the ratio of rice mold to start ferment. We were able to culture our own mold strain due to less-than-ideal weather conditions. These experiences kind of mirror my experience as a software engineer. Every day brings surprises and new opportunities for learning. The brewing hobby has made me appreciate the value of embracing the unknown. Turns out, that’s a useful mindset to have as a software engineer.

Crafting fermented products needs patience. Making good tempeh or kombucha means waiting – weeks, months, or even years. A soy-rice ferment of mine has been fermenting for two years. Similarly, well-designed software products need good planning, iterative testing, and the understanding that quality takes time. I’ve learned to long-term patience through my fermentation experiments. I know now to trust the process, focus on progress, and approach projects with a long-term vision. THis leads to more stable and successful products. Just as my amazing batch of chhyang (Nepali rice beer) won’t complete in a week no matter how excited I am, the project at work won’t be done until the proper timelines are reached. It’s easier to understand that way to me.

The art of fermentation1 depends on the unexpected. Unlike boring, sterile-feeling offices, fermentation projects are full of curveballs. A cold snap can slow a ferment. A batch might develop its own flavors because of an overabundance of pollen in the air. Online recipes are very difficult to predict unless you’ve tried them before. These deviations teach me why I must be flexible, and how I might adapt when things go South. These lessons are quite clearly relevant as a software engineer.

The summer heatwave of two years ago almost ruined a batch of kimchi. I’d had similar experience with kombucha couple of years earlier. I improvised with ice packs and refrigeration inside an insulated box meant to heat my seed germination pods. There was additional work: I had do frequent flavor checks, and adjust salt and fermentation time. I usually don’t need to do that anymore. The result was an interesting, spicier and funkier kimchi. A proof that unexpected situations can be easily adapted to with some jerry-rigging. My ferment was saved.

Software engineers have adjust to changing plans and environment all the time. Dependencies shift. Zero-day bugs are discovered in your library, or operating system. Security vulnerabilities need to be fixed immediate. Client requirements change. They are opportunities for me now. Opportunities to apply my fermentation-honed resilience. I gotta think on my feet, analyze the situation and work. The final output –post adaptation– is almost always acceptable, if slightly different from the original plan. The project moves on regardless.

Fermenting has equipped me with mental models that translate directly to software development. I must understand the relationship between microorganisms, temperature, and pH levels influences fermentation. So I know to approach software development with a holistic perspective. It’s not just individual lines of code, but the entire ecosystem we must consider and reason about. We must think of potential interactions and dependencies far beyond our programs to prevent system-wide issues. Software engineering is not just about code. It’s about product requirements, people, marketing, and a long-term vision. Software just aligns us on the right track. Having that understanding puts everyday challenges in better context.

Fermenting has taught me starkly why continuous learning is so important. In software development, failures carry a negative connotation. But fermentation has taught me to view challenges as opportunities for improvement. When experiments go awry, they are not discarded as failures. Instead I think back to identify missteps, and apply those learnings to future projects. The goal is to improve in the next batch. This approach has made me appreciate continuous improvement. A call-out in a PR is not a failure or carelessness, it’s a step towards becoming a better engineer.

Fermentation has its share of “mishaps.” Off-odors, unexpected textures, and even failed batches are all a sad part of the learning process. These “failures” provide important lessons and force me to change my process. Encountering bugs and errors is inevitable as a software engineer. Fermenting has instilled a ‘growth mindset’ (of the right kind, not the contaminated mold kind either!)

Most ferments make delicious and safe products, but to avoid contamination or harmful bacteria needs care and good hygiene practices. In a way, the pathogens exist in the software world too. As software engineers, we need to be in constant awareness of potential vulnerabilities and proactive measures to prevent data breaches and malicious attacks. Just as I use ‘StarSan’ sanitization product to clean my vessels, I run vuln analysis on my code before merging. Security and safety needs proactivity, in software and in fermentation. I’m more aware of vulnerabilities, and update my dependencies often, because I don’t want to experience ‘spoiled batch’.

Ny journey with fermentation has taught me this: exploring diverse interests can bring unexpected benefits that improve and assist our professional lives. The patience cultivated through waiting for a perfectly aged rice beer, the analytical thinking sharpened from monitoring variables, and the adaptability developed from dealing with unknown issue in my hobby have translated into invaluable skills that make have made me a better software engineer. And it’s not even about code, or engineering. From baking sourdough to dancing, every exploration can equip us with different perspectives. I suggest folks step outside their comfort zone, explore their passion, and enjoy the benefits of their interests. The next great idea might be brewing in the most unexpected place!

  1. Also a super-popular intro to fermentation by the great writer Sandor Katz. “The Art of Fermentation” 

Sirish
Shirish Pokharel, Innovation Engineer, Mentor

This is where all my quirky comments will go.