Joseph Koski
banner
jkwa.bsky.social
Joseph Koski
@jkwa.bsky.social
Author of Functional Programming with Elixir (beta, PragProg). Writing at joekoski.com.
Reposted by Joseph Koski
Advanced BEAM Architecture at Code BEAM Vancouver
Joseph Koski: Better DSLs
Nicholas Geraedts: GraphQL with Spark
Lorena Mireles: BEAM concurrency limits
Learn: → Intent-focused DSLs → Developer experience → Concurrency costs
codebeamvancouver.com#tickets
February 10, 2026 at 5:05 PM
Funx: Reducing Degrees of Freedom

Rules built from a consistent set of primitives with clear semantics are easier to reason about, review, and evolve.

Includes a Livebook so you can try it yourself.

www.joekoski.com/blog/2026/02...

#elixirlang #livebook #funx
Funx: Reducing Degrees of Freedom
Reducing degrees of freedom to make rules more dependable.
www.joekoski.com
February 9, 2026 at 9:15 PM
Funx: Free Your Predicates

Avoid burying your domain rules in control flow.

Includes a Livebook so you can try it yourself.

www.joekoski.com/blog/2026/02...

#elixirlang #livebook #funx
Funx: Free Your Predicates
“A complex system that works is invariably found to have evolved from a simple system that worked.” — John Gall
www.joekoski.com
February 2, 2026 at 6:46 PM
Funx Eq: What does “same” mean in your domain?

How to model equality as a domain rule.

Includes a Livebook so you can try it yourself.

www.joekoski.com/blog/2026/01...

#elixirlang #livebook #funx
Funx: Equality as a Domain Rule
“A model is a selectively simplified and consciously structured form of knowledge.” — Eric Evans
www.joekoski.com
January 27, 2026 at 6:39 PM
Optics in Funx: optics don’t live alone. Lens, Prism, Traversal, and Iso work together.

Includes a Livebook

www.joekoski.com/blog/2026/01...

#elixirlang #livebook #funx
Funx: Optics Working Together
“You’re looking at it wrong.” — The Big Lebowski (1998)
www.joekoski.com
January 21, 2026 at 7:52 PM
Optics in Funx: same thing, different representations. That’s an Iso.

Includes a Livebook

www.joekoski.com/blog/2026/01...

#elixirlang #livebook #funx
Funx: The Optic Iso
“I see dead people.” — The Sixth Sense (1999)
www.joekoski.com
January 14, 2026 at 10:06 PM
Thanks!
January 9, 2026 at 11:01 PM
My book is #1 on Amazon!

Proving once again that you can be #1 in anything, as long as you control the denominator.

a.co/d/dPiWKRE
Advanced Functional Programming with Elixir: Model Behavior, Manage Complexity, and Maximize Maintainability: Koski, Joseph, Tulton, Adaobi Obi: 9798888651797: Amazon.com: Books
Advanced Functional Programming with Elixir: Model Behavior, Manage Complexity, and Maximize Maintainability [Koski, Joseph, Tulton, Adaobi Obi] on Amazon.com. *FREE* shipping on qualifying offers. Ad...
a.co
January 8, 2026 at 11:14 PM
Reposted by Joseph Koski
New speakers: Lorena Miles, @hayleigh.dev & @jkwa.bsky.social join Code BEAM Lite Vancouver! More announcements coming. Join waiting list for exclusive pricing.
codebeamvancouver.com#speakers
January 8, 2026 at 5:31 PM
More optics in Funx: when you need multiple foci, use a traversal.

Includes a Livebook

www.joekoski.com/blog/2026/01...

#elixirlang #livebook #funx
Funx: Adding the Optic Traversal
“You’re either in or you’re out.” — Ocean’s Eleven (2001)
www.joekoski.com
January 5, 2026 at 5:33 PM
Reposted by Joseph Koski
Insight: Top Ten 2025 Titles at <a href="https://pragprog.com" class="hover:underline text-blue-600 dark:text-sky-400 no-card-link" target="_blank" rel="noopener" data-link="bsky">pragprog.com
#6 Advanced Functional Programming with Elixir
by Joseph Koski @jkwa.bsky.social
pragprog.com/titles/...
Use code INSIGHT to save 40% off this title (and almost everything else) at pragprog.com
January 1, 2026 at 9:12 PM
Funx: Reorganizing Eq and Ord
www.joekoski.com/blog/2025/12...

