software engineer · addis ababa
Hey there, I'm Yoftahe Abraham. I'm a software developer who likes building small, sharp tools. I work mostly in rust and typescript, with frequent detours into zig, go, nix and kernel developemnt.
Currently focused on systems programming, type-safe data pipelines, and reproducible development environments. I care about every detail and make something as small as possible.
posts, writings & essays
04
-
writing
July 19
Learning assembly x86
reproducible environments are not a luxury. a few notes on how i use nix to keep my dev machines in sync.
-
writing
November 14
why i write nix for everything
reproducible environments are not a luxury. a few notes on how i use nix to keep my dev machines in sync.
-
writing
August 2
a small zig json parser
writing a streaming json parser in zig was the best way i could think of to actually learn the language.
-
writing
April 19
type-safe sql in rust
moving runtime sql errors to compile time. what worked, what didn't, and what i'd do differently.
project
tilde
ziga minimal, fast, and hackable terminal emulator written in zig. focused on speed and a clean rendering pipeline.
stats
project
nixdots
nixmy personal nix configuration, packaged as a flake. reproducible development environments for every machine i touch.
stats
project
kestrel
ocamla tiny, embeddable http server written in ocaml. built for learning, optimized for clarity.
stats
project
muxrpc-go
goa type-safe rpc framework for go services. streams, multiplexes, and never blocks longer than it has to.
stats
project
ferrite
rusta type-checked query builder for sql in rust. compile-time guarantees that your queries are valid before they ever run.
stats
project
tsc-watch
typescriptan opinionated file watcher for the typescript compiler. rebuilds on change, pretty-prints diagnostics, nothing more.
stats
language
Rust
my default for performance-sensitive work and code that benefits from strict correctness.
current note
what i reach for when performance or correctness really matters.
language
TypeScript
the day-to-day workhorse for product code, tooling, and fast iteration.
current note
the workhorse. types catch most of the dumb mistakes i would otherwise make.
language
Go
what i use for small services and utilities when the simplest thing should win.
current note
for tools and small services. boring in the best possible way.
language
Zig
the language i keep reaching for when i want low-level control without much ceremony.
current note
lower-level systems work without the ceremony. getting comfortable.
language
Nix
the basis of my dev environments and dotfiles, so machines stay reproducible.
current note
explicitly called out: i use nix for all my dev environments and dotfiles.
language
OCaml
a good place to explore strong types and compact, expressive code.
current note
slowly picking it up. the type system rewards the time you put in.