I build whatever I'm curious about that week. What I keep coming back to is the low-level side — allocators, interpreters, emulators — and terminal programs that are pleasant to live in; everything else is fair game. Mostly Rust, C, Zig and Go, on Linux.
// about.rs
struct Huseyn {
studies: &'static str,
writes: &'static [&'static str],
cares_about: &'static [&'static str],
lives_in: &'static str,
}
const ME: Huseyn = Huseyn {
studies: "computer engineering, marmara university",
writes: &["rust", "c", "zig", "go"],
cares_about: &["memory layouts", "schedulers", "interpreters", "terminals"],
lives_in: "a tty, on linux",
};
fn main() {
println!("{}", ME.studies);
println!("writes {} · lives in {}", ME.writes.join(", "), ME.lives_in);
for thing in ME.cares_about {
// take it apart, see how it works, put it back together
println!(" {thing}");
}
}
Most of this runs in a terminal. Most of the rest wishes it did.



