[ Journal — 16 essays ]

Notes from
production.

Architecture decisions, trade offs and dead ends, written from systems that actually shipped, not from a whiteboard.

16 essays

Jul 15

2 min read

Building a LINE First Fitness Agent with AI Cost Gates

I built a fitness tracker on LINE for Thailand. My ex girlfriend and friends got hooked, then they told me the hard truth about building on a chat platform.

Jul 15

2 min read

A Polyglot Feedback Platform: Django, Next.js, and Elixir Working Together

I worked as a waiter and wanted a way to give restaurants honest feedback without public shaming. So I built KraowKao using three languages that each do what they do best.

Jul 15

2 min read

Building an AI Accountability Coach That Knows Your Habits

I wanted to fix my calendar. Instead I built an AI coach that learned my procrastination patterns better than I knew them.

Jul 15

2 min read

Building a Multi Platform AI Budget Coach

I was making more money but my savings were not going up. So I built DIA, a budgeting coach that lives inside Telegram, WhatsApp, and Discord.

Jul 15

2 min read

Building a Voice AI Receptionist for Restaurants

How I built Vozko, an AI voice receptionist that answers restaurant phones during the lunch rush. The integration nightmare, the moment it clicked, and where it is now.

Jul 15

2 min read

Building a Reusable Chat Infrastructure with DynamoDB Single Table Design

I built chat for one project, then another, then another. The third time I made it reusable. One DynamoDB table that powers real time messaging for any application.

Jul 15

2 min read

Designing a Three Reviewer Consensus Platform for Digital Harm Reporting

I built a consensus platform for the South African government where three independent reviewers evaluate digital harm reports. The hard part was keeping them isolated from each other.

Jul 15

2 min read

Building a Real Time Sports Scoring Engine with WebSockets and DynamoDB Streams

Tennis courts in South Africa needed live scores that everyone could see instantly. DynamoDB and WebSockets made it possible.

Jul 15

2 min read

Migrating a Production Platform from CDK to SST Without Downtime

CDK worked until it did not. I migrated Restore Blue from AWS CDK to SST with zero downtime by running both stacks in parallel.

Jul 15

5 min read

From Dubai to Thailand: How I Landed a Remote Role at a South African Company

The Next Chapter When I left the waiter job and returned to engineering, I knew I wanted...

Mar 30 '25

3 min read

Integrating Cloudflare Turnstile with SvelteKit Forms

This post explains how to integrate Cloudflare Turnstile with a SvelteKit form using use:enhance,...

Mar 14 '25

3 min read

LeetCode 35: Search Insert Position. Binary Search vs Linear Scan

The problem is here My Solution: /** * @param {number[]} nums * @param {number}...

Aug 28 '24

3 min read

Cleaner Function Signatures with Destructured Parameters

Let's say I have a project in three.js and I need some geometries, I will hardcode an array of...

Aug 28 '24

4 min read

From Software Engineer to Waiter in Dubai

My Journey in Dubai I've recently moved to Dubai, the city of luxury we all know well, but...

Jun 20 '22

2 min read

The Vue Slot Shorthand That Makes Templates Cleaner

Named Slots has a shorthand that isn't necessarily shorter but maybe cleaner. This is the regular...

May 17 '21

2 min read

Simple guide of Flexbox in Real Life🔥

Flexbox is an interesting way to make layout At least better -as I see- compared to float's and other...

Written and published from the admin panel.

Back to the journal ↗