The Journal
Thoughts on code, creativity, and the process of building things.

What six months of project notes actually look like
I counted my own Obsidian vault — 304 notes, 526,079 words, eight projects — and four of the numbers changed how I keep it.

PhotoAuctions Logo Design
How the PhotoAuctions aperture mark is built from three numbers (outer ring 0.46, inner ring 0.18, a 33° blade twist) and why 33° reads better than 30°.

Rulomi turns a sentence into an Android routine
Rulomi is an Android automation app. You describe a routine in plain English, it hands back a typed plan you can read, and nothing runs until you enable it. A first look at what it does today.

TidyWallet, an honest personal finance ledger
TidyWallet is a personal finance app for Android — cash, cards, metals and crypto in one net-worth ledger, budgets that only count what you actually spent, and no account with me, no server of mine. A first look at what it does today.

The Half-Speed Laptop
My Zenbook has been running its Wi-Fi at half speed while the faster driver sat installed on the drive, unused. Field notes on the gap between "installed" and "running".

ASUS Zenbook A16, a 16-inch MacBook alternative
A buying guide to the Snapdragon X2 Elite Extreme Zenbook A16 — 16-inch OLED, 48GB, 1.2 kg — and the software to check before switching from a Mac or x86 PC.

Keep track of your project's progress
A nightly routine that reads your Obsidian notes back against what is actually true, and corrects whatever has drifted.

How to pick a Claude model and effort level
Claude has a model setting and an effort setting. They do different things, and picking the wrong one is why answers feel thin.

Taking Luma native: the bugs that never threw an error
Notes from taking Luma native on Expo SDK 57 — a class of bug that never surfaces as an error. Every install sharing one encryption key, a fresh phone booting to empty screens, and a whole subsystem quietly running on stubs.

TidyWallet: four rules for an honest money app
TidyWallet is a personal finance app built on four rules — budgets read no price, a quote never appears without its age, an unvalued figure is named rather than zeroed, and a breach is the first thing on screen.

Zen Browser — A Calmer Way to Browse
A plain-English look at Zen Browser, the open-source, Firefox-based browser built around focus instead of distraction — and how it compares to Firefox, Chrome, and Edge.

PhotoAuctions — Where Great Photography Finds Its Collector
A first look at PhotoAuctions, a live auction platform that connects independent photographers with the collectors who actually want their work. Currently in development.

Introducing Luma, a companion app for film photographers
Introducing Luma — a photography companion for Fujifilm and Sony camera enthusiasts. Film recipes, working tools, an AI hub, and a community feed, free to start.

Building a prediction market trading bot
A Python-powered algorithmic trading bot for prediction market venues like Polymarket and Kalshi, built with a FastAPI dashboard, real-time WebSocket updates, and a clean layered architecture that separates market data, strategy, risk, and execution. It supports both paper and live trading modes, logs every decision to a trade journal, and includes an AI advisor component — all deployable to a VPS with a single shell script.

Switching to Zorin OS 18 on my Zenbook
I recently replaced Pop!_OS with Zorin OS 18 on my "ASUS Zenbook 14 OLED (Intel Core Ultra 5)" — a modern ultrabook with bleeding-edge hardware. I went in expecting a more polished, user-friendly Linux experience. What I got was exactly that… with a few trade-offs worth talking about.

Which IDE to choose ?
VS Code and Google Antigravity IDE share an editor layout but give agents very different autonomy. This compares them and says when to pick each.

How to use agent extensions and manage your usage
How to integrate Claude, ChatGPT (Codex), and Gemini extensions in Google Antigravity IDE to create a multi-agent workflow that is both powerful and cost-effective.

Agent Extensions in Google Antigravity
How to split work between ChatGPT and Gemini inside Google Antigravity, plan before executing, and keep prompts modular so your usage limits go further.