After years of building things and keeping all my notes in private Notion pages, I finally decided to write publicly. Here's why.
The excuse I kept making
Every time I thought about starting a blog, I told myself I had nothing interesting to say. Plenty of smarter people have written about React, Go, distributed systems — why add more noise?
Then I realized: I'm not writing for the experts. I'm writing for the version of me from 2 years ago.
What I'll write about
Mostly things I've learned on the job:
- Debugging subtle production issues (the kind that take 3 days to track down)
- Architecture decisions and their tradeoffs
- Practical patterns for building fullstack apps
- Tooling and workflow improvements that actually matter
A quick demo of MDX
One cool thing about this blog is that I can embed React components directly in Markdown. For example, here's a custom callout:
You can use React components directly inside MDX. This Callout is a custom component defined in the codebase — edit it in components/mdx-components.tsx.
And here's a warning variant:
Be careful with direct DOM manipulation in React. It usually means you need a useRef instead.
And here's a code block with syntax highlighting:
function greet(name: string): string {
return `Hello, ${name}!`
}
console.log(greet("world")) // Hello, world!
Tables work too via GitHub Flavored Markdown:
| Stack | Choice | Reason |
|---|---|---|
| Frontend | Next.js | RSC + App Router |
| Backend | Go | Fast, simple, low memory |
| Database | PostgreSQL | Reliable, battle-tested |
| Cache | Redis | Sub-ms reads |
See you around
I'll aim to publish something every 2–3 weeks. No newsletter, no tracking, no ads — just writing.