#elixirlang
Funx: Reorganizing Eq and Ord
When designing Funx I leveraged protocols, which meant some concessions.
www.joekoski.com
January 1, 2026 at 6:14 PM
I like that Ash is opinionated. I chalk up the lack of parallelized validation to “validations should be fast and local,” which seems like a reasonable call.

I also like how easy it is to drop in and out of the DSL.
December 30, 2025 at 2:55 AM
Wow! Glad it helped!
December 29, 2025 at 7:55 PM
I really like Ash!
December 29, 2025 at 7:02 PM
I've been kicking around a smarter pipeline to handle that issue.

www.joekoski.com/blog/2025/12...
Ash Framework: Lessons from its DSL
Lifting (or perhaps stealing) some of Ash’s good ideas.
www.joekoski.com
December 22, 2025 at 11:25 PM
My book up on Amazon 🎉

About 900 people have already purchased it directly from the Pragmatic Bookshelf. If you’re one of them, I’d really appreciate a review. Even a quick sentence or two makes a huge difference.

a.co/d/bWoZwVc
Advanced Functional Programming with Elixir: Model Behavior, Manage Complexity, and Maximize Maintainability: Koski, Joseph, Tulton, Adaobi Obi: 9798888651797: Amazon.com: Books
Advanced Functional Programming with Elixir: Model Behavior, Manage Complexity, and Maximize Maintainability [Koski, Joseph, Tulton, Adaobi Obi] on Amazon.com. *FREE* shipping on qualifying offers. Ad...
a.co
December 22, 2025 at 8:54 PM
More optics in Funx: name your shareable boundaries with prisms.

Includes a Livebook.

www.joekoski.com/blog/2025/12...

#elixirlang
Funx: Adding the Optic Prism
“The problem is choice.” — Neo, The Matrix (1999)
www.joekoski.com
December 22, 2025 at 5:48 PM
Couldn't fit optics in my book, but I can build them into Funx. Here's why lawful lenses matter (even in Elixir):

www.joekoski.com/blog/2025/12...

#elixirlang
Funx: Adding the Optic Lens
“I didn’t say it would be easy. I just said it would be the truth.” —Morpheus, The Matrix (1999)
www.joekoski.com
December 16, 2025 at 5:46 PM
New blog post: After building out the Either DSL, I realized Funx needed a context-aware tap.

www.joekoski.com/blog/2025/12...

#elixirlang
Funx: Adding tap
Tap tap tap-a-roo
www.joekoski.com
December 8, 2025 at 10:57 PM
New post in my Ash Framework series. This time I’m lifting a few of Ash’s DSL ideas (or stealing them outright) to build an Either DSL in Funx.
www.joekoski.com/blog/2025/12...

#elixirlang @pragprog.com
Ash Framework: Lessons from its DSL
Lifting (or perhaps stealing) some of Ash’s good ideas.
www.joekoski.com
December 2, 2025 at 9:07 PM
A new post in my series on the Ash Framework. This one looks at calculations and includes functional programming strategies for managing uncertainty.
www.joekoski.com/blog/2025/11...

#elixirlang @pragprog.com
Ash Framework: Calculations and Uncertainty
How Ash calculations work and ways to deal with missing or uncertain data.
www.joekoski.com
November 25, 2025 at 9:21 PM
Reposted by Joseph Koski
When the work of our authors intersects, it's amazing. Such a privilege to provide a platform for all these talented, passionate humans.
And, their books are included in our Black Friday, 50% off sale!
A new post in my series on the Ash Framework. This one explores the underlying mechanics of Ash validation and where Funx can help when checks need more structure or concurrency.
www.joekoski.com/blog/2025/11...

#elixirlang @pragprog.com
Ash Framework: Diving into Validation
“That’s just, like, your opinion, man.” —The Big Lebowski (1998)
www.joekoski.com
November 20, 2025 at 5:26 PM
Thanks, glad you like it!
November 18, 2025 at 9:28 PM