We are looking for a Backend Engineer who can go beyond simply executing tasks — someone who understands the problem, identifies ambiguities, breaks work into deliverable pieces, anticipates risks, and takes ownership of the outcome of their work in production. Part of the role involves developing new capabilities, while another important part focuses on incrementally and safely improving the existing system. What You’ll Do
Develop and maintain backend services using Go.
Design and develop APIs and communication between services.
Participate in technical analysis, break down features into manageable pieces, and provide realistic estimates.
Design and implement asynchronous and event-driven workflows.
Work with PostgreSQL, including query optimization, transactions, and data structures.
Work with RabbitMQ, including handling retries, timeouts, failures, and duplicate messages.
Investigate production incidents and issues and work to prevent them from happening again.
Write unit and integration tests for critical paths.
Add appropriate logs, metrics, and traces to new capabilities.
Actively participate in code reviews and technical decisions.
Collaborate with Product, QA, Frontend, and DevOps teams throughout the process, from design to release.
What We’re Looking For
Strong hands-on experience developing backend systems with Go in a real-world product.
Ability to independently deliver a feature from analysis through production.
Strong understanding of HTTP, REST APIs, and Webhooks.
Solid knowledge of PostgreSQL and SQL.
Understanding of transactions, locking, indexing, and query optimization.
Good understanding of concurrency in Go, including goroutines, race conditions, and synchronization.
Experience working with a message broker, preferably RabbitMQ.