RSSAmplifier

Blog

jola.dev

Blog posts from jola.dev

jola.devRSS feed ↗38 posts

Latest posts

Taking control of your atproto account

Setting a rotation key on your atproto (Bluesky, Eurosky, etc) account means you can recover it even if the account provider shuts down.

No cost, no value

Why generating code makes it meaningless, why writing code by hand has value, and why toil is a critical part of the human experience.

Latch - an Elixir atproto OAuth library

Introducing Latch, an idiomatic elixir atproto OAuth library and client, built for flexibility and correctness.

Limited output is a feature

Great startups don't win because they write more code, they win because they think differently.

Distributed rate limiter with HRW in Elixir

Building the classic distributed rate limiter, using the HRW library instead of the traditional ExHashRing.

A computer can never be held accountable

For better or for worse the things you create with LLMs are your responsibility, just like with any other tool.

Elixir Cluster 101

A practical guide to clustering your nodes and tracking the cluster state for real use cases.

How to stop Claude from saying load-bearing

Hack the text output of Claude Code to make life a little bit sillier.

Let libraries be libraries

A gentle rant on the topic of libraries that run as Elixir applications and why that's an anti-pattern for library design.

CI workflows on Tangled for Elixir

How to set up CI workflows on Tangled for Elixir, with specific Elixir and Erlang versions, and a PostgreSQL service.

Automatically syncing your blog to atproto and standard.site

Kicking off a little side project for automatically discovering content through blog post feeds and syncing to atproto and standard.site.

Appreciation for the small web

A little love letter to the small web, to the now classic technology of RSS, to the future of atproto, and to the people who share for the joy of sharing.

Treating LLMs as programming books

Thoughts on an approach for using LLMs effectively for coding without losing engagement and cognitive effort.

Publishing your blog to standard.site in Elixir

A walkthrough for posting your Elixir/Phoenix blog to Bluesky and the standard.site network, using a small mix task and an atproto client.

Generating OG images in Elixir

Generating OG images for your static pages and blog posts in Elixir

The social contract of writing

About the value of genuine writing in a world being drowned in slop.

Highest Random Weight in Elixir

A description of HRW/rendezvous hashing and the HRW elixir library.

bunnyx: a bunny.net Elixir client library

A best-practice Elixir library for interacting with the bunny.net API

Building for the joy of building

My path into programming and why I've been obsessed for 20 years.

Running local models on an M4 with 24GB memory

Experiments with getting usable outputs out of local models on a standard Macbook

How to hit your Claude weekly limit so you can go outside and touch grass

A satirical guide to maxing out your Claude weekly limit so you finally go outside and touch grass, featuring sub-agents, MCPs, and max effort.

Dropping Cloudflare for bunny.net

Dropping Cloudflare and migrating to bunny.net, starting out with my blog.

Building a blog with Elixir and Phoenix

Setting up a website using Elixir and Phoenix, leaning on NimblePublisher for the blog posts.

Stay in the Loop: How I Actually Use Claude Code

How to multi-task Claude Code while staying in the loop, increasing success rate and parallelization.

Ruthless Prioritization: The Path to Delivery

Ruthless prioritization means shipping the smallest possible valuable piece to get user feedback faster, because iterating is the only path to building products that actually work.

Estimates Are More Valuable Than You Think

A reflection on how software estimation, often seen as a tool for micromanagement, actually builds trust and improves team communication when done right.

When Software Engineers Think They Need More Focus Time

A reflection on why software engineers often overvalue uninterrupted coding time when their highest impact work actually happens through collaboration and staying connected to the bigger picture.

If the Goal is Resiliency, Defensive Programming is Your Enemy

A counterintuitive exploration of why defensive programming with excessive error handling creates less resilient systems than those designed to fail fast and explicitly.

The Magic of Daily Pull Requests: Why Smaller is Better

A deep dive into why shipping small, daily pull requests transforms both your productivity and your team's collaboration, even though it requires rethinking how you structure your work.

Building a Distributed Rate Limiter in Elixir with HashRing

Using distributed Elixir to upgrade a node local rate limiter

Announcing Hex Diff

I’m incredibly excited to announce the new web-based Hex package differ: diff.hex.pm, maintained by the Hex team!

Building Hex Diff

I wanted to give some insight into the Hex Diff project, how it works, and some issues we ran into on the way.

Push-based GenStage

GenStage is a pull-based system, where consumers pull events from the producers, and most of the documentation describes this

The Erlang :queue module in Elixir

Elixir doesn’t provide its own data structures, instead, it uses the ones provided by Erlang

Patterns for managing ETS tables

This article attempts to show some basic patterns for how to use ETS in Elixir or Erlang

Health checks for Plug and Phoenix

I want to share a simple pattern for setting up HTTP based health checks for Plug/Phoenix applications

The new `Registry.select/2` and what match specs are

A walkthrough of Elixir 1.9's new Registry.select/2 function, plus a gentle introduction to how Erlang match specifications work.

Elixir String Processing Optimization

This post was inspired by a thread I participated in on the Elixir forum