Denotational vs operational

It’s time again for the annual State of Clojure Survey. I fill it out every year. And I love to read the responses. Please give the survey 15 minutes and become a statistic. This is one important way we, as a community, understand ourselves. Please fill it out by the end of the y … | Continue reading


@ericnormand.substack.com | 1 month ago

What are formal systems?

I work at Metabase, and I like my job. If you want to work at Metabase and like your job, come apply to work here! I program in Clojure (though the frontend folks work in TypeScript), everyone is smart, and it’s 100% remote with people all over the world. The code is open source, … | Continue reading


@ericnormand.substack.com | 2 months ago

Post-Conj update

I got back from the Clojure Conj last Saturday (almost a week ago as I write this), and I’m still trying to get my life back together. Well, I should say that I always find conferences a bit disruptive to my routines. But that’s kind of the point! Conferences are a space out of t … | Continue reading


@ericnormand.substack.com | 2 months ago

A functional programming course in 6 books

I will be hosting a workshop at the Clojure/conj on Wednesday, November 12 in Charlotte, North Carolina. My workshop is about domain modeling in Clojure. You can get 25% off the workshop using code DOMAINJ25OFFCONJ. And you can get 25% off tickets to the talks at the conference u … | Continue reading


@ericnormand.substack.com | 3 months ago

My biggest fear with AI

I got drawn into the world of Alan Kay’s idea because I was going deep into functional programming. This was in 2007-2008. I had been programming in Lisp for years and was going through a radical transformation. Part of that process was understanding what I had been taught and ho … | Continue reading


@ericnormand.substack.com | 6 months ago

LLMs' surprise teaches us about ourselves

Apropos with Peter Strömberg was great! He showed us a lot of cool stuff that Calva can do. And also some cool tutorials he’s built into the Clojure IDE. Apropos is now on break for the Summer. Enjoy! LLMs’ surprise teaches us about ourselves I studied AI in grad school. My maste … | Continue reading


@ericnormand.substack.com | 7 months ago

The economic inevitability of AI

This week, our Apropos episode is on Thursday. We invite Peter Strömberg to the show! The Clojure/conj CFP is open! If you’re looking to speak, go apply! I’ll be there giving a workshop on domain modeling in Clojure. The economic inevitability of AI The current hype around AI tri … | Continue reading


@ericnormand.substack.com | 7 months ago

AI, Lisp, and Programming

On the last Apropos, we welcomed Christoph Neumann to talk about his new role as the Clojure Developer Evangelist at Nubank. It’s very exciting that the role is in such great hands. Our next guest is Peter Strömberg. Peter is known as PEZ online. He is the creator of Calva, the C … | Continue reading


@ericnormand.substack.com | 7 months ago

Work and meta-work

Part of the work I did when I ran my own business was standardizing procedures. I got fascinated by checklists and instructions. Sometimes you only do something once in a while. You want to remember all of those little details, all the little problems solved, for next time. Becau … | Continue reading


@ericnormand.substack.com | 7 months ago

Too many degrees of freedom

I love conference talks. I believe that YouTube has made me a better programmer over the last 17 years. I’ll often turn one on while I’m doing chores. I’ll learn something and sometimes even be inspired to write about it. Like this one. The talk I was watching was You’re Doing Ex … | Continue reading


@ericnormand.substack.com | 8 months ago

REPL-Driven Development and Learning Velocity

