# Avik Mukherjee > Backend engineer in Hyderabad, India. Backend systems in Go and TypeScript, plus writing about how they break. Site: https://avikmukherjee.com Contact: avikm744@gmail.com GitHub: https://github.com/Avik-creator ## Experience - **Software Engineer, Backend**, SuperAlign AI (2025 — now) — I own the Go backend for Surface, SuperAlign's AI governance product, end to end: asset inventory, auth (RS256 JWTs, OIDC), dashboard APIs, scanner policy distribution, and the scanner feeding it. I built the cloud extensions that deliver prompts and transcripts to a customer's own S3 or Splunk, on a generic Parquet parser for the session, message and usage files in S3, which took listing from 11s to 1.5s; I am now building cloud sync for Microsoft Copilot Studio and Cursor Cloud Agents. I also built the Jamf integration that connects Surface to a customer's MDM, self-hosting on Coolify behind Cloudflare Tunnels, and the GitLab CI/CD pipelines that ship it. Most of the work is taking expensive, failure-prone computation off the critical path: idempotent ingestion at 10K assets/second as the fleet grew from 200 to 1,000+ devices, partition-aware workers, Postgres locking semantics, and a memory-bounded DuckDB pipeline that turns ~70GB of firewall logs into a report in under 4 minutes. - **Trainee Engineer**, DataFoundry AI (2024 — 2025) — Azure Data Factory pipelines with parameterised queries and Blob Storage, Python backend work including CSV-to-RDF conversion, and role-based access control on the frontend in React, with Axios for the API layer. - **Mobile Developer Intern**, Dank (2023 — 2024) — Built the complete React Native implementation of the app on Expo, including its API layer, following React Native best practices, and cut page load times by 40%. - **Frontend Developer Intern**, Auctopus Technology (2023) — Built frontend pages and forms with React Hook Form, plus Redux state management and Cypress automation that took manual testing down by half. ## Projects - [QueryGuard](https://github.com/Avik-creator/queryguard) — An admission-control proxy for shared Postgres: it reads the wire protocol, prices each statement from its plan, and gives every tenant a budget, a fair turn and its own timeouts. The scheduler turned out to be a small part of the code. The hard part was everything a proxy must understand before it may touch a statement: what Postgres means by the same query, the same transaction and a cancel. Budgets let a tenant go into debt, so one huge statement runs once and is then paid back, instead of being blocked forever or charged only the burst. My first gate checked the balance and charged it in two steps; the rogue benchmark sent six full scans at once and all six got through, so checking and charging now happen under one lock. Stack: Go · PostgreSQL wire protocol · pgx · pg_query · Prometheus. - [Governor](https://github.com/Avik-creator/governor) — A resource governor for workloads that fan out: one Go daemon decides how much work a tree of tasks may create, with budgets, leases and deadlines checked against every ancestor at once. A charge has to fit under the task, its tenant and the root, and apply to all of them or none. I kept the whole tree in memory behind one lock and used the database only as an append-only record: every change is an event committed before the caller gets its reply, in batches, so a restart replays to exactly what callers were told. The lock costs 390 ns against a millisecond for the commit, so I chose the design I could prove over per-node locking. It is one daemon on purpose: lease ids are fencing tokens, and an asynchronous standby could issue the same id twice. Stack: Go · gRPC · Postgres · SQLite · Prometheus. - [Term Bridge](https://github.com/Avik-creator/term-bridge) — Share a real terminal with anyone using a 6-digit code. No port forwarding, no VPN, no tunnel service. Signaling must be centralized, but terminal bytes must not be. The Durable Object relays only SDP and ICE, then drops out of the path entirely — so nothing I run ever sees your shell. The /switch command was the harder half: both peers run their own PTY, so control handoff means negotiating which side renders and which side forwards keystrokes. Stack: TypeScript · node-pty · WebRTC · Cloudflare Workers + Durable Objects · Hono. - [Sidecar](https://github.com/Avik-creator/sidecar) — Local-first macOS companion that unifies Claude Code, Codex, and Cursor state, usage, setup, and correction history without copying agent transcripts to a cloud service. I had to separate what an agent has already done from what it is doing right now. Transcripts can show that a model stopped emitting tokens, but they cannot reliably distinguish a completed turn from a permission prompt or an unanswered tool call. I made hooks the only source of live session state and used a file spool instead of letting hooks write directly to SQLite: each event is atomically written as a temporary file, renamed, then drained by Sidecar later. That keeps the agent's critical path around 10 ms, works even when Sidecar is closed, and makes concurrent hook writes independent. Stack: TypeScript · Electron · SQLite · macOS · Claude Code · Codex · Cursor. - [miniqueue](https://github.com/Avik-creator/miniqueue) — A Postgres-backed job queue in Go. Lease semantics, at-least-once delivery, crash recovery — every tradeoff documented, tested against real Postgres. Chose FOR UPDATE SKIP LOCKED over NOWAIT — NOWAIT raises on lock conflict and forces error handling on every poll, while SKIP LOCKED simply moves to the next row. Crash recovery is a lease plus a reaper rather than LISTEN/NOTIFY: polling costs latency but survives a worker that dies holding a job. Worst-case recovery is bounded at lease duration + reaper interval, which is why both are configurable. Stack: Go · Postgres · pgx/v5. - [Mindstate](https://mindstate.avikmukherjee.com) — Durable memory for AI agents over MCP — session handoffs, task-scoped recall, and memories that can be superseded rather than silently going stale. Stack: TypeScript · MCP. - [kube-lite](https://github.com/Avik-creator/kubelite) — Kubernetes' core ideas rebuilt from the ground up in Go: reconciler loop, scheduler, rollout controller, health probes, dead-node detection. Stack: Go. - [Distributed Web Crawler](https://github.com/Avik-creator/distributed-web-crawler) — Fault-tolerant crawler with URL leasing, per-host politeness, distributed dedup and full-text search across workers. Politeness and throughput pull in opposite directions. A per-host scheduler honours crawl-delay from robots.txt while Redis Streams consumer groups keep workers saturated on other hosts, so one slow domain never idles the fleet. Dedup is two-layer — bloom filter for the cheap negative, Redis SET for truth — plus simhash with a Hamming threshold to catch near-duplicate content that URL normalization can't. Stack: Python 3.11 · FastAPI · Redis Streams · Postgres · Elasticsearch · Docker Compose. - [Erasure Coding](https://github.com/Avik-creator/erasure-coding) — Reed-Solomon erasure coding written from scratch over GF(2^8) using Cauchy matrices. The 5-of-9 scheme S3 and MinIO use. Cauchy matrix construction is what guarantees every K×K submatrix is invertible — get it wrong and specific shard-loss combinations become permanently unrecoverable, which a happy-path test will never catch. Decoding is Gaussian elimination with partial pivoting inside the field, where addition is XOR and every multiplication is a log/antilog table lookup rather than a CPU instruction. Stack: Go · Galois Field arithmetic. - [MITM Proxy](https://github.com/Avik-creator/mitm-proxy) — Intercepting HTTPS proxy that mints certificates on the fly from a local CA and inspects traffic mid-tunnel. HTTP/2 can't be inspected the way HTTP/1.1 can. Detection happens on the connection preface (PRI * HTTP/2.0) and then routes through a reverse proxy instead of the byte-level inspector. Leaf certificates are cached per host because minting a keypair on every TLS handshake turns the proxy itself into the bottleneck. Stack: Go · TLS · x509 · HTTP/2. - [Load Balancer](https://github.com/Avik-creator/load-balancer-from-scratch) — Reverse-proxy load balancer built from net/http, with active health checking and a tuned transport. The backend pool is read on every request and mutated by a background health checker, so the hot path had to stay correct without serializing behind a mutex per request. Health checking is active rather than passive on purpose — a dead backend is evicted on the next poll cycle instead of after a user absorbs the error. Stack: Go · net/http · httputil.ReverseProxy. - [pgxray](https://github.com/Avik-creator/postgres-query-analyzer) — Paste SQL, get an EXPLAIN ANALYZE plan tree and index suggestions grounded in your real schema. Read-only by construction. Executing arbitrary user SQL against a live database without letting it mutate anything. Read-only statements run inside BEGIN; SET TRANSACTION READ ONLY; and are unconditionally rolled back; anything else degrades to a plan-only EXPLAIN and is never executed. Rewrites are grounded in the actual plan and live schema, so suggested indexes reference columns that exist instead of ones the model imagined. Stack: Next.js · Postgres · LLM. - [Vercel Clone](https://github.com/Avik-creator/vercel-clone) — A build-and-deploy pipeline in Rust, wiring Nixpacks to BuildKit. Shipped in a day, then audited publicly. The real work was understanding how Nixpacks, buildctl and BuildKit actually hand off to one another — Nixpacks generates a plan, buildctl drives BuildKit, and the seams between them are where everything broke. The first version worked and was wrong in ways I only found by writing the audit afterwards; phase two is the corrections. Stack: Rust · Nixpacks · BuildKit · Docker. - [Aegis](https://github.com/Avik-creator/aegis) — Browser extension that redacts PII before it reaches an AI chatbot. Everything runs locally in a Go WASM vault. A single WASM instance has to serve both the content script and the options page, so it lives in a Chrome offscreen document and both sides talk to it over chrome.runtime.sendMessage. Redaction fires on keypress during the capture phase — it must finish before the host page's own submit handler observes the event, otherwise unredacted text is already in flight. Stack: Go 1.26 → WASM · TypeScript · Vite · Chrome MV3. - [Paper Improver](https://github.com/Avik-creator/paper-improver) — A researcher uploads a PDF, gets an OpenAlex-grounded peer review, issues natural-language edits, and exports a revised PDF or LaTeX — without ever inventing a citation. The hard constraint is that an edit can never silently drop a citation. Every review finding and inserted citation must point at a source ID actually retrieved from OpenAlex — the LLM classifies evidence but never becomes the bibliography, and validate_plan rejects any replacement that would delete a [1] or (Author, Year) marker before it reaches the researcher. CSL-JSON is the canonical model underneath both the handwritten PyMuPDF parser and OpenAlex hits, so switching between IEEE and APA is a citeproc re-render of the same citation graph, not a second parser. Stack: FastAPI · PyMuPDF · SQLite · OpenAlex · Groq · citeproc-py · React/Vite. - [Code Index MCP](https://github.com/Avik-creator/code-index-mcp) — MCP server that indexes a repo two ways — AST symbol graph and semantic embeddings — so agents can actually navigate code. Semantic search fails quietly on identifier-shaped queries — ask for a function name and embeddings return vibes. Retrieval is hybrid: embeddings first, then ripgrep → ugrep → grep, then SQLite keyword match, so an exact symbol still resolves. Symbol graph lives in SQLite, embeddings in Chroma, because the two have completely different access patterns. Stack: Python · SQLite · Chroma · MCP · AST. - [Skills Registry](https://github.com/Avik-creator/skill-registry-public) — AI skills registry and CLI for discovering and installing skills across coding agents. Stack: TypeScript · CLI. - [Security Scanner](https://github.com/Avik-creator/security-scanner-public) — CLI scanner for AI agent ecosystems — prompt injection, command execution risk, secret leakage, supply chain. Stack: CLI. - [bridgecord](https://bridgecord.avikmukherjee.com) — Website chat that lives in Discord or Slack — one thread per visitor, with optional AI answers from your own site content. Stack: Next.js · Discord API. - [Plane Discord Bot](https://github.com/Avik-creator/plane-discord-bot-main) — Serverless Discord bot on Cloudflare Workers wiring Plane issue management to AI-generated daily summaries. Stack: Cloudflare Workers · Plane API · Gemini. - [markdown-to-video](https://markdownvideo.avikmukherjee.com) — Write a video in Markdown. Renders and exports to MP4 entirely in the browser. Stack: Next.js · Framer Motion · FFMPEG. - [ArchFlow](https://archflow.avikmukherjee.com) — Privacy-first visual workspace for designing and simulating system architectures. Stack: Next.js. - [CodeReviewer](https://codereviewer.avikmukherjee.com) — GitHub bot doing context-aware PR review with RAG over the repository. Stack: Next.js · RAG. - [Snippet](https://snippet.avikmukherjee.com) — Minimalist tool for turning code, images and websites into shareable screenshots. Stack: Next.js. - [PulsePing](https://pulseping.avikmukherjee.com) — Serverless deployment monitor built around the cold-start problem. Stack: Go · Next.js. - [WebTracker](https://webtracker.avikmukherjee.com) — Privacy-focused web analytics. Built after exhausting a Vercel Analytics quota. Stack: Next.js. - [Agentic](https://www.npmjs.com/package/ai-assistant-cli) — Bring-your-own-key AI CLI for web search, PR review and code generation. Stack: Node.js · npm. - [ResumeWorth](https://resume-worth-murex.vercel.app/) — Evaluates, enhances and roasts resumes with AI feedback. Stack: Groq · LLaMA. - [Payment Templates](https://www.npmjs.com/package/payment-templates) — npm package for dropping Razorpay and Stripe integrations into a backend. Stack: Node.js · npm. ## Writing - [QueryGuard: What a Postgres Proxy Has to Learn](https://avikmukherjee.com/blog/queryguard) — Oct 5, 2026. I built QueryGuard, a Go proxy that stops one Postgres tenant from slowing down everyone else. I thought the scheduling would be the hard part. It wasn't. The hard part was learning what Postgres really does with a message, a transaction, a cancel, a plan and a busy server. This post is eight lessons, the bugs that taught them, and the benchmark behind v1.0. - [Governor: A Resource Governor for Workloads That Fan Out](https://avikmukherjee.com/blog/governor-resource-governor-for-fan-out-workloads) — Oct 3, 2026. One request becomes a hundred tasks, each one retries, and all of them call the same database. Governor is a Go daemon that decides how much work a tree of tasks may create. This is the whole design: the tree, atomic charging, leases with fencing tokens, fair queueing, adaptive limits, crash recovery, how it is tested, what it measures, and what it does not guarantee. - [My Notes on 'How macOS Works': Inside Apple Silicon](https://avikmukherjee.com/blog/how-macos-works-inside-apple-silicon) — Sep 26, 2026. My plain English notes on the silicon layer of macOS: what is inside an M chip, why caches matter, how cores run instructions, what unified memory changes, and how the GPU and Secure Enclave fit in. - [One Util, Used Everywhere: Reviewing a Go Backend Cleanup with Two AI Models](https://avikmukherjee.com/blog/one-util-used-everywhere) — Sep 24, 2026. A one-line pagination bug turned into eleven stacked merge requests that unified pagination, error mapping, query helpers, startup wiring and logging across a Go backend. How I reviewed each diff, why 'done' was never taken on trust, and what Fable 5.1 and Opus 5.5 each did well and badly along the way. - [My Notes on 'How macOS Works': Programs, Processes, and the Kernel](https://avikmukherjee.com/blog/how-macos-works-programs-processes-and-the-kernel) — Sep 20, 2026. I watched the first video of Sriniously's macOS internals series and half of it went over my head. So I rewrote it for myself in plain words, with small interactive diagrams: what a process is, why an app icon is secretly a folder, what the kernel does all day, how one keystroke becomes a pixel in 8.3 ms, and where names like NS and XNU come from. - [Intercepting WebSocket Traffic From a Browser Extension](https://avikmukherjee.com/blog/intercepting-websockets-from-a-browser-extension) — Sep 19, 2026. My fetch/XHR hook captured four AI chat apps and went blind on the fifth. It used a WebSocket. How to see every frame before the page does, why the popular gist misses half of them, and how to turn a stream of frames back into a conversation. With a live demo you can run on this page. - [KumoDB, Session 1: I Built a TCP Server That Can Read a Postgres Startup Message](https://avikmukherjee.com/blog/kumodb-session-1-postgres-wire-protocol) — Sep 13, 2026. First session of KumoDB, a PostgreSQL-compatible proxy inspired by PlanetScale Neki. Process lifecycle, Docker port collisions, Postgres 18 volume layout, graceful TCP shutdown, SSLRequest, length caps, and parsing startup parameters — plus every bug that actually happened. - [A Payment Isn't Finished When the Customer Pays](https://avikmukherjee.com/blog/a-payment-isnt-finished-when-the-customer-pays) — Sep 8, 2026. Checkout succeeds. The receipt goes out. Then the card network asks for the money back. How do you keep financial state correct when an external system is asynchronous, authoritative, and can reverse a decision you already published? - [Pushing a Config Change to a Laptop That's Asleep](https://avikmukherjee.com/blog/pushing-config-to-laptops-that-are-asleep) — Aug 23, 2026. An admin flips a switch in a dashboard and expects every laptop in the company to obey. Half of them are shut. This is the design problem underneath fleet control — why command queues are the wrong model, and what to build instead. - [WebRTC Deep Dive: From Peer to Peer to Global Scale](https://avikmukherjee.com/blog/webrtc-deep-dive-peer-to-peer-to-global-scale) — Jun 21, 2026. A full technical breakdown of WebRTC, the protocol behind Zoom, Discord, and Google Meet. Covers why it runs on UDP, the seven protocol layers, NAT traversal with STUN and TURN, the P2P versus SFU scaling problem, and the production gotchas nobody warns you about. - [Why 'AI Will Replace Coders' Is the Wrong Conversation](https://avikmukherjee.com/blog/why-ai-will-replace-coders-is-the-wrong-conversation) — Jun 14, 2026. Everyone's arguing about who's ngmi because of AI. The real question is simpler and a lot less comfortable. - [From 342MB to 37MB: The Go Image I Was Shipping Wrong](https://avikmukherjee.com/blog/go-docker-image-size-optimization-342mb-to-37mb) — Jun 4, 2026. I'm new to Go. Our backend image was 342 MB and I had no idea what to do about it. This is the story of learning what each line of the production Dockerfile actually does — multi-stage builds, distroless, CGO_ENABLED=0, and stripping symbols — by getting the size down to 37 MB. - [How Nixpacks, buildctl, and BuildKit Actually Fit Together](https://avikmukherjee.com/blog/how-nixpacks-buildctl-and-buildkit-fit-together) — May 24, 2026. Three tools, one deploy pipeline. What Nixpacks plans, what buildctl sends, what buildkitd executes — and why you need two registry hostnames, a Unix socket, and a Dockerfile you never wrote by hand. - [Phase 2: I Rebuilt the Build Pipeline, Hardened Everything, and Broke It Again](https://avikmukherjee.com/blog/vercel-clone-rust-phase-2-nixpacks-buildkit-audit) — May 24, 2026. After the first working preview URL, I threw away the MinIO artifact pipeline, switched to Nixpacks + BuildKit + a local registry, ran a security audit, and spent an evening fixing permission errors that only show up on real projects. - [I Built a Mini Vercel like Clone in Rust in One Day. Here's Every Mistake I Made.](https://avikmukherjee.com/blog/i-built-a-mini-vercel-like-clone-in-rust-in-one-day-every-mistake) — May 17, 2026. 57 commits. One day. A working local Vercel clone with GitHub webhooks, a NATS build queue, MinIO artifact storage, and isolated Node containers serving preview URLs — the full story and every bug I fixed. - [Terminal Sharing Over WebRTC: Building Term Bridge with Cloudflare Workers and PTY Multiplexing](https://avikmukherjee.com/blog/terminal-sharing-webrtc-term-bridge) — May 3, 2026. Building a real-time terminal sharing tool that uses WebRTC DataChannels for peer-to-peer PTY streaming, Cloudflare Workers + Durable Objects for signaling, and a 6-digit pairing code to connect two machines in seconds. Line-by-line breakdown of signaling, bidirectional data flow, and the control protocol underneath. - [I Tried Apple's Native Container CLI So You Don't Have To (Yet)](https://avikmukherjee.com/blog/apple-container-cli) — May 2, 2026. Apple shipped a native container CLI with macOS 26 Tahoe. VM-per-container isolation, sub-second starts, no Docker Desktop. I spent a weekend with it and here's what actually works, what doesn't, and whether you should care. - [Building a FinTech Platform with Go Microservices as a Beginner](https://avikmukherjee.com/blog/building-fintech-platform-go-microservices) — Apr 25, 2026. A deep dive into building a local fintech platform with Go, Chi, Kafka, and PostgreSQL — covering the transaction saga pattern, event-driven pipelines, and the subtle bugs that only show up end-to-end. - [Third Book. Principles of Building AI Agents by Sam Bhagwat.](https://avikmukherjee.com/blog/summary-of-principles-by-sam) — Apr 18, 2026. A complete chapter-by-chapter breakdown of Sam Bhagwat's guide to AI agents, from model selection and prompting to workflows, RAG, multi-agent systems, evals, and deployment. - [How Not to Be a Team in the AI Age](https://avikmukherjee.com/blog/how-not-to-be-a-team-in-the-ai-age) — Apr 16, 2026. We gave AI everything. We forgot to keep talking to each other. A reflection on what happens to teams when async and AI replace conversation. - [How Aegis Works: Privacy-First PII Redaction with Go WASM and Chrome Extensions](https://avikmukherjee.com/blog/aegis-privacy-pii-redaction-wasm) — Apr 12, 2026. Building Aegis, a browser extension that redacts sensitive data before it reaches AI chatbots. Covers Go WASM compilation, Chrome offscreen documents, content script interception, and the full architecture of a local-first privacy tool. - [How a Man-in-the-Middle Proxy Actually Works: Building Network Interception from Scratch](https://avikmukherjee.com/blog/mitm-proxy-how-it-works) — Apr 5, 2026. Building a MITM proxy in Go to understand HTTP intercession, TLS certificate spoofing, and how to inspect encrypted traffic. Line-by-line breakdown of the concepts that power debugging proxies like Fiddler and Charles. - [Summary of Quantization from the Ground Up by Sam Rose](https://avikmukherjee.com/blog/summary-of-quantization-from-ground-up) — Apr 2, 2026. A practical, interactive breakdown of quantization: float formats, symmetric vs asymmetric mapping, quality loss, and throughput gains. - [Second Book. Minimal Modeling by Alexey Makhotkin.](https://avikmukherjee.com/blog/summary-of-minimal-modeling) — Mar 29, 2026. A complete breakdown of Alexey Makhotkin's Database Design Book — every chapter, every principle, every pattern, from logical models to physical schemas. - [I Started Reading Books. First One Was Clean Architecture by Uncle Bob.](https://avikmukherjee.com/blog/summary-of-clean-code) — Mar 22, 2026. A complete breakdown of Robert C. Martin's Clean Architecture — every chapter, every principle, every pattern, with TypeScript and Go code examples throughout. - [I Implemented Reed-Solomon Erasure Coding to Understand How S3 Actually Works](https://avikmukherjee.com/blog/reed-solomon-erasure-coding) — Mar 21, 2026. Every explanation I found either hand-waved it as 'basically RAID' or went straight into Galois field theory. So I implemented it from scratch. - [I Vibecoded a Mini Kubernetes to Understand the Real One](https://avikmukherjee.com/blog/vibecoded-mini-kubernetes) — Mar 19, 2026. A stripped-down Kubernetes implementation built in a weekend to preview how the real thing works — reconciliation loops, heartbeats, desired state, and rolling updates explained through code. - [Understanding Prompt Caching: The KV Cache Explained](https://avikmukherjee.com/blog/understanding-prompt-caching-kv-cache) — Mar 16, 2026. A deep dive into how prompt caching actually works under the hood — from tokenization and attention mechanisms to the KV matrices that make LLMs 10x faster and cheaper - [How I Built a Skills Registry to Sync AI Agent Capabilities](https://avikmukherjee.com/blog/ai-skills-registry) — Mar 8, 2026. Creating a unified CLI system to manage and synchronize AI skills across 45+ coding agents - [How I Built a Persistent Memory MCP Using Only Cloudflare](https://avikmukherjee.com/blog/memory-mcp-cloudflare) — Mar 2, 2026. Building a production-ready memory system for AI agents without the infrastructure headache - [A Practical Guide to Building Real Projects with v0](https://avikmukherjee.com/blog/a-practical-guide-to-building-real-projects-with-v0) — Dec 16, 2025. A practical, opinionated guide to using v0 end-to-end — from prompts and models to design systems, MCPs, and templates — so you can turn vague ideas into real, scalable projects instead of half-baked demos. - [My Journey with DuckDB: Processing 70GB Files in Minutes](https://avikmukherjee.com/blog/duckdb-journey) — Dec 13, 2025. How I learned to process massive data files efficiently using DuckDB's streaming architecture, moving from chunking nightmares to elegant single-pass solutions. - [From PyFlink to Fluvio: Why We Migrated Our CEF Log Pipeline](https://avikmukherjee.com/blog/fluvio-vs-pyflink) — Oct 25, 2025. After months of experimentation with Apache Flink, we migrated our entire CEF log parsing pipeline to Fluvio, a Rust-based streaming platform. Here's why the switch delivered 5× faster throughput and 10–50× less memory usage. - [Everything New in Tailwind v4](https://avikmukherjee.com/blog/everything-new-in-tailwind) — Mar 18, 2025. Tailwind released new version, so here are all the details of it. - [Getting Started with NestJS](https://avikmukherjee.com/blog/nestjs-getting-started) — Feb 12, 2025. Getting started to learn NestJS. So this my Notes for it - [Learning Things Resources](https://avikmukherjee.com/blog/resources-list) — Feb 11, 2025. A personal list of the topics and their resources for my ease of finding. - [Why I made this site?](https://avikmukherjee.com/blog/why-i-made-this-site) — Jan 1, 2025. A personal reflection on the motivations and challenges behind creating this site.