Blog
Problems, and how I solved them.
Real problems from the job, and how I fixed them.
All posts
43 Articles I wrote for the AHA JournalLighting, wiring, smart locks and Mumbai homes, read on ahasmarthomes.com. →Non-brand clicks are the SEO number that matters
Total clicks told us nothing, because most of them were people already searching for AHA by name. Splitting brand from non-brand turned SEO into a number we could steer by.
+183% non-brand clicks
A path-traced showroom in a TV browser
22 renders, path-traced offline in about 2 hours
Five bugs a data audit caught before anyone made a decision on them
2.00× → 1.00× Meta lead count
What buyers really ask on sales calls
5 to 6 buyer questions per call
A blog hub that builds its own topic pages
11 → 48 posts in the Journal
Mapping a whole market when the API stops at 60 results
1,176 firms mapped in Mumbai
A sales pitch that plays itself
15 → 5½ min walkthrough, with a presenter clicking
The shared token that switched off the website’s leads
~30 min website leads stopped, once
A thank-you page that lied
7 / 7 forms verify the save
Asking AI assistants about AHA without saying AHA
31 buyer questions, AHA’s name removed
Planning billboards around where the leads are
93 sites geocoded from a spreadsheet
Product films recorded from the app, with no ffmpeg
87 s lock film, no feature left out
A 15-minute warehouse that runs on one PC
15 min refresh, while the PC is on
The first-week SEO audit that read the site like a crawler
21 → 0 pages sharing a duplicate title
An ads agent that grades its own advice
≤ 8 recommendations per weekly run
The BACK button that kept walking out of the app
1 per press history steps banked
One meaning per number, so the screens stop arguing
54 metric formulas, one definition each
Turning showroom pages into local landing pages
362 → 999 words, Lower Parel page
Giving a TV remote a mouse pointer
3× drag threshold for the air mouse
A nightly sync that survives its own failures
16 of 25 steps that can fail without stopping the run
The slow part was the server, not the page
96% of the LCP wait came before first paint
From sleep loop to portable screensaver
22 slides a pass on the TV, about 4½ minutes
A phone page that tells consultants who to call next
7 days with nothing logged puts a deal on the list
Measuring whether AI assistants recommend you
5 → 7 of 24 panel answers name AHA
A phone as the TV remote, with voice search
4 speech guesses scored per search
Where did this lead come from?
7 / 7 forms record the lead’s page
Building for a 2 GB TV and a remote with no pointer
−35% browser memory
Don’t let the LLM do the maths
~255 lines of Python maths moved to SQL
The sitemap that quietly hid the whole blog
38 → 108 URLs in the sitemap
What a fortnight of Google Business Profile posts taught us
+93% → 0% first four posts: ten days, then five
The hero image that waited in line
−80% LCP on /solutions
Product pages led by specifications
2,037 px of bullets, and no spec table
Rules first, LLM second
0.9 confidence for the rules to answer
Writing about Apple without breaking Apple’s rules
6 of 6 Apple pages indexed within days
Lead capture without handing the browser your CRM keys
0 secrets in the page
From 3.3 MB to 180 KB, the image diet behind a fast landing page
−94% image weight