Work that reaches developers where they search
Implementation-first tutorials published on the platforms developers and AI tools trust; built from real developer workflows, not feature checklists.
Bylined work
Every piece below is published under my name. Each one was built from a real implementation: I used the tool, found the friction points, and wrote from there.
How to Build a Custom PDF Text Extractor with Node.js and TypeScript
Most tutorials on PDF text extraction point you to a library and show you the happy path. This one starts from a different problem: what do you do when none of the available libraries fit your use case and you have to build your own? Written because the solution didn't exist in a form I found satisfying. Currently ranks #1 on Google for its target keyword.

How to Add API Key Authentication to a Next.js Route Using Zuplo
Built after researching Reddit threads where Next.js developers were asking how to add API key auth to their routes securely. The official docs covered the concept but not the specific implementation pattern developers were looking for. This tutorial fills that gap — showing the exact implementation with trade-offs explained.

How to modernize a Node.js backend without a full rewrite
Many Node.js backends need modernization but a full rewrite isn't feasible. This tutorial shows how to incrementally modernize a backend by building around the existing codebase, using a real implementation example. Written to reach developers who know their backend needs work but aren't sure how to approach it without starting from scratch.

How to Integrate RTK Query with Redux Toolkit
A practical implementation guide for developers working with Redux who need to add data fetching without managing it manually. Written to show the integration in a real workflow context, not just the API surface.

Handling Forms in Next.js Using Server Actions and Zod
Written to document a specific implementation pattern I kept returning to in my own projects. Covers the full flow — form handling, validation with Zod, and server-side processing — with the edge cases that the official docs gloss over.

Optimizing a Headless CMS-Powered Next.js App
A tutorial showing developers concrete optimization strategies for Next.js applications using a headless CMS, with BCMS as the implementation example. Covers performance patterns that apply broadly while positioning BCMS as the tool in use.
API-First CMS: A Beginner's Guide
A top-of-funnel article for developers who encounter the term 'API-first CMS' without a clear understanding of what it means. Educates the reader while building awareness of BCMS as a concrete example of the category.

CIAM vs IAM: What's the Difference?
Written for developers and technical decision-makers evaluating identity and access management solutions. Explains the distinction between customer identity management and traditional IAM clearly enough that a reader can make an informed evaluation decision.
Want to see what this looks like for your product?
Every piece in this portfolio started the same way: a real developer problem, a working implementation, and content published where developers search for answers.
If you want content that reaches developers before they've chosen a competitor, the fit call is where we start.