Writing
Practitioner's Log
Every entry across all projects — observations, decisions, AI collaboration logs, and learning resources.
How an architecture audit changed FinReview before public release
Before releasing FinReview publicly, I subjected the codebase to an external architecture review using AI-assisted code analysis a…
Why financial calculations should never touch a language model
One of the earliest decisions in FinReview was also the most important: AI would never be responsible for any financial calculatio…
Why I chose FastAPI and an API-first architecture over a traditional web application
Before writing a line of FinReview's code, I made a decision that shaped every subsequent architectural choice: the backend would …
Choosing appropriate security over maximum security
Security engineering is often discussed as though more is always better. In practice, every security mechanism has a cost, and the…
Building AI features without locking into a single provider
When I added AI briefings to FinReview, I made a decision that had nothing to do with which model produced the best output: I woul…
Why I chose a static frontend over React, Vue, or Angular
Every developer building a new web project in 2024 faced the same default: choose your framework. React, Vue, Next.js, Nuxt, Svelt…
From Syntax to Strategy: A Shift in Perspective
THE PIVOT Last year, I began exploring Python through a traditional, hands-on approach. My focus shifted when I discovered how …
Material Dashboard by Creative Tim — what I took from it and what I didn't
I was on the third design iteration of this portfolio when I shared a reference link: the Material Dashboard free demo by Creative…
What I learned about AI-assisted development by building this site
I built this entire portfolio site — CMS, admin panel, public pages, profile management — using Claude in a chat window over sever…
Year-based timeline instead of employer and role names on resume
The standard resume format puts the employer name first. There's a reason for that — it's a fast credibility signal. Recognisable …
Config file for text, database for structured profile data
When I added a profile management system to the admin panel, I had to decide what goes in the database and what stays in a file. …
Is it worth building a portfolio nobody reads?
Midway through building this site I stopped and asked the question directly: is this worth it? I was spending more time getting ro…
Replaced WordPress with a custom CMS
WordPress was running when I started. The first sign of trouble was a 403 error on the homepage — a routing conflict I kept misdia…
I started this portfolio in a chat window — here's what that actually meant
I've been using AI chat tools for a while — ChatGPT, Gemini, Claude. Mostly for quick questions, sometimes to draft something. Use…