kristoff
banner
kristoff.sh
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.
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 😅)
August 5, 2025 at 8:45 PM
De-dupping articles when searching articles is super super important, don't want to influence the llm more than intended.
August 5, 2025 at 3:17 PM
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 😅
August 5, 2025 at 3:09 PM
Love using mermaid sequence diagrams, such a great way to show big brain ideas 🧠

docs.mermaidchart.com/mermaid-oss/...
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...
docs.mermaidchart.com
August 4, 2025 at 11:15 PM
EVO is such a great event! I absolutly love the celebration of fighting games and announcements. Just picked up a copy of SF6 😄
August 4, 2025 at 3:39 AM
You got to check out HTMX. Very simple and sensible functionality that really should be added to the web.

htmx.org
</> 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...
htmx.org
August 3, 2025 at 5:08 PM
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
June 2, 2025 at 11:47 AM
Reposted by kristoff
Good morning #AlchemyConf2025! Elixir in Action is 45% off with code alchemy25. Enjoy the read and see you soon!

www.manning.com/books/elixir...
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...
www.manning.com
April 2, 2025 at 7:07 AM
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
March 31, 2025 at 5:40 PM
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
March 31, 2025 at 3:46 AM
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.
March 29, 2025 at 11:44 PM
I'm really happy with the Elixir ecosystem, I can see so much promise from my little perch 🏔️

#ElixirLang
March 29, 2025 at 11:42 PM
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
March 29, 2025 at 11:38 PM
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
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
media.tenor.com
March 11, 2025 at 4:10 PM
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
March 5, 2025 at 5:35 AM
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
March 3, 2025 at 9:07 PM
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
March 2, 2025 at 3:58 PM
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)

>>> t = (1,)
>>> type(t)

>>> i = (1)
>>> type(i)


#Python
February 28, 2025 at 4:34 AM
Anthropic's brand is super clean and attracted me almost instantly. It feels soft, smart, and approachable. I set up their a Console account, bought 5$ worth of tokens, and used their Python SDK this morning to send in a prompt. I actually got an output back which feels amazing!!! ✨
February 27, 2025 at 2:40 PM
OK it's official, I'm an AI Engineer starting tomorrow! I'm eager to wrap up my backend work and dive into Python and prompting best practices. On top of my list is learning the basics around Retrieval-augmented generation (RAG), prompt chaining, model comparisons, and output coherence.

#AI
February 27, 2025 at 5:44 AM
Python's 'uv' package manager seems pretty slick. Happy to give it a shot for my future projects!

source: github.com/astral-sh/uv

#Python
February 26, 2025 at 5:33 AM
Reposted by kristoff
We said we will focus on interoperability for 2025 and we are ready to share the first results. Embedding Python in Elixir, it's Fine: dashbit.co/blog/running...

More updates likely at ElixirConf EU 2025 :)
Embedding Python in Elixir, it's Fine - Dashbit Blog
Introducing Python interpreter embedded in Elixir and a Fine way to write your NIFs.
dashbit.co
February 25, 2025 at 11:34 AM
Work has me delving more into Python these days. Happy to learn the details of this dynamic language and build upon my first two semesters at college with it. I liked it then and I'm excited to dive in again!
February 25, 2025 at 5:04 AM
Restricted Python is a great way to keep your app configurable but safe. It's a subset of your programming language, without all the security risks like deleting files, reading passwords, and writing malicious code. It also allows you to restrict imports via a whitelist feature!
February 25, 2025 at 5:03 AM
New handle, who's this 😅 !

It was actually really easy to change, happy to have my website as my handle!
February 22, 2025 at 1:37 PM