Thanks to visit codestin.com
Credit goes to wisl.dev

Wisaroot Lertthaweedech

senior data engineer · data platforms, infrastructure, developer tools

I build scalable data platforms, batch and streaming pipelines on GCP with Airflow and BigQuery. 9 years across fintech and energy, now at ABACUS digital, where I built the cloud landing zone from the ground up, all as code: Terraform, CI/CD, IAM, network, security.

about me

Open source

bakefile

An OOP task runner. Write tasks once, reuse everywhere. Like a Makefile, but reusable and in Python.

leetcode-py

LeetCode practice environment generator: curated catalogs (Blind 75, NeetCode 150), typed stubs, and parametrized pytest suites with Graphviz visualizations.

zerv

Rust CLI for dynamic versioning from git: every commit gets its version. semantic-release stays on main; zerv prereleases every other branch.

Blog

Stupidly simple branching: trunk-based, but e2e-testable

zerv-flow, trunk-based with one gap filled: a PR borrows an environment with a label and a lock, so every branch is e2e-testable before merge.

Version every build: semantic-release on main, zerv everywhere else

semantic-release versions main beautifully. Every other branch builds unversioned. zerv gives every commit a SemVer, PEP 440 included, without touching tags.

Make vs Just vs Task vs mise: which reuses workflows?

An audit of how five task runners share workflows between repos: Make include, Just import, Task includes, mise extends, Invoke collections. Where each breaks.