Sandeep Panda

Writing

Blog

Notes on engineering, testing, and building products.

  1. Agentic coding vs vibe coding: the difference is where the review happens

    tldr: Vibe coding is prompting your way to software you never read. Agentic coding is handing a defined task to an agent that plans, edits, runs your checks, and hands back finished work for review. O

    17 min1
  2. What a software factory actually costs to build

    tldr: A software factory is a pipeline where AI coding agents implement changes and humans review pull requests. The coding agent is the part you do not build. The other seven parts are the project. O

    19 min
  3. We're building a software factory you can buy

    tldr: The best engineering teams now run software factories, pipelines where AI coding agents do the work and humans review pull requests. Ramp and Uber built theirs in-house. FactoryKit is the one yo

    12 min3
  4. 10 principles of agentic web testing

    Software delivery has changed more in the last 10 years than in the previous 15.Deployments are continuous. UIs change daily as work happens in multiple PRs. A/B testing happens every day. There is mo

    7 min1
  5. Dockerizing headless Hashnode starter-kit

    In case you're not aware, headless Hashnode is a purpose-built CMS that allows developers to utilize Hashnode's fantastic editor and CMS while still having complete control over the UI customization. To simplify the process, we also provide a Next.js...

    2 min1
  6. Behind the Scenes: The Story of Headless Hashnode

    In the early 1990s, most websites were static, and one needed to know HTML to update content. By the late 1990s, the web saw the emergence of the first set of tools or CMS that made content management easier. The 2000s marked the era of open-source C...

    5 min2
  7. Mistakes to avoid while recruiting for your startup

    This is not an essay, but a note to myself that I can refer to later. When I first started Hashnode, I made quite a few mistakes like any other inexperienced startup founder. But the most expensive mistake was bad hiring. Everyone says your team make...

    11 min5
  8. Various ways to speed up your CORS preflight requests

    A custom in-house solution powers Hashnode's content embedding infrastructure. It exposes a simple API consumed by various parts of our app, including blogs running on custom domains. However, soon after integrating the API, we noticed that the API r...

    4 min4
  9. How to show blog posts from your Hashnode blog on your personal site?

    Update: for a newer way of fetching posts from your publication, check out our new public APIs. Ever wanted to fetch your recent articles from your Hashnode powered blog and display on your portfolio site? You can now do that using Hashnode's GraphQL...

    1 min15
  10. How to check JavaScript errors in console on mobile chrome

    If you are building a serious project, you should probably use something like Sentry to get error reports. However, if you are not using such a tool and want to check console errors on phone, here are 3 easy steps: Open Chrome and navigate to chrome...

    1 min14
  11. TIL: You must send User-Agent override param when using Google Analytics Measurement Protocol

    Are you working with GA's Measurement Protocol to send events? Are you frustrated with events not appearing in the dashboard despite sending them correctly? Check if you are sending ua parameter along with your request. This is important and without ...

    1 min1
  12. How Hashnode implements SSO for blogs running on custom domains

    As you may know, Hashnode is a community of independent developers who blog on their own domain. Hashnode users discover content published by the bloggers on their feed. Since our users are logged in on Hashnode and not the custom domains where the a...

    9 min6
  13. How to achieve truly zero downtime deployment using pm2?

    If you are running any Node/Express apps in production, you are most likely using PM2 to manage them. One of the cool features of pm2 is that it lets you run your app in cluster mode with multiple instances. One of the benefits of this approach is th...

    2 min1
  14. TIL: "Double Underscores" have a name - Dunder 😂

    How many times have you encountered names like __init__, __test__, __doTask___ and so on? These are called Dunders or Double Underscores and are commonly used for operator overloading. More details here: https://www.geeksforgeeks.org/dunder-magic-me...

    0 min5
  15. I was interviewed by Michaela for her new podcast Software Engineering Unlocked🎙

    Michaela Greiler recently started a podcast called Software Engineering Unlocked which gives you a sneak peek into how software companies around the world develop software. There are already two interesting episodes featuring software engineers like ...

    1 min1
  16. The low effort way of sending messages to a discord channel from Node.js

    We recently opened up a Discord Server for Hashnode users (yay! finally 🎉). Yesterday I had some time to set up a channel for incoming dev stories from Hashnode's Devblog network. Initially this sounded simple, but I faced some hiccups! Firstly, I ...

    2 min
  17. How I built a CDN for our multi-tenant app within a day

    Ok - before I begin let me give you some context. The multi-tenant app (or SaaS product) in question is Hashnode.dev. It's a new blogging platform that lets developers run a personal blog for free without worrying about ads or paywalls. We launched t...

    0 min9
  18. Offering speed as a feature: Why Hashnode powered blogs are blazing fast ⚡️

    I recently revisited a post by Jeff Atwood which says that performance is a feature. According to him, slow websites offer a degraded user experience which ultimately affects the conversion. Conversely, Users, especially developers, love to use webs...

    5 min2
  19. How we generate and renew SSL certs for arbitrary custom domains using LetsEncrypt!

    Last month we decided to do something interesting and allow Hashnode users to publish articles under a free hashnode.dev subdomain or any custom domain of their choice. It required a bit of work on our part, but the most challenging task was enabling...

    5 min10
  20. A comprehensive guide to coding a blockchain-powered online community

    At Hashnode we have been experimenting a lot with blockchain and its use-cases. We have been running a developers’ community ourselves, and the idea behind “decentralized communities” fascinates me a lot. The fact that everyone owns the data and cont...

    16 min