My Blog

A new digital divide: The AI you use can decide what jobs you get
Thu Oct 22 2026
AI screeners are 23–60% more likely to shortlist CVs written by their own model — and the model you use is quietly becoming a marker of where you land in socie…

Laya vs Jev: Can Open-Source Decision Models kill managed service Jev?
Mon Oct 05 2026
Laya vs Jev: Can Open-Source Decision Models kill Jev? Most AI applications today follow a familiar pattern: Input → LLM → generated text → parse the respon…
From GitHub Issue to Pull Request: Building a Self-Hosted Autonomous Coding Agent — Blitzlog
Mon Sep 21 2026
AI coding agents have changed how quickly we can write software. But there is still a surprisingly simple bottleneck: You usually have to be sitting at yo…

Agentic Browsing Is the New SEO: Why UI/UX Needs an AIx Layer
Tue Sep 15 2026
I was working on my personal blog and ran it through Google Lighthouse and I noticed something new: Agentic Browsing. That caught my attention. Why w…
How to safely control a local AI coding agent from your phone using Python, Telegram, and a…
Mon Jul 20 2026
How to safely control a local AI coding agent from your phone using Python, Telegram, and a least-privilege security model Controlling AI Agent from your mo…

China Digital Strategy: Two Rules Every Foreign Enterprise Must Follow to Succeed
Mon Mar 30 2026
Entering China is not a market expansion exercise — it is a strategic transformation. Many global enterprises fail not because of product-market fit, but becau…

My AI Agent Tried to Read My AWS Credentials — Here’s Why That Should Worry You
Thu Feb 19 2026
I was using an AI coding agent when it suggested running this command: cat ~/.aws/credentials 2>/dev/null || echo "No credentials file" Then it …

How a Meme Helped Me Tackle the “Hardest Problem” in Computer Science: Cache Invalidation
Fri Dec 19 2025
There’s a famous quote in computer science: “There are only two hard things in Computer Science: naming things and cache invalidation.” It’s funny because it…

How to integrate Medium articles into Next.js portfolio for better SEO discovery
Tue Dec 02 2025
Short version: I pulled my Medium RSS feed into my Next.js App Router, rendered posts server-side as real HTML pages (with proper metadata, canonical links a…

React vs Next.js: How Switching My Portfolio Improved SEO, Performance, and Core Web Vitals
Tue Dec 02 2025
React vs Next.js: How Switching My Portfolio Improved SEO, Performance, and Core Web Vitals by Over 40% And how a simple plan to add a blog turned into a ful…

AWS, Azure, or Alibaba Cloud: How to Open a Cloud Account in China
Fri Nov 07 2025
The Trend I Couldn’t Ignore A few weeks ago, while checking Google Trends for regional cloud interest, I noticed a sudden spike in searches for “cloud accoun…

Make Your App China-Ready: How to Deploy Web Services Inside the Great Chinese Firewall
Tue Oct 28 2025
Make Your App China-Ready: How to Deploy Web Services Inside the Great Chinese Firewall * { font-family: Georgia, Cambria, "Times New Roman…

Smarter Tolls, Smoother Commutes: An AI Idea for Hong Kong’s Traffic
Wed Oct 01 2025
Smarter Tolls, Smoother Commutes: An AI Idea for Hong Kong’s Traffic * { font-family: Georgia, Cambria, "Times New Roman", Times, serif; …

Integrating EJBCA (Community) with Scala & Play Framework using CMP
Tue Oct 28 2025
Integrating EJBCA (Community) with Scala & Play Framework using CMP * { font-family: Georgia, Cambria, "Times New Roman", Times, serif;…