I have been a bit out of the loop. what is relevant these days for writing ebpf code? what about ebpf code in python?

Writing it in C, compiling with clang, and loading with either C(libbpf), Go (cilium/ebpf), or Rust (Aya).

You can also write bpf in rust with Aya but i'm not sure how feature complete it is.

For very simple use cases you can just bpftrace.

bpftrace is nicer to work with and can replace bcc in most cases for debugging.