Haniker

A functional programming duo.

We design and build web & mobile apps where invalid states don't compile. Agile thinking, functional coding, user-friendly design — craftsmen, artisans, and sometimes saviors to our clients.

λ.1 Work

TypeFirst live

typefirst.io — our methodology

TypeScript where invalid states don't compile. Every application is specified as five levels of types — core domain (T1), database rows (T2), API contracts (T3), frontend state (T4) and actions (T5) — so the compiler, not the code review, enforces the architecture.

ts-bedrock

github.com/haniker-dev/ts-bedrock — open source

The TypeFirst starting point in production form: a TypeScript monorepo where shared Core contracts bind an Express API of pure, testable handlers to a Vite web frontend. Change a type once and every layer that disagrees stops compiling.

elm-autocomplete

github.com/futureworkz/elm-autocomplete — open source

A headless autocomplete for Elm: debouncing and async fetching are handled for you, every pixel of the view is left to you. One state type, one fetcher returning a Task, single or multiple selection. MIT, on the Elm package registry.

λ.2 About

Haniker is Han + IkerHan from Han Wee, Steven's Chinese given name, and Iker from Iker Trần. Two engineers who kept choosing each other's code reviews.

Steven Yap

Full-stack developer and tech entrepreneur. Leads product builds in TypeScript, React Native, Elm and serverless Node — real-time, responsive applications shipped with small, sharp teams.

Iker Trần

Functional programming and clean-code advocate. The conscience of the codebase: if it merged, it survived his review.

λ.3 Blog

Notes on the things we build, and why they are built that way.