June 13, 2026
by wanleung
In short: A coding rule from a 1990s university computer science class — where the hard constraint was the size of a CRT screen — turned out to be one of the most practical pieces of advice I’ve ever...
Read more →
May 30, 2026
by wanleung
Code: github.com/wanleung/ai-dev-teamIn short: The pipeline’s own AI agents opened a pull request with 7 critical bugs — code that couldn’t run at all. This post dissects exactly why it happened and...
Read more →
May 25, 2026
by wanleung
As the system grew, every new pipeline type — bug fixes, documentation, features — needed its own Python script and GitHub Actions workflow. This post covers how all of them were unified into a single watcher process where a GitHub label determines which pipeline runs. Adding a new pipeline now means writing one YAML file.
Read more →
May 24, 2026
by wanleung
Standard mode and TDD mode cover most use cases, but sometimes you want a custom sequence — run two review loops in a row, skip deployment tests, or run a domain-specific agent you added yourself. This post covers pipeline.yaml: a separate config file that lets you define any stage sequence with explicit loop blocks, and a drag-and-drop GUI that builds it without hand-editing YAML.
Read more →
May 23, 2026
by wanleung
The standard pipeline writes code first, then tests. This post covers a TDD mode that flips the order: QA writes tests before the engineers see the problem, then engineers implement against those tests, then a fix loop runs until the suite is green. It also covers how this forced a proper stage registry — replacing hardcoded stage sequences with a configurable system.
Read more →
May 16, 2026
by wanleung
The original pipeline was hardwired to GitHub Models. This post covers how I extracted every LLM backend into its own class with a shared interface, added a relay that automatically falls back to the next backend on connection failure, and what I learned about building resilient AI infrastructure around unreliable upstream APIs.
Read more →
May 04, 2026
by wanleung
Seven posts of technical depth, but what does it all mean? This closing post steps back to reflect on the lessons learned, how this project vindicates what Builder.ai was attempting, where the remaining hard problems are, and what I’m building next.
Read more →
May 02, 2026
by wanleung
The first draft is never the best draft — not for requirements, not for system designs. This post covers how the pipeline runs structured review-and-revise loops before any code is written: the PM rewrites the requirements based on critique, the Architect rewrites the design based on critique, up to three times each. Better inputs at the top produce dramatically better code at the bottom.
Read more →
May 01, 2026
by wanleung
Agents that can only read what you put in their prompt are flying blind. This post covers how agents get access to external tools — searching the web, querying GitHub, reading the codebase — and how the system automatically switches strategy based on repo size: smaller projects get the full code in the prompt, larger ones use semantic search to find what’s relevant.
Read more →
April 30, 2026
by wanleung
A one-way pipeline that can’t respond to feedback is just a code generator. This post covers two features that make the system a real collaborator: a feedback loop where review comments on a pull request trigger automatic code revisions, and a Q&A mechanism where the AI pauses mid-run to ask clarifying questions before building the wrong thing.
Read more →
April 29, 2026
by wanleung
Without memory, every pipeline run starts from scratch — the agents forget what frameworks you chose last week, what they built last month, what the reviewer rejected last time. This post covers a three-tier memory system: per-run context, a searchable history of past projects, and a living knowledge base kept inside each target repo.
Read more →
April 28, 2026
by wanleung
A pipeline that crashes halfway through loses all the AI work done so far. This post explains how the system saves progress after every stage so a failed run can resume exactly where it left off — never repeating work. It also covers how to route different projects to different GitHub repos from a single pipeline.
Read more →
April 27, 2026
by wanleung
The pipeline has six core roles — Product Manager, Architect, Engineers (running in parallel), Code Reviewer, and QA Engineer. Each role hands a structured output to the next. The quality of those handoffs matters more than any individual agent. A vague requirement produces a vague design, which produces broken code. Getting the handoffs right is the whole game.
Read more →
April 26, 2026
by wanleung
Instead of building a new database or custom framework to run the AI team, I used GitHub itself — issues, branches, pull requests, and Actions — as the backbone. Agent behaviour lives in plain markdown files, not code, so anyone can read and change it. This design means adding a new agent takes minutes, not days.
Read more →
April 24, 2026
by wanleung
Introduction post in the AI Software House series.I spent three and a half years at Builder.ai believing in an idea: that software development could be industrialised. That you could describe an app...
Read more →
March 15, 2026
by wanleung
An Arduino project that enables ESP32-C3 to act as a display driver for lcd4linux daemon using an I2C OLED 128x32 display (SSD1306).
Read more →
February 16, 2025
by wanleung
A new article was posted on Media https://wanleung.medium.com/learning-from-it-project-failures-key-lessons-and-strategies-for-success-c6c2cd4461a8
Read more →
November 08, 2014
by wanleung
全部都係我們錯. 個客改REQUIREMENT加新REQUIREMENT而無加時間, 我們趕到痴Q線, OT O 到仆晒街, 攰到抽筋, 係我們錯. 班友唔Q識寫API, 都算, 份DOC同個API又唔同, 我們跟足DOC做野唔WORK, 原來又係我們錯. 之前又話乜Q SUPPORT都有, 又話幫手這樣那樣, 有TEST ACC同CODE, 到頭來班友乜Q都唔知又唔識搞, 能力不足,...
Read more →
July 30, 2014
by wanleung
本人自製了一些片上YOUTUBE,作為初學者學習使用Raspberry Pi的教學。 如有任何問題,以及想知的事,請到HKCOTA的Facebook專頁留言。 https://www.facebook.com/hkcota
Read more →
March 26, 2012
by wanleung
本人在花了一個月的空餘時間, 幫筆順五碼寫了一隻開源的Android版本. 這是本人第一隻正式發表的Android App, 和之前iOS的一樣, 我第一隻APP亦是和輸入法有關的. 寫Android App的困難, 在於其API和iOS的設計方式不同, 寫的時候要重新適應, 不過寫落覺得有些似Java Swing, 所以很快就適應過來. 自己感覺, 人們常說Android設計UI很麻煩,...
Read more →
January 18, 2012
by wanleung
最近miniweb事件,來龍去脈,請移玉步到http://www.daisymarisfung.com/2012/01/16/miniweb-copyright-infringement/,不再另述,本文的目的,是談談本人的一些見解,若有任何錯漏,不吝賜教。 聲明: 商業侵權在香港是刑事罪。 在英式法律系統下,是假定無罪,即法庭一日未判,都是無罪的。...
Read more →
May 22, 2011
by wanleung
5月19日晚是Hacking Thursday Hong Kong(H4HK-駭能工程)的首次聚會, 出乎意料的大成功. 原本活動只預8人, 最後有15人出席. 當晚由YAHOO麻雀, 到看過什麼小說, 天南地北無所不談. 當中有些小插曲, 當晚亦有另一網上組織Travel Life在同一CAFE聚會, 不少當日Travel Life聚會的參加者都認錯了我們H4HK而誤入了我們的活動....
Read more →
October 02, 2010
by wanleung
今年是第一次去barcamp,前2年無去是因為barcamp在早上開始, 對於在放假會睡到差不多下午的我來說,是太早了,所以早2年都無出席。 而今年出席的原因,是因為今年的軟件自由日和barcamp是同一天,為了方便租場, 於是軟體自由日就找barcamp一同合辦,由barcamp在下午開一些時段來辦軟體自由日的活動。 當日軟體自由日的安排可到此參詳。...
Read more →
October 01, 2010
by wanleung
因SERVER有問題及無時間,無寫幾個月BLOG了。一寫,就要賣一賣廣告。 小弟第一隻IPHONE APP:Cangjie Traditional Chinese Input上了APP STORE了,是一隻實際上寫給自己用的,可在IPAD上用倉頡打傳統中文的APP。不過既然寫了出來,安裝入IPAD上亦要買US$99的DEV ACCOUNT,那麼不如順手放上APP STORE做福人群。...
Read more →
March 23, 2008
by wanleung
3月19日出席了由Agile Hong Kong 辦的WORKSHOP,去體驗PAIR PROGRAMMING。 之後和舊同事以及主辦單位一行13人一同食晚飯。最後回到家中已是零晨1時30分。 覺得這類WORKSHOP不錯,除了可學到不同的知識外,還可識到不少行內人。 而且這類SOLVE PROBLEM的問題,很久沒有做過,做完感覺腦筋好像清晰了不少,很久都沒試過有這樣的感覺。...
Read more →
March 22, 2008
by wanleung
終於把家中的WORK STATION和LAPTOP上的DEBAIN, UPGRADE到TESTING VERSION。 GNOME的速度比以前快了些,而字體就比以前減了2個SIZE,應該FIX了上一個版本字體雖SET為同一SIZE,但在GNOME中字體比KDE大的問題。 另外TESTING VERSION中,多了開機動畫。 其他功能還在測試中。
Read more →
February 17, 2007
by wanleung
There is an interesting hack in an account of our client on our webhosting service. It is an online library system of our client which is written in PHP. One day, the system admin reported that the...
Read more →
June 12, 2006
by wanleung
To use deb rather than source. http://www.debian-administration.org/articles/78
Read more →
December 23, 2005
by wanleung
grant update, insert, delete, select on *.* to user@host identified by 'passwd'; flush privileges;
Read more →
December 01, 2005
by wanleung
perl -MMIME::Base64 -le '$/=undef;print decode_base64( <> )' foo
Read more →
January 31, 2005
by wanleung
I am trying my best to finish my final year project these days. My final year project is about cryptography. I need to program at least 3 small programs to show that how the DES, RSA, and MD5 work. I...
Read more →