My Projects
Millwright-Inspector is a methodology I designed for working with AI coding agents on real software projects. The name comes from the two roles it sets up. The agent is the millwright: it does all the actual generation work, writing the requirements, the design, the plan, the code, the reviews and the tests. The human is the inspector: their job is to read what the agent produced, push back when it is wrong, and approve when it is ready. The workflow only moves to the next stage when an inspector says it can.
The thing that holds this together is a set of Markdown files I call artifacts. Every step of the workflow ends with the agent writing one of these. The artifact is the deliverable for that step, and it is also the input that the next step reads from. So a requirements artifact feeds the design step, a design artifact feeds the implementation step, and so on. Because everything important lives on disk as plain text, work survives the things that would normally derail a long coding session: a context window filling up, a switch to a different model, or just coming back to a project two weeks later and not remembering where you left off.
The repository is split into three folders that each have a clear job. Journal holds the raw inputs the human dumps in: ideas, bug reports, screenshots, things pasted from Slack. Quest is the working area of the current cycle, where the in-progress back-and-forth between the millwright and the inspector lives. Workflow Stream is the per-feature folder where finished artifacts pile up over time. After a while this folder turns into a fairly good record of why a feature ended up looking the way it does, which is something I find I usually want later on and rarely have.
Splitting work this way also makes the review side easier. As an inspector you can keep more than one workflow going in parallel without losing your place, because the state is in the files instead of in your head. It also means people who do not write code, like a designer or a product manager, can still drive a workflow forward, because reviewing a requirements document or a UI plan does not require reading the implementation. The methodology is not tied to any one tool. I usually run it on Claude Code, but it works the same way with Cursor, Aider or Codex CLI. There is also an open source reference implementation I maintain as a Claude Code plugin called Millwright-Inspector Development Machine.

I have tried kind of a different approach while developing my personal website. Unlike from traditional portfolio sites, which are developed similar to resumé documents, I created a 3d scene (rendered with ThreeJS) which replaces the main router of a web app project.
All routes (server side rendering approach is used with NextJS) which are present on the website are represented in the scene by a building. Instead of clicking a link on a traditional web page, users click those buildings (or building names from menu) to travel to the location of that building and display the server side rendered page.
Users can also walk and look around freely and enjoy the scene with user controls and keyboard shortcuts if they haven’t clicked any building and redirected to any page yet.
Pages are implemented responsive and tested 3d render performances in mobile devices.
Creating the scene:
Buildings
Texture
Building with applied texture


Texture baking
Exporting
Tech Stack
Tools
Resipise is a food curation app which enables you to design your own meals with using ingredients provided by our database.
Resipise ingredient database mainly uses food data retrieved from FDC, so users can track nutrient info of their ingredients while designing their own meals.
Features of resipise:
My cookbook
- Copy meal links by clicking share button.
- Move meal into new sections.
- Rename/Edit/Delete meal.
My meal details
Recipe
Create a meal recipe
Recipe Preview
Preview recipes
- Display ingredients.
- Display recipe steps.
- Display meal nutrient values.
Schedule
Time period table
- Add notes to time periods.
- Add note for the day.
- Create a meal just to add into schedule without adding to your dashboard.
- Add a meal by modifying its ingredients.
- Display total food nutrient intake for that day.
Limits
Shopping list
- Add/Update/Delete new entries to your shopping list by defining "name", "category", "details", "where to buy" attributes.
- You can update the state of your entries by clicking the check button or swiping left/right in mobile mode.
- Filter displayed entries.
User profile settings
- Update your user name and profile photo.
- Friend related operations such as displaying incoming friend requests, friend requests made by you and display the list of your current friends.
- Create daily nutrient limits (For example: Daily energy intake limits in kcal as 1800 kcal etc.).
- Apply your defined nutrient limits in any defined periods in your schedule page.
- Add foods by adding its nutrient values manually or request AI assistance (This feature is added to enable users to add foods which are not present in current resipise db, for example a specific brand of yoghurt etc.).
