Blog Posts
Filter by text:
Filter by tag (clear ✕):

6 items

  1. #1

    Discord Rich Presence

    As a WSL-based NixOS user, I make life difficult for myself sometimes.

    This post details setting up Discord Rich Presence to sync my Neovim activity from WSL to this blog in real-time using npiperelay and socat.

  2. #2

    Simple Elixir Optimization

    Coming from other languages, especially imperative ones, it’s easy to write suboptimal Elixir code.

    This post covers practical optimizations—avoiding length/1, leveraging streaming, using ETS—without needing complex profiling tools.

  3. #3

    Distributed Erlang

    Erlang’s actor model, OTP, and distribution work together beautifully to build fault-tolerant systems—but there are gotchas.

    From process mailboxes and supervision trees to clustering challenges, network partitions, and the single mailbox bottleneck.

    This post explores the many strengths, and subtle pitfalls, of building distributed systems with Erlang.

  4. #4

    You have built an Erlang

    You wanted a simple service notification system, so you added HTTP callbacks, then queues, then retries, then supervision…

    Congratulations! You’ve built an ad-hoc, informally-specified, bug-ridden slow implementation of half of Erlang.

    A satirical journey through accidentally reimplementing the actor model as seen on Hacker News.

  5. #5

    The Case against Pipes

    Every Elixir developer pipes everything, then withs everything, then realizes different problems need different solutions.

    This post explores said overuse, and talks about my preference for cond and sometimes simply case as alternatives instead.

  6. #6

    Ecto Queryable Pattern

    Ecto queries are just data! This post goes over how we can abuse that fact to build ergonomic, composable query patterns.

    Using behaviors, callbacks, and metaprogramming, we can create a single source of truth for query logic that works everywhere.