Blog
Posts about design, software architecture, AWS and AI tools, plus short field notes.
-
A Timezone Bug That Moved Dates Back a Day on Every Save
Stakeholders reported that saving a quote moved its date back by a day. The cause was a timezone mix-up I could never have seen from the Philippines, and the fix was one rule about how to store a date.
-
I Built a Website That Redesigns Itself Every Day
My site switches to a different design movement every day, twenty-eight of them. The hardest part was making each one look like itself and not like its neighbours.
-
I Was Paying an AI to Reread My Stack Traces, So I Built oowl
Thirty prompts into a feature, I noticed my AI coding agent was rereading my old stack traces and abandoned plans on every request. I built oowl, a workflow layer for OpenCode, so each role gets only the files and notes its job needs.
-
Adding a chart() Method to Tala
I added a chart() method to tala, my TypeScript technical analysis library, so you can see its indicators against the price. It also gained a server mode that re-runs the indicators when you edit the data in the browser.
-
Stop Using Your Most Expensive AI Model to Stamp the Paperwork
I stopped sending every small coding task to a premium AI model and built oowl, an open-source workflow layer on OpenCode that gives each job the model it needs.
-
I Built an AI App That Gives You Superpowers, Then Makes Them Useless
My entry for the DEV April Fools Challenge is an AI genie that grants the superpower you ask for, then adds one condition that makes it useless.
-
How a .codex Folder Made Our AI Output Consistent
My team's AI agents wrote the same feature in a different style for every teammate. This is the .codex folder I put in a NestJS boilerplate to make Codex follow one set of rules and remember our decisions.
-
How to Let Users Upload and Download S3 Files Without Direct Access, Using Pre-Signed URLs
Field note. A note on using pre-signed URLs so users can download from and upload to a private S3 bucket without ever seeing your AWS keys.
-
How to generate a secure SSH key pair
Field note. A quick note on creating a 4096-bit RSA SSH key pair with ssh-keygen, without overwriting the key you already have.
-
How to set up your global (and local) Git profile
Field note. A quick note on setting the name, email and editor Git uses for your commits, globally or for one project.
-
How to connect to the same host with different SSH keys
Field note. A quick note on using the SSH config file to give each host a short name and its own key, such as separate personal and work GitHub accounts.
-
macOS: Moving Your Notifications to a Different Display
Field note. How I got macOS notifications to show on my main display instead of my MacBook screen, by moving the menu bar in Display Arrangement.