All Posts
- 2025, Joining 40 Club
- LLM
- 2024
- OpenTelemetry for NextJS and Google Cloud Tracedev
- Next.JS dynamic import and 500 errordev
- Memoize and memory leakdev
- Heated glovesride
- Campervan to Slovenia 2024 🇳🇱🇩🇪🇦🇹🇸🇮
- 2023
- Cloud services for my personal projects in 2023dev
- Keyboard
- หนึ่งปีที่ผ่านมาใน Netherlands
- Feeds 2.5, bring back files databasedev
- Mastodon timelinedev
- Firestoredev
- My wrong assumptions with ActivityPubdev
- 2022
- Mastodon server with NextJSdev
- Infinite Scrolldev
- Gallery Page
- Container Query & overscroll-behaviordev
- Next.JS 13dev
- iCloud Photos shared albumdev
- Amsterdam after 6 months
- NextJS middleware 12.1 vs 12.2dev
- First fall in Netherlandsride
- Amsterdam after 3 months
- Netgear MR5200
- Test & Go
- 👋 Singapore
- Javascript unicode text splittingdev
- Apple Watch Browserdev
- 2021
- Modern Javadev
- URI matrix parameterdev
- DSM7 vhostdev
- Freestyle Libre 2ride
- Moots 20,000kmride
- Lasik
- Debian 10 arm64 with qemudev
- Fetch API with progressdev
- Static feeds aggregatordev
- Festive500ride
- 2020
- M1
- Singapore round island rideride
- DynamoDB virtual tabledev
- Bounce & Complaintdev
- Libby
- OpenMapTiles on Synologydev
- Indoor cyclingride
- Moots 10,000kmride
- 11tydev
- Gran Fondo 2019ride
- 2018
- ECS and EC2 on spot instancesdev
- Windows as my work machinedev
- NTU Bike Rally 2018ride
- 2017
- Building my own router and HomeKit hubdev
- Ruby and new Nodejs on AWS Lambdadev
- Cycle to workride
- Fenix 3 HRride
- 2015
- Bishan park to circuit roadride
- 2014
- Ember.jsdev
- Renew EP
- iPhone6
- OpenVPN + DD-WRTdev
- function.bind()dev
- Logging in PHPdev
- chai.js deep equaldev
- 2013
- q.js and Mochadev
- Angelhack Singapore 2013dev
- ดูหนังรอบๆ Southeast Asia