Skip to content

Instantly share code, notes, and snippets.

@RofieSagara
Last active January 22, 2026 19:30
Show Gist options
  • Select an option

  • Save RofieSagara/db2fe63f31cf934e5a359bb783273fa4 to your computer and use it in GitHub Desktop.

Select an option

Save RofieSagara/db2fe63f31cf934e5a359bb783273fa4 to your computer and use it in GitHub Desktop.

Job Opportunity: Senior Backend Engineer (Golang)

How to Apply

To apply for this position, you are required to complete the technical assessment.

We do not review generic CV submissions without the accompanying technical test. This challenge is designed to showcase your ability to handle real-world backend scenarios involving concurrency, data integrity, and system design.


Senior Backend Engineer (Golang)

Job Description

We are looking for an experienced Senior Backend Engineer to join our technical team. You will be responsible for designing, developing, and maintaining high-performance, reliable, and scalable backend systems. The ideal candidate possesses a deep understanding of concurrency, event-driven architecture, and strict data integrity.

Key Responsibilities

  • Design and build efficient backend microservices using Golang.
  • Architect robust event-driven systems to handle high traffic loads.
  • Design complex database schemas and ensure data integrity through proper transaction management.
  • Conduct code reviews, write unit tests, and enforce code quality (Clean Code).
  • Perform performance tuning on database queries and application logic.

Qualifications & Requirements

1. Core Language & Experience

  • Minimum 4-5 years of professional experience in Backend Development.
  • Expert level in Golang (Go). Deep understanding of Goroutines, Channels, Context, and memory management in Go.
  • Strong grasp of Clean Architecture, SOLID principles, and Design Patterns.

2. Message Broker & Asynchronous Processing (RabbitMQ)

  • Hands-on experience using RabbitMQ (or similar technologies like Kafka/NATS) in a production environment.
  • Understanding of Pub/Sub, Dead Letter Queues, Message Acknowledgment, and retry strategies to prevent data loss.
  • Ability to design systems that handle race conditions in asynchronous message processing.

3. Database & Transactions (Crucial)

  • Multi-Database Knowledge: Proficient in RDBMS (PostgreSQL/MySQL) and experienced with NoSQL (Redis/MongoDB/Cassandra). Knows exactly when to use SQL vs. NoSQL.
  • Deep Understanding of Transactions:
    • Strong knowledge of ACID concepts (Atomicity, Consistency, Isolation, Durability).
    • Understanding of Isolation Levels (Read Committed, Repeatable Read, Serializable) and their impact on performance and data consistency.
    • Experience handling Distributed Transactions (e.g., using Saga Pattern or Two-Phase Commit).
    • Proficient in handling Database Locking (Optimistic vs. Pessimistic Locking) to prevent data conflicts.

4. Infrastructure & Tools

  • Experience with Docker and Kubernetes.
  • Understanding of CI/CD pipelines (GitLab CI, GitHub Actions, or Jenkins).
  • Familiar with monitoring tools (Prometheus, Grafana, ELK Stack).

Technical Assessment: Scalable Coupon System

Objective

Build a REST API in Golang for a "Flash Sale" Coupon System. The system must handle high concurrency, guarantee strict data consistency, and be easy to deploy via Docker.

IMPORTANT: We will use an automated script to test your submission. You must follow the API Specifications exactly as described below.

Tech Stack Requirements

  • Language: Golang.
  • Database: MongoDB or SQL (PostgreSQL/MySQL).
  • Infrastructure: Application must run via Docker / Docker Compose.

Database Constraints & Rules

  1. Separation of Concerns: You must separate Coupon data and Claim history into two distinct Collections/Tables.
  2. No Embedding: You are not allowed to embed claim history inside the Coupon record.
  3. Uniqueness Rule (CRITICAL):
    • A user_id can claim a specific coupon_name only once.
    • However, the same user_id can claim other different coupons.
    • Hint: Ensure your database schema enforces uniqueness on the pair (user_id, coupon_name) to prevent race conditions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment