> whoami @jhheider

Small, sharp tools for the terminal.

I'm Jacob Heider. I write Rust CLIs and TUIs that do one job, do it well, and leave alone everything you didn't ask them to touch. I pay the cost of correctness up front; the compiler is my first code reviewer.

# Tools

config editor

edikt

Edit config files without reflowing them.

Change one value in TOML, YAML, JSONC, KDL, INI or .env, and every other byte, comments included, stays exactly where it was. jq-flavored paths, sed-shaped flags.

brew install jhheider/tap/edikt
product page →
markdown home

penknife

A terminal home for your markdown.

Browse and search a folder of notes, paste any file into Docs, email or Slack as clean rich text, and sync to GitHub Gists with honest drift status.

brew install jhheider/tap/penknife
product page →
podcast player

pdcst

The queue fills itself.

A keyboard-driven podcast player. Mark a show once and new episodes land in Up Next as they publish, interleaved so no show hogs the queue. One binary, no account.

brew install jhheider/tap/pdcst
product page →

## Also in the toolbox

Libraries live on /crates/.

# Day job

First engineer at tea.xyz. Most of my open-source hours go into pkgx:

# On Software

Rust is not the devil, nor the messiah. It's a tool, a powerful, occasionally frustrating, remarkably well-designed tool. The choice isn't between safety and productivity. It's between when you pay the cost of correctness.
I reach for Rust first for anything that's going to outlive the end of my day. But I've also walked away from it when it wasn't right. The decision should be engineering, not religion.
The borrow checker doesn't teach you good architecture. It enforces certain constraints, but I've seen plenty of Rust code wrapped in so many Arc<Mutex<T>> layers that it's basically garbage collection with extra steps.
If you do it twice, script it. If you script it twice, ship it. I've been automating since a college internship in VisualBasic. I've never stopped.

# About

I've been writing software since I found programs printed in the back of 3-2-1 Contact and typed them into an Apple ][c. Decades later, I was the first engineer hired by the founders of tea.xyz, where I helped advocate for a complete rewrite from Deno to Rust, because it was the right choice for that project.

In between: network engineering, ISP support, small businesses, and a plethora of full-stack dev. The through-line is the same: find a problem, write code, ship it.