The very first thinking process for the Go Tamboon Challenge.
A behind-the-scenes architecture built in familiar territory — TypeScript and Node.js — before committing to Go.
This project represents the foundation for the final Go implementation. It's where ideas were first explored, validated, and iterated quickly using tools I’m deeply familiar with — TypeScript, Node.js, and modern testing workflows.
It's not just a sandbox. It’s where:
- Domain-driven structure was prototyped
- Stream processing and error handling were experimented
- Omise API contract integration was mapped
- The business flow was tested end-to-end before migrating to Go
- Node.js + TypeScript
- Jest for unit testing
- Yarn as package manager
- Modular folder structure inspired by DDD
- Early module aliasing + separation of domain/application/infrastructure layers
| Folder | Purpose |
|---|---|
src/ |
Core business logic & layered modules |
data/ |
Sample encrypted input file(s) |
tests/ |
Jest-based unit tests |
yarn install
yarn testBefore diving into Go — a newer language for me — I used this TypeScript project to:
-
Validate assumptions
-
De-risk unfamiliar concepts
-
Explore domain abstractions safely
-
Build confidence in architecture and logic
If you’re reading this, the real magic is now in the Go version. But this repo? It’s where it all began.
Inspired by the Omise Go Challenge
Node version serves as a thought incubator, not a final solution
I’m a software engineer who loves to blend thoughtful design with clean execution — even when stepping into a new language. This repo is one piece of that journey.