Clean Code
Distributed Systems
CLI & DevOps
API
API Engineering
Cloud Infrastructure
Server Architecture

BITHTHAL

Go Backend Developer

Architecting clean APIs and robust backend systems with Go.

Explore Portfolio

-- now

2025_01_active_migration

Rebuilding my expense tracker in Elixir/Phoenix — raw SQL via Ecto adapters, UUID primary keys, no ORM. Comparing where Go's explicitness and Elixir's concurrency diverge in practice.

Mentoring two interns through a backend curriculum: Go fundamentals, REST API design, goose migrations.

-- projects

2024_11_venue-management

Venue Management System

Go, Gin, pgx, goose. Hexagonal architecture with domain models at the core and Postgres adapters on the edge. Concurrent slot booking via PostgreSQL advisory locks — no double-books under race conditions. Squirrel for queries, Wire for DI.

GoGinPostgreSQLpgxHexagonalWire

2024_08_inventory-management

Inventory Management System

Clean-architecture Go service. Every stock mutation is an immutable audit log — no UPDATE, only INSERT. Raw SQL for aggregation queries. Alerting runs as a separate goroutine pool with backoff, decoupled from the API.

GoPostgreSQLClean ArchitecturegooseSQL

2024_05_tutoredx

TutoredX

Go backend, React frontend. course→module→lesson schema with enrollment verification at every query. Custom middleware chain for auth, tenant resolution, rate limiting. Progress uses a state machine — transitions enforced at the DB level with CHECK constraints.

GoReactPostgreSQLREST APITypeScript

-- how i work

hexagonal boundaries

Domain logic never imports infrastructure. Ports define what the core needs; adapters implement it. Swapping Postgres for SQLite is a one-file change.

raw SQL, no ORM

Squirrel for query building, never for hiding the database. I want to see the JOIN, the WHERE clause, the index hint.

transaction integrity

Every write wrapped in an explicit transaction with rollback. No implicit commits, no partial states.

migrations as history

goose migrations as the single source of truth. Timestamped, reversible, reviewable in version control.

-- contact

Building something that needs a backend? Reach out.