{"version":"https://jsonfeed.org/version/1.1","title":"Kanishk Sachdev - Blog","home_page_url":"https://www.kanishksachdev.com","feed_url":"https://www.kanishksachdev.com/feed?format=json","description":"Articles and interactive experiments about software engineering, physics simulations, and building things","language":"en-US","authors":[{"name":"Kanishk Sachdev","url":"https://www.kanishksachdev.com"}],"items":[{"id":"https://www.kanishksachdev.com/blog/billion-checkboxes","url":"https://www.kanishksachdev.com/blog/billion-checkboxes","title":"One Billion Checkboxes","content_text":"A shared grid of one billion checkboxes you check in real time with everyone online. A bigger, multiplayer take on One Million Checkboxes.","date_published":"2026-06-20T00:00:00.000Z","authors":[{"name":"Kanishk Sachdev","url":"https://www.kanishksachdev.com"}],"tags":["project","realtime","websockets","canvas","redis","multiplayer"]},{"id":"https://www.kanishksachdev.com/blog/robot-arm","url":"https://www.kanishksachdev.com/blog/robot-arm","title":"A Robot Arm That Follows Your Cursor","content_text":"I put an interactive industrial robot arm on my homepage. Here is the short version of why, and the parts that turned out to be more interesting than I expected.","date_published":"2026-06-15T00:00:00.000Z","authors":[{"name":"Kanishk Sachdev","url":"https://www.kanishksachdev.com"}],"tags":["blog","three.js","webgl","robotics","inverse-kinematics","collada"],"image":"https://www.kanishksachdev.com/robot-arm/cover.png"},{"id":"https://www.kanishksachdev.com/blog/homelab","url":"https://www.kanishksachdev.com/blog/homelab","title":"Homelab: Current Architecture","content_text":"An updated snapshot of my homelab — four hosts, ~50 containers, Authentik-gated apps, a Tailscale mesh, and the full cost breakdown at ~$35/mo.","date_published":"2026-05-22T00:00:00.000Z","authors":[{"name":"Kanishk Sachdev","url":"https://www.kanishksachdev.com"}],"tags":["blog","homelab","docker","infrastructure","self-hosted","tailscale","authentik"]},{"id":"https://www.kanishksachdev.com/blog/homelab-architecture","url":"https://www.kanishksachdev.com/blog/homelab-architecture","title":"My Multi-Server Homelab: The Full Architecture","content_text":"A visual deep dive into my homelab setup spanning three VPSes, a Tailscale mesh, Mullvad VPN tunneling, and 30+ containers working together.","date_published":"2026-04-06T00:00:00.000Z","authors":[{"name":"Kanishk Sachdev","url":"https://www.kanishksachdev.com"}],"tags":["blog","homelab","docker","infrastructure","self-hosted","tailscale"]},{"id":"https://www.kanishksachdev.com/blog/distributed-cron","url":"https://www.kanishksachdev.com/blog/distributed-cron","title":"The Cron Job That Ran Three Times: Building Distributed Locks on Cloud Run","content_text":"When we deployed our HackPSU NestJS app to Cloud Run, every instance started firing the same cron jobs simultaneously. Hackers got triple cancellation emails and our sender reputation tanked. Here's how we built a distributed locking system with Firebase RTDB to fix it.","date_published":"2026-04-01T00:00:00.000Z","authors":[{"name":"Kanishk Sachdev","url":"https://www.kanishksachdev.com"}],"tags":["blog","nestjs","distributed-systems","firebase","cloud-run","hackpsu"]},{"id":"https://www.kanishksachdev.com/blog/queueing","url":"https://www.kanishksachdev.com/blog/queueing","title":"Queueing Strategies Visualization","content_text":"Interactive exploration of FIFO, LIFO, Priority Queues, and Active Queue Management (AQM) with real-time visualization.","date_published":"2025-11-25T00:00:00.000Z","authors":[{"name":"Kanishk Sachdev","url":"https://www.kanishksachdev.com"}],"tags":["project","algorithms","queueing","visualization","interactive"]},{"id":"https://www.kanishksachdev.com/blog/load-balancing","url":"https://www.kanishksachdev.com/blog/load-balancing","title":"Load Balancing Visualization","content_text":"Interactive Canvas-based visualization showing how different load balancing algorithms distribute traffic across servers in real-time.","date_published":"2025-11-24T00:00:00.000Z","authors":[{"name":"Kanishk Sachdev","url":"https://www.kanishksachdev.com"}],"tags":["project","algorithms","visualization","javascript","canvas","networking"]},{"id":"https://www.kanishksachdev.com/blog/tambola","url":"https://www.kanishksachdev.com/blog/tambola","title":"Tambola / Housie Game","content_text":"Interactive Tambola game with automatic ticket generation, number calling, and support for multiple players.","date_published":"2025-11-22T00:00:00.000Z","authors":[{"name":"Kanishk Sachdev","url":"https://www.kanishksachdev.com"}],"tags":["project","game","interactive","javascript","react"]},{"id":"https://www.kanishksachdev.com/blog/fluid-simulation","url":"https://www.kanishksachdev.com/blog/fluid-simulation","title":"2D Fluid Simulation","content_text":"Real-time fluid dynamics simulation using Navier-Stokes equations with configurable viscosity, diffusion, and stunning visual effects.","date_published":"2025-11-06T00:00:00.000Z","authors":[{"name":"Kanishk Sachdev","url":"https://www.kanishksachdev.com"}],"tags":["project","physics","simulation","fluid-dynamics","javascript","canvas"]},{"id":"https://www.kanishksachdev.com/blog/wikipedia-network-graph","url":"https://www.kanishksachdev.com/blog/wikipedia-network-graph","title":"Weekend Project: Turning Wikipedia Into a Giant Network Graph","content_text":"What started as curiosity about Wikipedia rabbit holes turned into parsing 6.8 million articles and building a Neo4j graph database. Here's how I mapped the structure of human knowledge in a weekend.","date_published":"2025-08-10T00:00:00.000Z","authors":[{"name":"Kanishk Sachdev","url":"https://www.kanishksachdev.com"}],"tags":["blog","graph-algorithms","data-visualization","python","networkx"],"image":"https://www.kanishksachdev.com/wikipedia-network-graph/philosophy.png"},{"id":"https://www.kanishksachdev.com/blog/hackpsu-webauthn","url":"https://www.kanishksachdev.com/blog/hackpsu-webauthn","title":"Adding Passkey Authentication to HackPSU: When Passwords Just Aren't Cutting It","content_text":"How we implemented WebAuthn passkey authentication for HackPSU using Next.js and Firebase, creating a seamless biometric login experience that actually works in production.","date_published":"2025-08-03T00:00:00.000Z","authors":[{"name":"Kanishk Sachdev","url":"https://www.kanishksachdev.com"}],"tags":["blog","webauthn","authentication","next.js","firebase","hackpsu"],"image":"https://www.kanishksachdev.com/projects/api.png"},{"id":"https://www.kanishksachdev.com/blog/cloth-simulator","url":"https://www.kanishksachdev.com/blog/cloth-simulator","title":"Cloth Simulation with physics based tearing","content_text":"","date_published":"2025-08-01T00:00:00.000Z","authors":[{"name":"Kanishk Sachdev","url":"https://www.kanishksachdev.com"}],"tags":["project","physics","simulation","cloth","javascript"]},{"id":"https://www.kanishksachdev.com/blog/hackpsu-easter-eggs","url":"https://www.kanishksachdev.com/blog/hackpsu-easter-eggs","title":"Hidden in Plain Sight: Easter Eggs in the HackPSU Website","content_text":"A deep dive into the interactive easter eggs we secretly embedded throughout the HackPSU Fall 2025 website – from memory games to fish that chase your cursor.","date_published":"2025-07-27T00:00:00.000Z","authors":[{"name":"Kanishk Sachdev","url":"https://www.kanishksachdev.com"}],"tags":["blog","javascript","interactive","frontend","hackpsu","easter-eggs"],"image":"https://www.kanishksachdev.com/hackpsu-easter-eggs/Memory%20Match.png"},{"id":"https://www.kanishksachdev.com/blog/spinning-donut","url":"https://www.kanishksachdev.com/blog/spinning-donut","title":"Spinning ASCII Donut","content_text":"A JavaScript implementation of the famous spinning donut algorithm with 3D rotation, lighting, and Z-buffering.","date_published":"2025-07-23T00:00:00.000Z","authors":[{"name":"Kanishk Sachdev","url":"https://www.kanishksachdev.com"}],"tags":["project","3d","ascii","javascript","graphics"]},{"id":"https://www.kanishksachdev.com/blog/tiny-compute-engine","url":"https://www.kanishksachdev.com/blog/tiny-compute-engine","title":"How We Turned a $5 Compute Engine Into a Swiss Army Knife","content_text":"Picture this: you need a static IP for API whitelisting, but Vercel charges 'Picture this: you need a static IP for API whitelisting, but Vercel charges $20/month and Cloud Run setups are overkill. So we grabbed the cheapest GCP Compute Engine instance and crammed 6 different services into it.'0/month and Cloud Run setups are overkill. So we grabbed the cheapest GCP Compute Engine instance and crammed 6 different services into it. Here's how we built our own mini data center.","date_published":"2025-07-20T00:00:00.000Z","authors":[{"name":"Kanishk Sachdev","url":"https://www.kanishksachdev.com"}],"tags":["blog","gcp","infrastructure","cost-optimization","devops"]},{"id":"https://www.kanishksachdev.com/blog/job-script","url":"https://www.kanishksachdev.com/blog/job-script","title":"The Job Search Spreadsheet That Drove Me to Automation","content_text":"Picture this: spending 2+ hours daily copy-pasting job listings into a Google Sheet, only to realize half of them are in Toronto (where I can't work) or for the wrong graduation year. Here's how I built a Python script that does the boring stuff so I can focus on actually landing interviews.","date_published":"2025-07-13T00:00:00.000Z","authors":[{"name":"Kanishk Sachdev","url":"https://www.kanishksachdev.com"}],"tags":["blog","automation","python","web-scraping","job-search"]},{"id":"https://www.kanishksachdev.com/blog/n-body-gravity","url":"https://www.kanishksachdev.com/blog/n-body-gravity","title":"N-Body Gravity Simulation","content_text":"Real-time gravitational simulation with orbital mechanics, multiple celestial bodies, and preset planetary systems.","date_published":"2025-07-08T00:00:00.000Z","authors":[{"name":"Kanishk Sachdev","url":"https://www.kanishksachdev.com"}],"tags":["project","physics","simulation","javascript","canvas"]},{"id":"https://www.kanishksachdev.com/blog/hackpsu-inventory","url":"https://www.kanishksachdev.com/blog/hackpsu-inventory","title":"Building a Real‑Time Inventory Management System for HackPSU","content_text":"How we designed and built a comprehensive inventory tracking system for HackPSU using Next.js, React Query, and NestJS to manage thousands of items across multiple event locations.","date_published":"2025-07-06T00:00:00.000Z","authors":[{"name":"Kanishk Sachdev","url":"https://www.kanishksachdev.com"}],"tags":["blog","next.js","react-query","nestjs","real-time","hackpsu"],"image":"https://www.kanishksachdev.com/projects/inventory.png"},{"id":"https://www.kanishksachdev.com/blog/rust-maps-renderer","url":"https://www.kanishksachdev.com/blog/rust-maps-renderer","title":"Weekend Project: Building a High-Performance Maps Renderer in Rust","content_text":"What started as a 'let me try rendering OpenStreetMap data' turned into a full-blown parallel map rendering engine. Here's how I built a system that processes millions of geographic features and renders beautiful maps with airports (because I love planes).","date_published":"2025-06-29T00:00:00.000Z","authors":[{"name":"Kanishk Sachdev","url":"https://www.kanishksachdev.com"}],"tags":["blog","rust","maps","performance","openstreetmap","graphics"],"image":"https://www.kanishksachdev.com/maps/nyc.png"},{"id":"https://www.kanishksachdev.com/blog/conway-game-of-life","url":"https://www.kanishksachdev.com/blog/conway-game-of-life","title":"Conway's Game of Life with a Toroidal Grid","content_text":"","date_published":"2025-06-28T00:00:00.000Z","authors":[{"name":"Kanishk Sachdev","url":"https://www.kanishksachdev.com"}],"tags":["project","cellular-automata","game-of-life","javascript","algorithm"]},{"id":"https://www.kanishksachdev.com/blog/quantity-transaction-optimzation","url":"https://www.kanishksachdev.com/blog/quantity-transaction-optimzation","title":"Denormalizing Inventory Quantity for Sub-Second Reads","content_text":"A deep dive into moving expensive SUM queries off the read path in Django by denormalizing inventory quantities and syncing via signals.","date_published":"2025-06-22T00:00:00.000Z","authors":[{"name":"Kanishk Sachdev","url":"https://www.kanishksachdev.com"}],"tags":["blog","django","database","performance","optimization","thon"],"image":"https://www.kanishksachdev.com/quantity-transaction-optimization/timing.png"},{"id":"https://www.kanishksachdev.com/blog/ble-checkin","url":"https://www.kanishksachdev.com/blog/ble-checkin","title":"Building a BLE‑Powered Check‑In System with ESP32","content_text":"How I designed and implemented a Bluetooth Low Energy check‑in platform using ESP32, Web Bluetooth API and our existing web services for seamless workshop attendance.","date_published":"2025-06-15T00:00:00.000Z","authors":[{"name":"Kanishk Sachdev","url":"https://www.kanishksachdev.com"}],"tags":["blog","ble","esp32","iot","next.js","firebase","hackpsu"],"image":"https://www.kanishksachdev.com/projects/checkin.png"},{"id":"https://www.kanishksachdev.com/blog/boids-simulation","url":"https://www.kanishksachdev.com/blog/boids-simulation","title":"Boids Flocking Simulation with Interactive Controls","content_text":"A flocking simulation based on boids algorithm with adjustable parameters and trail visualization.","date_published":"2025-06-12T00:00:00.000Z","authors":[{"name":"Kanishk Sachdev","url":"https://www.kanishksachdev.com"}],"tags":["project","boids","simulation","algorithm","javascript"]},{"id":"https://www.kanishksachdev.com/blog/hackpsu-auth","url":"https://www.kanishksachdev.com/blog/hackpsu-auth","title":"Building a Robust Subdomain-Wide Auth System for HackPSU","content_text":"How we designed and implemented HackPSU's new authentication platform using Next.js, Firebase, and session cookies to secure multiple subdomains with seamless UX.","date_published":"2025-06-08T00:00:00.000Z","authors":[{"name":"Kanishk Sachdev","url":"https://www.kanishksachdev.com"}],"tags":["blog","authentication","next.js","firebase","security","hackpsu"],"image":"https://www.kanishksachdev.com/hackpsu-auth/login.png"},{"id":"https://www.kanishksachdev.com/blog/hackpsu-email-delivery","url":"https://www.kanishksachdev.com/blog/hackpsu-email-delivery","title":"Building a Scalable Email Delivery System for HackPSU","content_text":"How I designed and implemented the bulk templated email delivery platform using React, SendGrid, MJML and NestJS for HackPSU organizers.","date_published":"2025-06-01T00:00:00.000Z","authors":[{"name":"Kanishk Sachdev","url":"https://www.kanishksachdev.com"}],"tags":["blog","email","automation","templates","hackpsu","scaling"],"image":"https://www.kanishksachdev.com/hackpsu-email-delivery/flow.png"},{"id":"https://www.kanishksachdev.com/blog/untangled","url":"https://www.kanishksachdev.com/blog/untangled","title":"My version of the Untangle game with automatic solving","content_text":"","date_published":"2025-05-31T00:00:00.000Z","authors":[{"name":"Kanishk Sachdev","url":"https://www.kanishksachdev.com"}],"tags":["project","game","algorithm","javascript","interactive"]},{"id":"https://www.kanishksachdev.com/blog/hackpsu-finance","url":"https://www.kanishksachdev.com/blog/hackpsu-finance","title":"Building an Automated Finance System for HackPSU","content_text":"How I built a comprehensive reimbursement management system with automated PDF generation, email workflows, and real-time analytics for HackPSU using Next.js, NestJS, and some creative PDF manipulation.","date_published":"2025-05-25T00:00:00.000Z","authors":[{"name":"Kanishk Sachdev","url":"https://www.kanishksachdev.com"}],"tags":["blog","next.js","nestjs","pdf","automation","finance","hackpsu"],"image":"https://www.kanishksachdev.com/projects/finance.png"},{"id":"https://www.kanishksachdev.com/blog/wave-interference","url":"https://www.kanishksachdev.com/blog/wave-interference","title":"Wave Interference Patterns","content_text":"Interactive visualization of wave interference showing constructive and destructive patterns with multiple wave sources.","date_published":"2025-05-14T00:00:00.000Z","authors":[{"name":"Kanishk Sachdev","url":"https://www.kanishksachdev.com"}],"tags":["project","physics","waves","visualization","javascript"]},{"id":"https://www.kanishksachdev.com/blog/sand-simulator","url":"https://www.kanishksachdev.com/blog/sand-simulator","title":"Simple Sand Simulation","content_text":"","date_published":"2025-05-07T00:00:00.000Z","authors":[{"name":"Kanishk Sachdev","url":"https://www.kanishksachdev.com"}],"tags":["project","physics","simulation","javascript","cellular-automata"]}]}