kristoff's Avatar

kristoff

@kristoff.sh

kristoff.sh I'm a software engineer in Bozeman, Montana! I'm sinking my teeth into Elixir + genAI and looking for others who are like minded! My other interests include Magic the Gathering, Improvisation, Yoga, the Cosmere, POE, Godot, and Rock Climbing.

45
Followers
115
Following
100
Posts
01.12.2024
Joined
Posts Following

Latest posts by kristoff @kristoff.sh

Running llm's through each row of a csv is so powerful! Great for aggregating semantic meaning from arbitrary text!
(also a great way to spend a lot of money if your not careful πŸ˜…)

05.08.2025 20:45 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

De-dupping articles when searching articles is super super important, don't want to influence the llm more than intended.

05.08.2025 15:17 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

I know why we named ReAct agents (reason/action), but I can't stop thinking how funny it is we clashed names with the most popular web framework πŸ˜…

05.08.2025 15:09 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Preview
Sequence Diagram <p>Sequence diagrams ​ A Sequence diagram is an interaction diagram that shows how processes operate with one another and in what order. Mermaid can render sequence diagrams. INFO A note on nodes, the...

Love using mermaid sequence diagrams, such a great way to show big brain ideas 🧠

docs.mermaidchart.com/mermaid-oss/...

04.08.2025 23:15 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

The quality on this one is so good! I picked one up myself πŸ˜„

04.08.2025 03:54 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

EVO is such a great event! I absolutly love the celebration of fighting games and announcements. Just picked up a copy of SF6 πŸ˜„

04.08.2025 03:39 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
</> htmx - high power tools for html htmx gives you access to AJAX, CSS Transitions, WebSockets and Server Sent Events directly in HTML, using attributes, so you can build modern user interfaces with the simplicity and power of hypertext...

You got to check out HTMX. Very simple and sensible functionality that really should be added to the web.

htmx.org

03.08.2025 17:08 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

The "Query Object Pattern" also looks look so useful! Defining a "custom view" of analytics is pretty common in enterprise software. I love how these tiny functions could be used to create a user's dream table ✨
I'm not understanding the pattern matching or how this works syntactically πŸ˜…

02.06.2025 11:56 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Another quote - "A repository is not a database. It’s a protocol between your system’s logic and its data backend, a protocol that permits decoupling, testing, and iteration."

I've never ran tests or tried switching out backgrounds. I think ecto would be great for this! Sounds like a fun project!

02.06.2025 11:52 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Preview
What Elixir Taught Me About Design Patterns Lessons and best practices I learned after three years at OpenFn building simple, distributed, and resilient systems.

source: medium.com/@EliasWalyBa...

02.06.2025 11:47 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

I liked the quote "Each supervision tree is a mini immune system."

It encapsulates how responsible and capable each process is in Elixir. With strong isolation and fault taulerant patterns like GenServer and Supervision trees, you can program a living piece of code.

#ElixirLang #Erlang

02.06.2025 11:47 πŸ‘ 10 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
usage_rules v0.1.3 β€” Documentation

I think I found it! 😁
hexdocs.pm/usage_rules

24.05.2025 16:01 πŸ‘ 2 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

I'd love to try this! What are the usage_rules? Is that a function or API parameter? Thanks!

24.05.2025 15:58 πŸ‘ 2 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

congrats! looks like an amazing opportunity!

10.05.2025 16:51 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

Awesome! I was trying to find more info on the creator. Thanks! 😊

02.04.2025 14:08 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

What a great way to spend my morning! I absolutely love the idea and spirit behind this project. It's such a fun application to build an ai agent around.

02.04.2025 13:18 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Preview
Elixir in Action, Third Edition Fully updated to Elixir 1.15, this authoritative bestseller reveals how Elixir tackles problems of scalability, fault tolerance, and high availability.</b> Thousands of developers have learned to bui...

Good morning #AlchemyConf2025! Elixir in Action is 45% off with code alchemy25. Enjoy the read and see you soon!