Our next Apropos will feature Nathan Marz on May 20. Be sure to subscribe! REPL-Driven Development and Learning Velocity The main advantage of Lisps (including Clojure) over other languages is the REPL (Read-Eval-Print Loop). Lisp used to have a bunch of advantages (if statements … | Continue reading


@ericnormand.substack.com | 9 months ago

Crafting your environment

This week we have JP Monetta on Apropos. He’s the creator of FlowStorm Debugger, which is a time traveling debugger for Clojure. Check it out! It is quite amazing. Beginner Clojure, my video course, is better than ever. I recently completely rebuilt the Introduction to Clojure mo … | Continue reading


@ericnormand.substack.com | 9 months ago

Models are messy

Our last episode was with Fogus. It was a great episode where we learn from his experience as a core contributor. The next episode is on Tuesday, May 6 with special guest JP Monetta. Please watch us live so you can ask questions in the chat. If you want to learn Clojure, there’s … | Continue reading


@ericnormand.substack.com | 9 months ago

Small modular parts

Our last episode was with David Nolen. We talk about his development process, his origin, and his philosophy. The next episode is on Tuesday, April 22 with special guest Fogus. Please watch us live so you can ask questions. I have finally released the new version of Introduction … | Continue reading


@ericnormand.substack.com | 9 months ago

Skyscrapers or mud huts

Our last episode was with David Nolen. We talk about his development process, his origin, and his philosophy. The next episode is on Tuesday, April 22 with special guest Fogus. Please watch us live so you can ask questions. Have you seen Grokking Simplicity, my book for beginners … | Continue reading


@ericnormand.substack.com | 9 months ago

Anti-entropic functions

Our last Apropos was with Bobbi. Check it out. Our next episode is with David Nolen on Tuesday April 8. Please watch us live so you can ask questions. Have you seen Grokking Simplicity, my book for beginners to functional programming? Please check it out or recommend it to a frie … | Continue reading


@ericnormand.substack.com | 10 months ago

Total functions and beyond

Our last Apropos was with Sean Corfield. Check it out. Our next episode is with Bobbi on Tuesday March 25. Please watch us live so you can ask questions. Have you seen Grokking Simplicity, my book for beginners to functional programming? Please check it out or recommend it to a f … | Continue reading


@ericnormand.substack.com | 10 months ago

Messy domains have a core

Our last Apropos was with Sean Corfield. Check it out. Our next episode is with Bobbi on March 25. Please watch us live so you can ask questions. Have you seen Grokking Simplicity, my book for beginners to functional programming? Please check it out or recommend it to a friend. Y … | Continue reading


@ericnormand.substack.com | 10 months ago

Bad data models lead to code complexity

Our last Apropos was with Alex Engelberg. Check it out. Our next episode is with Sean Corfield on March 11 (Paula had to cancel). Please watch us live so you can ask questions. Have you seen Grokking Simplicity, my book for beginners to functional programming? Please check it out … | Continue reading


@ericnormand.substack.com | 11 months ago

The sources of software complexity

Our last Apropos was with Alex Engelberg. Check it out. Our next episode is with Paula Gearon on March 11. Please watch us live so you can ask questions. Have you seen Grokking Simplicity, my book for beginners to functional programming? Please check it out or recommend it to a f … | Continue reading


@ericnormand.substack.com | 11 months ago

Beyond "It depends"

The Apropos show with Alex Miller was great. I love talking with him. This week, we have another Alex, Alex Engelberg. Please join us on YouTube on Tuesday. You can ask us questions in the chat. Have you seen Grokking Simplicity, my book for beginners to functional programming? P … | Continue reading


@ericnormand.substack.com | 11 months ago

Zillions of one-line functions

I was thankful for jump-to-definition and jump-to-references, each bound to a keystroke in my IDE. But I was reaching the limits of my mental stack. I must have been 10 calls deep before it was hard to keep track of where I was. After about 20, I realized I should have kept notes … | Continue reading


@ericnormand.substack.com | 11 months ago

Expressivity: A fourth definition

The Apropos show with Zach Tellman was a success (despite a technical hiccup; it wouldn’t really be Apropos without hiccups). And this week we have Alex Miller as a guest. Will Alex explain monads or transducers? Please join us on YouTube. You can ask us questions in the chat. Ha … | Continue reading


@ericnormand.substack.com | 12 months ago

Update

Read more | Continue reading


@ericnormand.substack.com | 1 year ago

How to make each feature take less code

The Apropos show with Zach Tellman was a success (despite a technical hiccup; it wouldn’t really be Apropos without hiccups). And next week we have Alex Miller as a guest. Please join us on YouTube. You can ask us questions in the chat. And let’s not forget Grokking Simplicity, m … | Continue reading


@ericnormand.substack.com | 1 year ago

Update

Read more | Continue reading


@ericnormand.substack.com | 1 year ago

How does dev tooling help?

The Apropos folks (well, at least 3 of us) are back on YouTube! And we’re figuring out the tech. Subscribe to the channel to be notified before we go live. We broadcast this Tuesday with guest Zach Tellman! And let’s not forget Grokking Simplicity, my book for beginners to functi … | Continue reading


@ericnormand.substack.com | 1 year ago

A vision for Runnable Specifications

If you want to watch me talk for two hours on the topic of my next book, Runnable Specifications, please check out my presentation to the Houston Functional Programming User Group. Two hours were recorded, but the conversation went on for four, it was such fun! Speaking of my new … | Continue reading


@ericnormand.substack.com | 1 year ago

Why is modeling so powerful?

Upcoming talk next week: Virtual and open to the public, I will speak about Domain Modeling. Be there! People continue to like Grokking Simplicity continues to spread. If you want to help someone learn functional programming, please consider buying a copy or leaving a review. Why … | Continue reading


@ericnormand.substack.com | 1 year ago

The magic of metalinguistic programming

A new chapter of Runnable Specifications has passed the “valuable enough to read” threshold. This time, it’s the Time Lens, which talks about build a notion of time into your model. As always, I appreciate questions and comments of all kinds. I’m not sensitive so you won’t hurt m … | Continue reading


@ericnormand.substack.com | 1 year ago

Update

Read more | Continue reading


@ericnormand.substack.com | 1 year ago

Solve problems by taking away

A new chapter of Runnable Specifications has passed the “valuable enough to read” threshold. This time, it’s the Time Lens, which talks about build a notion of time into your model. As always, I appreciate questions and comments of all kinds. I’m not sensitive so you won’t hurt m … | Continue reading


@ericnormand.substack.com | 1 year ago

Lisp as an OO language

Apologies! Last week’s issue was misconfigured. It only went out to paid subscribers. You can still read it online.Please consider buying Grokking Simplicity for your team. It makes a great holiday gift. Nothing says “I appreciate you” than a thoughtful book on functional program … | Continue reading


@ericnormand.substack.com | 1 year ago

Work and coastlines

Read more | Continue reading


@ericnormand.substack.com | 1 year ago

Nobody cares about software design

Read more | Continue reading


@ericnormand.substack.com | 1 year ago

Slowification and Amplification

Check out my book called Grokking Simplicity and it’s the functional programming book you can recommend to beginners. If you don’t recommend it to your friends, please recommend it on Amazon. I’m giving a talk in January at the Houston Functional Programming User Group. I’ll be p … | Continue reading


@ericnormand.substack.com | 1 year ago

The end of algorithms

Happy Thanksgiving! It’s this Thursday here in the US. I hope it finds you safe and peaceful. Please check out the first chapters of Runnable Specifications. Someone just last week told me they didn’t realize you could already start reading it! He did and said it was just the boo … | Continue reading


@ericnormand.substack.com | 1 year ago

Update

Read more | Continue reading


@ericnormand.substack.com | 1 year ago

Utilization, throughput, and latency

The progression of metrics | Continue reading


@ericnormand.substack.com | 1 year ago

Frontal lobe control loop

Where most of problem solving is regulating your fear response | Continue reading


@ericnormand.substack.com | 1 year ago

Update

Read more | Continue reading


@ericnormand.substack.com | 1 year ago

A love letter to Heart of Clojure

Thoughts on the best conference I've been to | Continue reading


@ericnormand.substack.com | 1 year ago

Asker/helper dynamics and the iron triangle

How years of being a good boy cheated me out of what I deserve | Continue reading


@ericnormand.substack.com | 1 year ago

Programming as abstraction

How reversing the arrows builds new modes of programming. | Continue reading


@ericnormand.substack.com | 1 year ago

Reversing the arrows

Is programming abstraction? | Continue reading


@ericnormand.substack.com | 1 year ago

Another chapter

Composition Lens Part 2 is published | Continue reading


@ericnormand.substack.com | 1 year ago

The other half of domain modeling

How do you analyze an undifferentiated mess? | Continue reading


@ericnormand.substack.com | 1 year ago

Update

Fall is here | Continue reading


@ericnormand.substack.com | 1 year ago