I have used job queues my whole developer life without knowing what was inside them.

So I built one.

Not a wrapper around an existing queue. A full implementation from scratch

with Redis, PostgreSQL, goroutines, and real failure handling.

Here is everything I learned.