www.manning.com/books/elixir...

02.04.2025 07:07 πŸ‘ 16 πŸ” 8 πŸ’¬ 0 πŸ“Œ 0
List of misc blog posts at kristoff.sh, sorted by the date newest to oldest going down.

List of misc blog posts at kristoff.sh, sorted by the date newest to oldest going down.

TIL how to sort dates in elixir. The 'Date' piece is the key to comparing dates.

Enum.sort([~D[2019-12-31], ~D[2020-01-01]], {:desc, Date})

Here's it in action; sorted blogs at kristoff.sh

credit: significa.co/blog/elixir-...

#ElixirLang

31.03.2025 17:40 πŸ‘ 4 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Shaping Goblin Fight Club blog on kristoff.sh

Shaping Goblin Fight Club blog on kristoff.sh

line of code reading: File.read!(Path.join(:code.priv_dir(:portfolio), "static/markdown/#{id}"))

line of code reading: File.read!(Path.join(:code.priv_dir(:portfolio), "static/markdown/#{id}"))

I just added blogs to my personal website kristoff.sh

This was tricky because because I'm rendering my markdown using Earmark from a file at runtime, not cached atm. To find this file I had to use this beautiful line of code.

#ElixirLang

31.03.2025 03:46 πŸ‘ 3 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

If you are excited about what you do, your probably doing the right thing.

Always give yourself the opportunity to take a breath, minute, day, etc. to have those conversations with yourself and those around you.

But also trust your gut.

29.03.2025 23:44 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

I'm really happy with the Elixir ecosystem, I can see so much promise from my little perch πŸ”οΈ

#ElixirLang

29.03.2025 23:42 πŸ‘ 8 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0

I'm really blown away by elixir's Ecto library. It looks to do so much with amazing examples. I specifically like the detail around tenant isolation, migration + schema cheat sheets, and examples based in postgreSQL 🐘

#ElixirLang

29.03.2025 23:38 πŸ‘ 2 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

I agree that supervision is key. I'm realizing that generative AI is most useful when parsing semantic text-based data sources. It enables you to create a conversation user interface into a complex system. In some ways it's more approachable, because it can feel like your talking to another person.

13.03.2025 14:06 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Preview
a lava lamp is lit up in the dark with yellow lava coming out of it Alt: a lava lamp is lit up in the dark with yellow lava coming out of it

Processing data with an llm is like the blobs in a lava lamp. The data is big, then suddenly small, and magically large again.

Llms are great at summarizing lots of text into a statement. That statement can then be used for searching adjacent and relavent documents.

#AI #Claude #LLM

11.03.2025 16:10 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Thanks for the great post! Just curious - what software did you use for this presentation, it looks super clean! Thanks!

11.03.2025 13:25 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

Claude dot AI's artifacts are such a great way to iterate, share, and visualize changes over time. I especially love the versioning and how easy updates are performed.

#Claude

05.03.2025 05:35 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Monitoring LLM usage is essential for sustainable AI. Track token counts by model to find efficiencies, spending by use case to validate ROI, request latency for UX impact, and error rates to improve performance.
#LLMOps #AIEngineering

03.03.2025 21:07 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Video thumbnail

I made an assistant REPL which retains state! This loop updates a simple context object which stores previous assistant and user turns! The program also respects important commands like 'quit' and 'inspect' to exit and look at previous turns.

gist: gist.github.com/Gearhartlove...

#AI #Claude

02.03.2025 15:58 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Id write a utility function to create this if I used single variable tuples a lot. Something like tuple(elements) and tuples(elements)

28.02.2025 15:22 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

OK surely I'm not the first one to point out how jank this Python tuple syntax is for creating a tuple with one element. Use case is creating an immutable data structure.

>>> t = 1,
>>> type(t)
<class 'tuple'>
>>> t = (1,)
>>> type(t)
<class 'tuple'>
>>> i = (1)
>>> type(i)
<class 'int'>

#Python

28.02.2025 04:34 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0