Writing.
Field notes from a software engineer.
Featured Posts
- case study
Ten months on PostChart
PostChart is a custom Facebook page management SaaS I built solo for a client off Upwork — auth, a Redis-backed scheduler, Stripe billing, Meta verification, the whole thing. Ten months end to end: the decisions I'd repeat, the platform API that fought me, and what handing it off taught me.
Latest Posts
- case study
Two perf bugs in Open Notion
Open Notion is a Notion-style editor I built on Tiptap. Stress-testing it, 1000 plain blocks typed fine but 300 custom NodeViews hit 500ms INP. The trail led to a class-field-initialization bug inside Tiptap and a Shiki tokenizer running on every keystroke — here's how I found both and fixed them.
- case study
Why I built my own CMS (and yes, Sanity would have worked)
I built tabsircg.com on a CMS I wrote from scratch: two Next.js 16 apps, Firestore, Cloudflare R2, push-based cache invalidation. A hosted CMS would have been fine. Here's why I picked the long road anyway.
Archive
- case study
Ten months on PostChart
PostChart is a custom Facebook page management SaaS I built solo for a client off Upwork — auth, a Redis-backed scheduler, Stripe billing, Meta verification, the whole thing. Ten months end to end: the decisions I'd repeat, the platform API that fought me, and what handing it off taught me.
- case study
Two perf bugs in Open Notion
Open Notion is a Notion-style editor I built on Tiptap. Stress-testing it, 1000 plain blocks typed fine but 300 custom NodeViews hit 500ms INP. The trail led to a class-field-initialization bug inside Tiptap and a Shiki tokenizer running on every keystroke — here's how I found both and fixed them.
- case study
Why I built my own CMS (and yes, Sanity would have worked)
I built tabsircg.com on a CMS I wrote from scratch: two Next.js 16 apps, Firestore, Cloudflare R2, push-based cache invalidation. A hosted CMS would have been fine. Here's why I picked the long road anyway.