COL Software Engineering

An Acquired Taste: How Joe Nelson Brings Homebrewing Skills to Software Engineering

Joe Nelson

It started 15 years ago. Joe Nelson was watching a Samuel Adams homebrewing contest on TV, and he thought it would be fun to try. So he bought a beginner’s homebrewing kit, one that came with buckets and siphons and yeast, dry malt extract and hops. He followed the directions, and both he and his wife enjoyed the end product.

From there, Joe wondered how he could make the process easier and improve the quality – the same kind of mindset that’s enabled him to be successful as a software developer.

At Daugherty Business Solutions, Joe specializes in back-end systems integration, developing the code that allows one system to speak to another.

As a problem solver by nature, Joe loves researching new problems and determining which tools are available. He also enjoys learning new frameworks to add to his knowledge base, which he can apply as needed.

Both homebrewing and software development, in a nutshell, are about problem solving – identifying the opportunity, strengthening the toolset and testing throughout.

Identifying the opportunity

Generally, Joe has a Scottish ale, an Irish red ale and a seasonal brew on hand – perhaps a holiday ale around December, a lighter summer ale, or a beer he tried to replicate from a local brewery in Kentucky.

He’s experimented with porters, chocolate stouts, spiced ales, Dunkelweizen (dark wheat beer), and also mead (both straight and raspberry). He’s tried lighter style ales –even an apricot ale (which was a mess because it had so much sugar, it overflowed from the brewing container).

First, he identifies the opportunity (what he likes), and then he looks for different recipes and types of ingredients. The type of yeast, for example, can have a major impact on the flavor.

It will always be a work in progress to get the beers the way he wants them.

As a consultant, Joe helps identify business opportunities using technology for clients. He learns their goals and pain points, and then considers solutions that might help them achieve success.

To do this effectively, though, he has to bring all the tools in his box, which requires him to strengthen his toolset.

Strengthening his toolset

As a software developer, Joe uses a core set of tools. He works in a dev environment and uses a compiler. Depending on the task at hand, the dev environment might be fancier, like an IntelliJ platform. But, for the most part, across client sites and across industries, the technology solutions are the same, with maybe slight variations.

Joe is considered full stack, in that he can plug in wherever he is needed – on the front end or back end of a system. And over time, he’s developed his own unique approaches to solving problems.

But to get there, you might say he’s developed an unquenchable curiosity toward strengthening his toolset, growing his skills and learning new frameworks.

The same goes for homebrewing. Joe first stretched himself by moving from dry malt extract to doing his own mash. He ground them, and then soaked them in hot water for 1 ½ hours, so that the starches would convert to sugars. Then he rinsed the sugars out of the grain and boiled them into the beer.

He also began purchasing rhizomes for two types of hops, which he harvests and freezes for use throughout the year.

You might say he went “full stack” when he started growing his own hops.

As he’s accumulated new equipment and gotten more hands on, the brewing process has changed from two hours to all day, but the product is much higher quality.

With homebrewing and software development alike, the equipment is essentially the same, the process is essentially the same, and even the ingredients are almost completely the same – the ingredients just get tweaked to fit the requirements.

Testing throughout

Testing is a major part of the brewing process, too – from testing the mash to making sure the starches are fully converted to sugars. Joe continuously tests as he goes along.

Likewise, in software engineering, code is tested as Joe goes along. Tests range from GUI tests, API tests, integration tests, component tests and unit tests. 

Although the new equipment and additional upfront work have lengthened the brewing process, some of the later processes are more efficient. For example, Joe now has a conical tank where the sediment settles into a bulb at the bottom that he closes off during the bottling process.

You might say he’s automated this process.

In software development, this kind of automation can significantly lower the number of bugs in production. For features that touch on critical parts of a system, testing automation should be applied – validating business logic or testing the user interface to ensure a consistent and fault-free user experience.

Really, with homebrewing and software engineering, it all comes down to quality.

And palatability – making sure everything goes down smoothly.

Do you have any unique quirks you’d like to share with the enterprise? Email us at Jake.Russell@daugherty.com.