We're Christoph and Nate, and each week we discuss a software design problem and how we might solve it using functional principles and the Clojure programming language.

We cut our teeth and built our careers in imperative and object-oriented languages, but when we discovered functional programming, it was exciting! We saw the potential. Solving learning exercises like Koans, 4Clojure, and Advent of Code was fun, expressive, and the REPL made it easy and fast to experiment our way to a solution.

But as we tried to create larger and more complex software with Clojure, it was often quite frustrating. We found ourselves getting stuck, fumbling around for solutions, and struggling with some of the same challenges over and over.

Over the years, we've worked out all sorts of solutions and have become convinced Clojure and function programming are a super-Blub, a secret weapon to fight against the tarpit of complexity in growing code bases.

We're here to share what we've figured out, the way we think, and how we approach software design in Clojure and functional programming.

We'd love to hear from you. Find us on Twitter at clojuredesign or send us email at feedback@clojuredesign.club. Tell us your stories, what you like, and what you want to hear more of.

Christoph Neumann

Christoph is a programming fanatic with an unyielding appetite for the challenge of entrepreneurship. After a heady binge of grad school—earning a master's degree and most of a PhD—Christoph decided to ditch the politics of academia and take his newfound love of user-centric design and functional programming back into industry.

Since then, Christoph has been hooked on making high-performance data-pipeline and automation systems with ridiculously-responsive, user-friendly interfaces.

When he's not spending time with his lovely wife and four, unusually active children, you can find Christoph working on the next big thing for his business, App Sauce.

Christoph tweets occasionally at enigma2a and shares various experiments on GitHub at christoph-neumann.

If you'd like to hear even more of Christoph's musings on programming, listen to him and Keith Irwin on the Flipping the Bozo Bit podcast.

Nate Jones

Nate's been fascinated by technology his entire life, and is particularly interested in how it is used to make our lives better.

Over the course of his career, he's built a webmail client from scratch, travelled to the Olympics to provide email services to athletes, and automated the creation of infrastructures in AWS. He's also introduced more bugs than features along the way.

After living in the kingdom of the nouns for many years, Nate found functional programming (and Clojure) and was immediately hooked. Now, he works on highly performant code that is easy to understand and fun to work with.

When he's not at a computer, it's most likely because he's off on adventures with his beautiful wife and two energetic kids.

Nate tweets at ndj and has created a number of small useful utilities (and a smattering of other bits on Github).

He blogs somewhat regularly at endot.org.