Things I post
Short thoughts, experiments, and progress notes from my LinkedIn feed.
Shivam Karna
@shivamkarna
Most ORMs give you one way to query. Drizzle gives you two.
The ๐ฆ๐ฒ๐น๐ฒ๐ฐ๐ ๐๐ฃ๐ is explicit. You describe exactly what SQL you want. It offers full control, but you end up writing manual joins every time related data is needed.
The ๐ค๐๐ฒ๐ฟ๐ ๐๐ฃ๐ is declarative. You define relations once and then just say what you want back. Drizzle figures out the SQL for you.

Shivam Karna
@shivamkarna
๐ญ๐ฎ ๐๐ฎ๐ฏ๐น๐ฒ๐ ๐ฏ๐ฒ๐ณ๐ผ๐ฟ๐ฒ ๐ฎ ๐๐ถ๐ป๐ด๐น๐ฒ ๐ฟ๐ผ๐๐๐ฒ ๐ต๐ฎ๐ป๐ฑ๐น๐ฒ๐ฟ. Here's why.
Starting a new project - Blogify, a blog platform built on Hono + Cloudflare Workers.
Before writing any code, I designed the full database schema. Every table has a reason.

Shivam Karna
@shivamkarna
๐ฃ๐ฎ๐ฟ๐ ๐ฎ of migrating my Express + Render API to Hono + Cloudflare Workers.
Part 1 was about implementing AES-256-GCM encryption using the Web Crypto API.
This one is about routers/routing in Honojs.

Shivam Karna
@shivamkarna
Recently started shifting all my Express + Render APIs to Hono + Cloudflare

Shivam Karna
@shivamkarna
Do you really think queues are just FIFO all the time?
If so, youโre missing half the story.

Shivam Karna
@shivamkarna
โจ๏ธ ๐๐ผ ๐๐ผ๐ ๐ฎ๐ฐ๐๐๐ฎ๐น๐น๐ ๐ธ๐ป๐ผ๐ ๐๐ต๐ฎ๐ ๐ต๐ฎ๐ฝ๐ฝ๐ฒ๐ป๐ ๐๐ต๐ฒ๐ป ๐๐ผ๐ ๐ต๐ถ๐ "๐ฅ๐๐ป" ๐ผ๐ป ๐๐ผ๐๐ฟ ๐ฐ๐ผ๐ฑ๐ฒ?
Most of us write fmt.Println("Hello World") or printf("Hello World") ,and assume magic happens. But under the hood, thereโs a fascinating "Game of Thrones" happening between your compiler, the OS, and the Kernel.

Shivam Karna
@shivamkarna
๐ ๐ป๐ผ๐๐ฒ ๐ผ๐ป ๐๐ผ๐บ๐ฝ๐น๐ฒ๐๐ถ๐ผ๐ป,๐
After weeks of focused development, Iโve built a great backend system for a notice board application โ designed to handle real-world complexity, not just CRUD.

Shivam Karna
@shivamkarna
๐
#ChristmasGift ๐
Today isn't just a holiday; itโs the official launch of ๐๐ต๐ถ๐๐ฎ๐บ๐๐ฎ๐๐๐ต on NPM!
I wanted to give a gift to my fellow developers that actually saves them time.
#๐ช๐ต๐ฎ๐ ๐ถ๐ ๐๐ต๐ถ๐๐ฎ๐บ๐๐ฎ๐๐๐ต?
Itโs not just a package; itโs a ๐๐๐ (๐๐ผ๐บ๐บ๐ฎ๐ป๐ฑ ๐๐ถ๐ป๐ฒ ๐๐ป๐๐ฒ๐ฟ๐ณ๐ฎ๐ฐ๐ฒ). Think of it as a professional architect that walks into your folder and builds a ๐ฝ๐ฟ๐ผ๐ฑ๐๐ฐ๐๐ถ๐ผ๐ป-๐ฟ๐ฒ๐ฎ๐ฑ๐ ๐ฎ๐๐๐ต๐ฒ๐ป๐๐ถ๐ฐ๐ฎ๐๐ถ๐ผ๐ป system in seconds.

Shivam Karna
@shivamkarna
As a #BackendDev, I got tired of creating the same controllers, models, and routes every time I started a new project.
So, I built a tool to do it for me. Because that's what engineers do ;)

Shivam Karna
@shivamkarna
When I started backend development, I assumed
microservices = advanced = always better.
While working on a microservices-based project, I realized something important:

Shivam Karna
@shivamkarna
Understanding JWTs in Authentication

Shivam Karna
@shivamkarna
๐
Over the past few weeks, I built Merchant Hub API, a production-ready backend for merchant and order management. This project pushed me to think beyond writing code โ about architecture, scalability, security, and maintainability.
