Writing

Blog

Notes on building products, learning in public, and the tools I use along the way.

GoLearningSoftware Development

The Unbuffered Channels In Go Lesson I Think Has Finally Clicked for Me 🤷🏽‍♂️

Why does ch <- 42 freeze an entire Go program? I ran into this while experimenting with channels and finally understood why unbuffered channels are more about synchronization than communication.

00
AISoftware Development

The Market Isn't Just Competitive Anymore

Writing code is only half the job today. Developers are increasingly expected to build an online presence, network, create content, and market themselves, all while keeping up with an ever-evolving tech landscape.

43
AIDesign SpecificationsSoftware Development

AI Is Exposing Technical Debt We Learned to Ignore

AI doesn't struggle with complexity as much as it struggles with ambiguity. The same unclear requirements, undocumented assumptions, and inconsistent abstractions that slow down new engineers can derail AI systems too. In many ways, AI is exposing technical debt we've learned to ignore.

10
AISoftware DevelopmentDesign Specifications

Why Most AI Features Fail After the Demo

AI demos are easy. Building AI features that users trust, return to, and genuinely find useful is much harder. This article explores why many AI products fail after launch and what separates a clever demo from a valuable product.

50
NextJs Cached ComponentsNextJs SSRAI SDKFull Stack ApplicationAIVercel

I Turned My Portfolio Into a Full Stack AI Application

I outgrew the static portfolio model. So I rebuilt mine as Portfolio V2: one Next.js app with an AI assistant that knows my real data, a dashboard I actually use, and a blog I publish from; all backed by MongoDB and layered domain architecture. Most portfolios show what you’ve built. I wanted mine to behave like what I build at work.

20
SecurityVulnerabilitiesVercel

The Most Dangerous Code in Your App Might Be a Fresh Dependency

The ecosystem is entering an era where CI pipelines, package registries, publishing permissions, and dependency trust all need to be treated as part of application security.

00
AIDesign SpecificationsSoftware Development

If AI Writes the Code, Your Specs Become the Product

As AI tools become part of everyday development workflows, the bottleneck is shifting. Code is no longer the hardest artifact to produce, rather clear, unambiguous intent is. When working with AI, vague requirements really don’t just slow things down, they tend to multiply errors at scale.

51