For quite a while, most of my backend code was written in Go.

I built projects like Logiflow, a logistics backend with PostgreSQL, Redis, WebSockets, OSRM and monitoring, and Sentinel, an event-driven fraud detection project using Kafka and PostgreSQL.

At some point I also got tired of setting up the same Go project structure over and over again, so I built gofro, a small scaffolding CLI for generating the boring parts.

I got used to the way Go backend projects feel.

You create the server, configure the router, initialize the database, construct dependencies, pass them around, handle errors and gradually connect everything together.