On April 30, 2026. I posted an update after 3 years explaining what I was doing and what new thing I have been working on. And In that I mentioned how AI has made frontend development robotic. Same design, same colors, same animation. It's as if software has lost all the personality and character that it had. I originally fell in love with web development because it gave developers a power create
If you've ever searched your own product and seen a competitor recommended by an AI assistant instead, you already understand why AEO matters. Answer Engine Optimization (AEO) is the practice of making your site legible, trustworthy, and citable to AI systems like ChatGPT, Claude, Gemini, Perplexity, and Deepseek. It's not magic. It's mostly technical and structural decisions you can either get ri
The Problem: We Were Flying Blind At Refer, we're on a mission to enable talented individuals to fulfill their professional potential by helping them pursue their ideal job. Behind the scenes, that means a lot of microservices, and recently we decided to consolidate everything into a mono-repository. If you've ever migrated dozens of microservices into a monorepo, you know the drill: contracts b
The Problem If you are building AI applications with LLMs, you know the pain: raw HTML is useless for training data. You need clean, structured Markdown. Most solutions like Firecrawl or Crawl4AI require setup, dependencies, and often paid plans. You could write your own parser: import re import urllib.request def html_to_markdown(url): html = urllib.request.urlopen(url).read().decode()
I audited 14 Shopify themes last quarter for speed. 11 of them blamed apps. None had touched Liquid loop count, capture-in-loop allocations, or image output. After optimizing 100+ Shopify stores over 12 years: the code-level patterns in your theme files account for 40-60% of total render time. Apps matter. Images matter. The template layer is where the compounding problems live. Here are the 5 Liq
Hi, we are back again. Previously, I created a simple Google Cloud VPC and then improved the configuration by introducing variables. This time, I want to continue with another Terraform concept: outputs. But, we will not be using the previous code, because adding outputs for one vpc is too simple. So, I made the lab slightly more practical. In this lab, I will create: a custom VPC network a subnet
In Part 1 of this series, I enumerated a few obstacles for engineers taking vibe coding from side projects to production. Part 2 looked at AI usage from the manager's perspective: measuring adoption, understanding the gap, coaching to fill the gap. Both of those were "Day 1" problems: getting started, getting people on board, figuring out the tools. This article focuses on what comes next: the vib
This technical post walks through the design and implementation of Secure Playground: a local web app that simulates prompt-injection attacks against large language models and demonstrates simple defenses. Provide a minimal, reproducible environment to test payloads and defensive strategies. Make it easy to add new providers and run mutation-based red-team experiments. Offer a leaderboard and scor