Shipped software, with real proof.
Every case names what we built, what changed for the business, and the one thing that went wrong. If a project has no honest difficulty to report, it is not written up.
Every case names the hard part

LazyEat
Five products in one food platform, and an AI that helps you choose
The hard part
The hard part was the count, not any one piece. Five surfaces share one domain model, so a change to how an order works is a change in five places, five release cycles and five sets of edge cases — and the whole thing only functions when all five agree. We scoped this as an app with some panels attached, and it is not: it is five products that happen to ship together. Anything similar we now scope as five.

7BusyBoss
300+ browser-based tools, no signup, and nothing you type leaves the page
The hard part
Shipping 300+ tools created a discovery problem we underestimated — the index page became the product, and the first version of it was unusable. Search and categorisation had to be rebuilt after launch.

Hong Sau Resort
Zero bookings on 2,000 monthly visitors — now 30 a month, and a second property
The hard part
Rate parity was the hard part, not the code. Undercutting the OTAs directly would have risked the resort's listings, so the direct channel had to win on inclusions and guarantees rather than on headline price. That was a commercial decision we had to work through with the owner before a line of the booking flow made sense.

Perfume X Market
One system for the online store, the shop counter and the partners' books
The hard part
Courier booking had a race. Two near-simultaneous requests for the same order could both book a shipment, and if saving the booking failed after the courier had already accepted it, the airway-bill number was folded into a generic error — a parcel existing at the carrier with no record of it here. It shipped with that gap; a database rule now allows one live shipment per order, and that failure is reported loudly with the AWB so staff can reconcile it.
BRK Organics
A hair- and skin-care store where every influencer code reports its own commission
The hard part
The build was never the slow part. The things only the owner can do — Razorpay's identity check, buying the domain, and supplying the brand kit — set the schedule, so the agreement starts the clock when the brand kit is complete rather than on signing. Saying so in writing kept a late start from turning into a late delivery.

My Inborn Talent
Replaced manual assessment paperwork with a platform the business runs on daily
The hard part
Report generation was slower than promised in the first build because the templates were doing layout work at request time. Moving generation to a queued job fixed it, but it meant reworking how counsellors were notified — a change we should have anticipated during scoping and did not.

Pearl Dental Clinic
Rebuilt a clinic site around local search so patients book without phoning
The hard part
The site renders its content on the client, which search engines handle unevenly. It works for patients but it holds back the ranking this rebuild was meant to win, and moving it to server-rendered pages is the honest next step — we would scope that differently today.
Talk to the founder, today.
WhatsApp, or leave a number and get a call back — usually the same day. No forms about budget, no sales team.