A Green Deploy That Ships the Old PHP
A critical PHP release, an unpinned install that should have picked it up, and the one line in a deploy log that showed my builds would quietly keep serving the vulnerable version.
A critical PHP release, an unpinned install that should have picked it up, and the one line in a deploy log that showed my builds would quietly keep serving the vulnerable version.
Laravel saves the whole session at the end of every web request, even when nothing changed. Here is what that means when two requests overlap, and how to let a request read the session without writing it back.
Five months, four applications and three identical rejections getting a web app onto Google Play, and why telling Google about my testers' feedback was not the same as Google seeing it.
A job-search engine over 13,000 multilingual listings — structured SQL filters, FTS5 with a trigram index, title-boosted BM25, and an eight-signal scorer in PHP — built after deliberately turning down Meilisearch.
Restaurant staff search for clients and reservations with typos, missing diacritics, and half-remembered phone numbers — and the whole thing runs on PostgreSQL trigrams plus a scoring layer in TypeScript, with no search infrastructure at all.
You inject a secret into a container at startup, the app runs perfectly, and then docker exec fails with an authentication error. Here is why it happens, and the one line that fixes it.
A multilingual savings app I built to make myself save. The interesting part isn't the balance creeping up. It's what happens when the plan has to change — a missed deposit, a bigger ambition, a moved date. The schedule rewrites itself, and it never throws the old one away.
A table-reservation system for an Istanbul restaurant where the real engineering wasn't the booking form but a live floor plan that read the night's reservations off the database every half hour and regrouped, recoloured, and reset every table on its own — with every staff screen kept in agreement in real time.
A European job search built on a snapshot of a public board, where a pipeline of heuristics and local open-source language models reads each posting in two dozen languages and turns it into structured signals — role, experience, visa sponsorship, tech stack — before a custom search engine ever ranks it.