Joshua Liebow-Feeser

I build and study tools that make software safer by default. This blog is where I share thoughts on systems, security, and the art of building the right abstractions.

Recent posts

How to brush your teeth at work

Apr 14, 2026

When you were a kid, you had to learn to brush your teeth. It may be easy now, but at one point it was a skill. You would get toothpaste everywhere, and your mom or dad would have to remind you to brush every tooth.

Read more

Force your macro's callers to write unsafe

Apr 5, 2025

Imagine you're writing this macro:

/// Types that can be frobnicated.
///
/// # Safety
///
/// It must be sound to frobnicate `Self`.
unsafe trait Frobnicatable {}

/// Implements `Frobnicatable` for `$t`.
///
/// # Safety
///
/// `$t` must satisfy the safety invariant of `Frobnicatable`.
macro_rules! unsafe_impl_frobnicatable {
    ($t:ty) => {
        // SAFETY: The caller has promised that `$t` satisfies
        // the safety invariant of `Frobnicatable`.
        unsafe impl Frobnicatable for $t {}  
    };
}

Read more

View all posts