Riz

@arizawan.bsky.social

Full-stack dev. 12y exp. Founder of Thea Tech Solution. Building marketplaces + AI-powered products. Bangkok 🇹🇭 | Dev, AI tools & solo agency life.

the one Bangkok transport that regularly tests my patience: MuvMi at peak hours. great service, tiny electric tuk-tuks, cheap short hops. but book one at rush hour and you'll wait long enough to question the plan. long distance here is solved. the last two kilometres at 6pm are not.

I work from home on true 1 Gbps fiber in Bangkok. not advertised-1Gbps-actually-90. actual gigabit. the stereotype is that you move to Southeast Asia and accept worse infrastructure. my connection here is better than anything I've had in Europe.

an AI-generated API error response that includes the stack trace is handing every caller a map of your codebase. file paths, framework versions, query structure. free reconnaissance for anyone probing. errors should say what went wrong for the user. never how, or where.

"can you show me who approved this transaction and when?" if the answer involves grepping logs, you don't have an audit trail. you have logs. an audit trail is a deliberate, immutable record of sensitive operations. AI coding tools never build one unless asked. nobody asks.

one question breaks every AI-built system I've reviewed: when this silently fails, who finds it? not who fixes it. who finds it. nobody who built with AI has an answer. the silence is the finding.

a config file with seven API keys where only one is ever called tells a story. to a developer it says "iterations happened here." to a client reading it, it says "he just plugged in other people's services." delete dead keys. git remembers them.

mean vulnerabilities per codebase in 2026: 581. up 107% in one year. 87% of codebases now contain at least one high or critical severity flaw. the build got faster. the review didn't happen at all.

Access-Control-Allow-Origin: * one character in an AI-generated API config. it means any website on the internet can call your API from its users' browsers. the asterisk makes the demo work. that's why it's there. that's also the problem.

a payment webhook without idempotency works perfectly until the network hiccups. then Stripe retries. your handler runs twice. the customer is charged twice. the AI wrote a handler that works. nobody asked what happens when it runs twice. that question is the job.

AI-generated code carries 2.74x more vulnerabilities than human-written code. not because the AI is careless. because the human reviewing it isn't reviewing it. it looks done. done gets merged.

AI-generated login endpoints almost never have rate limiting. the login works. the password check is correct. and nothing stops a script from trying 10,000 passwords a minute against it. brute force isn't clever. it just needs an endpoint that never says stop.

EU AI Act Article 50 went live four days ago. almost nobody changed anything. the fines don't arrive on day one. the audit requests do, eventually. and retroactive compliance documentation is the most expensive kind.

my company is UK-registered. I live in Thailand. I invoice EU clients. three tax jurisdictions, one person, zero accountant panic. the timezone gap people warn you about is actually the best part. I'm done with deep work before most of Europe has had lunch.

I do client calls from my car sometimes. not moving. parked. AIS hotspot, AC on, laptop on the passenger seat. turns out a parked Yaris in a Big C car park has better call quality than most co-working spaces I paid for in London.

Got my Yaris serviced last week. Oil change, filters, full check. 800 baht. About €21. The mechanic is 800m from my place. Has been there for 20 years. Knows the car better than I do.

BD Invest Tracker has /llms.txt, /llms-full.txt, an OpenAPI 3.0 spec, and structured JSON-LD schemas. AI crawlers can read the full dataset in structured markdown without touching the UI. That's the 2026 approach to making a tool discoverable.

On Nut is underrated as a Bangkok base for remote workers. BTS access, Big C, Tesco, markets, Starbucks, mechanics, everything within 2km. Not a tourist destination. Just works. Expats who 'live in Bangkok' but mean Sukhumvit 11 are living differently.

The hidden cost of running a solo agency: context switching. Each active client is a separate codebase, a separate relationship, a separate set of constraints. I cap at 2 retained clients. Not capacity. Context.

Bangkok has 7-Elevens every 200 metres. Hot food, cold drinks, decent coffee, ATM, printing, bill pay. I've bought lunch from one during a call and the client had no idea. That's the infrastructure.

Tailscale is the most underappreciated tool in my stack. My RPi NAS in Bangkok is accessible from anywhere in the world. My homelab LM Studio endpoint is callable from my Mac. Zero port forwarding, zero VPN config, zero maintenance. Just works.

Gateway Ekkamai: Japanese mall in Bangkok with the best food court energy for working. Quiet tables, fast WiFi, Japanese convenience stores everywhere. Feels less chaotic than the big Thai malls. Good spot if you're near Ekkamai BTS.

AI tools I actually pay for in 2026: Claude Pro — daily driver, everything Cursor Pro — in-editor coding Groq API — fast inference for EasyThai OpenRouter — model routing for vidlizer Everything else I've tried is free tier or cancelled.

BD Invest Tracker scrapes 276 DSE stocks daily via GitHub Actions. The DSE site doesn't have a data API — it renders tickers in anchor tags inside Dygraph JS charts. So I parse the HTML directly. Regex on class='abhead' blocks. Zero cost, daily fresh data.

My office on busy days: Big C food court. 50 baht pad krapao. Free AC. Nobody cares how long you stay. Closed client calls from here. Works exactly like a WeWork, costs 98% less.

I'd never written a line of Swift before this month. 12 years of web and React Native. Then I needed a native Mac menu bar app and had two choices: learn Swift or don't build it. I learned Swift. DistillPrompt is what came out.

I use Claude every single day. Not as a chatbot. As the thing that actually runs my business. Content scheduling, Notion updates, code review, client strategy, automation logic. All Claude. If you haven't tried it properly, the link's in the comments.

RPi 4 + 1TB WD Blue + Immich: self-hosted photo backup, accessible anywhere via Tailscale. 116 MB/s transfer, zero monthly cost, photos never leave your own hardware.

Most AI tools send your text to a server to process it. DistillPrompt runs on Apple's on-device models by default. Your prompts never leave your Mac. Free menu bar app.